一、从气象网获得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
names(data1)
assign(x=filenamea,value=data1)
}
#将对象名称存储到date中
date
#合并对象组成所需表格
qixiang
for(i in c(2:(length(date)-6)))
{
qixiang
}
#将所得数据写入csv文件
write.csv(t(qixiang),“qixiang20170420".csv”)
处理后可得表格: