博主需要的数据是中国2018年的逐日太阳辐射量栅格数据,因此仅下载和处理了中国区域地面气象要素驱动数据集(1979-2018)2018年的逐日的地面向下短波辐射数据(将1个nc文件转为了365个tif文件)。不同时间尺度和气象属性的数据也可以参考此篇博文,毕竟数据下载方式和数据结构是大同小异的。另外全球范围、年月尺度的处理教程看:基于Matlab的干旱指数PDSI及CRU全球气象nc数据的处理过程-由nc文件转变为tif文件 - 简书,向大佬学习!
一、数据下载
网址指路:中国区域地面气象要素驱动数据集(1979-2018)-国家青藏高原科学数据中心,只需要中国区域地面气象要素驱动数据集的可以直接查看第4张图获取FTP账号进行下载
点开网址,右上角点击登录,使用中国科技云通行证账号进行登录(没有账号的可以先注册再登录)
登录后点击右侧按钮申请下载,填写数据用途,获取该数据集的FTP账号
、
中国区域地面气象要素驱动数据集的FTP账号在这里
接下来到FileZilla官网下载FT文件连接软件(最新版FileZilla3.51.0免安装压缩包下载地址:FileZilla_3.51.0_win64.zip),输入Host和账号密码与FTP服务器连接,在连接的文件夹中找到所需文件即可右击进行下载
二、数据处理
下载得到的数据解压后是一个nc文件:srad_ITPCAS-CMFD_V0106_B-01_01dy_010deg_201801-201812.nc
1.首先使用arcgis的多维工具》创建NetCDF栅格图层工具(如下图设置),先导出一个样例tif
2.然后使用matlab读取nc文件批量生成tif文件,代码如下:
对了,处理前需要使用ncinfo('FK150117_wh300_tide_IO.nc');看一下nc文件信息,我的文件里的变量是4个:lon(700,),lat(400,),time(365),srad(700,400,365),因此采用ncread('xx.nc','srad')读取nc文件的辐射变量,不同的变量要注意修改变量名‘srad’
clc;clear;
[aaaaa,R]=geotiffread('E:\srad\srad_Layer3.tif');%导入样例tif
info=geotiffinfo('E:\srad\srad_Layer3.tif');%导入样例tif
data=ncread('E:\srad\srad_ITPCAS-CMFD_V0106_B-01_01dy_010deg_201801-201812.nc','srad');%加载nc文件
for day=1:365
data1=data(:,:,day); %得到每年的365天数据数据
data2=rot90(data1);
filename=strcat('E:\srad_tif1\srad',int2str(day),'.tif'); %输出文件名:srad1.tif
geotiffwrite(filename,data2,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
end
结果如下:
由于此数据集中的srad(地面向下短波辐射值)的单位是W/m2,还需乘以一个时间得到太阳辐射量(短波辐射就是太阳辐射),具体计算公式如下:
逐日太阳辐射量 = srad值 * 24 * 3600 / 1000000 = MJ/(m2.day)