||
中国地面降水/气温0.5°×0.5°格点数据集提取
如有疑问或者获取软件、案例数据,请加QQ群790411341
在中国气象数据网,找到两个数据集,以逐月的为例。通过检索研究时间,获取相应订单,可能需要相关等级的账号。
在数据筐中下载相应文件,文件为txt文件,如下所示。
将网址复制到迅雷,可下载一系列txt文件。
随便打开一个txt,复制到Excel中可发现,数据为一个中国的矩阵。表头各项的含义为:
第一行"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,18),单元格边长为0.5°,因此左下角格点的经纬度为(72.25°,18.25°),或者说(72°15′,18°15′),因此我们可以通过给单元格设定相应行列标签,以快速定位所需的格点所在的行列数。
以东北松花江流域的某子流域为例,添加进图层后可见所研究流域内有3个格点,再加上左下角的一个,本次共提取这四个点的降水数据,获取四个格点的经纬度如下:
(127.25,42.25) (127.75,42.25)
(127.25,41.75) (127.75,41.75)
在Excel中快速定位到四个格点所在的行列,分别是24和25行,111列和112列。
打开matlab,输入代码如下
close all; clear all;clc
data = dir('C:\Users\ASUS\Desktop\降水格点数据2014-2020'); %这块将文件夹的地址修正
dataname={data.name};
[s,v] = listdlg('PromptString','中国地面降水',...
'SelectionMode','multiple','ListSize',[550,350],'liststring',dataname);
rain=zeros(1,max(size(s))-2);
for i = 1:max(size(s))
fid = fopen(char(strcat('C:\Users\ASUS\Desktop\降水格点数据2014-2020/',dataname(i+2))),'rt'); %这块将文件夹的地址修正
tline1=fgetl(fid);tline2=fgetl(fid);tline3=fgetl(fid);
tline4=fgetl(fid);tline5=fgetl(fid);tline6=fgetl(fid);
[rainall,count]=fscanf(fid,'%f',[128,72]);
rainall=rainall'
rain(i)=rainall(24,111); %这块改为我们需要的格点的行列数
fclose(fid)
end
运行,选择需要提取的文件,确定。
运行完成后找到rain,打开,即为所需的数据,数据为一行,复制粘贴到excel中转置即可得到列数据,这样,就能得到全国任意位置的降水数据了。
如果是1961-2013年的降水数据(逐日或逐月的),推荐下载一个数据集:
在“国家青藏高原科学数据中心”注册,填写相关信息后可下载本数据集,
由于下载使用FTP协议,推荐使用FlashGet 下载。
数据集的名称为:Dataset of Gridded Daily Precipitation in China (1961-2013)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-28 06:52
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社