全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
15595 0
2019-01-19

一、从气象网获得1961-2016年的中国地面降水日值0.5°×0.5°格点数据集(V2.0)

数据集实体文件名称:

中国降水日值0.5°×0.5°格点数据集文件命名由数据集代码(SURF_CLI_CHN_PRE_DAY_GRID_0.5)、年月日标识(YYYYMMDD)组成。

具体形式:SURF_CLI_CHN_PRE_DAY_GRID_0.5-YYYYMMDD.TXT

每日格点数据的格式如下(以1980年10月21日网格数据为例):


数据集实体文件的内容描述:

第一行"ncols 128"表示实体数据有128列;

第二行"nrows 72"表示实体数据有72行;

第三行"xllcorner 72"表示数据最左下方格点单元的经度范围是72°-72.5°E;

第四行"yllcorner 18"表示数据最左下方格点单元的纬度范围是18°-18.5°N;

第五行"cellsize 0.5"表示网格是0.5°×0.5°的;

第六行"NODATA_value -9999.0"表示中国区域以外的值用-9999.0表示。

从第七行开始是对应网格的降水值,第七行(降水数据第一行)第一列数据网格中心为(72.25°E ,53.75°N),第七行第二列数据网格中心为(72.75°E ,53.75°N),……,数据最后一行最后一列网格中心为(135.75°E ,18.25°N)。降水值保留1位小数。经度单位:度,纬度单位:度,格点降水单位:mm。

二、根据所需样地的经纬度,确定样地所在格点数据网格中的位置:

如:

三、将所需格点位置的数据提出,组成所需表格,所需R代码如下:

##批量读取格点数据文件

#将工作目录设置为数据文件存放的位置

setwd("E:\\qixiang")

#批量读取txt文件的内容

files=list.files(pattern = ".txt")

length(files)

for(i in 1:length(files))

{

filename=files

filenamea=substr(files,31,40)

data=read.table(file=filename,check.names=FALSE,skip=6)

#将所需的站点数据存储到data1中

data1<-data.frame(prec=c(data[36,46],data[37,46],data[37,45],data[37,44],data[38,43],data[39,42],data[40,42],data[40,41],data[41,41],data[42,40],data[43,40],data[44,40],data[45,40],data[46,40],data[47,40],data[48,39],data[48,38],data[49,38],data[49,39]))

names(data1)<-filenamea

assign(x=filenamea,value=data1)

}

#将对象名称存储到date中

date<-ls()

#合并对象组成所需表格

qixiang<-get(date[1])

for(i in c(2:(length(date)-6)))

{

qixiang<-cbind(qixiang,get(date))

}

#将所得数据写入csv文件

write.csv(t(qixiang),“qixiang20170420".csv”)

处理后可得表格:


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群