博主需要的数据是中国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)
 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐