Sub-X项目-SubX数据MATLAB读取注意事项

1. 读取SubX的温度、降水数据

  • 读取温度数据

读取SubX数据时,如果是全球数据,用MATLAB读进来发现是360×181,读取代码如下:

filepath='E:\tas_2m_GMAO-GEOS_V2p1_19990101.ensember1.daily.nc';%读取的是温度

ncdisp(filepath)                                               ;%显示nc文件结构

forcastAllData=ncread(filepath,'tas');%'pr'  'tas'                     %读取温度字段,若降水则pr

dailydata=forcastAllData(:,:,1);                                  %获取第一天的预测值360×181

imagesc(dailydata);                                            %显示一下,如下

发现整个图不符合我们全球显示方式,所以需要对其进行旋90°一下,

dailydata= rot90(dailydata,1); %逆时针旋转90度,如下

可以清晰的看到了中国(特别是青藏高原),澳大利亚和美洲的轮廓。之所以读取温度因为温度在大陆上明显有温度梯度,与海洋容易区分。如果直接读取降水,很难区分读取的是否正确,因为海上降水和大陆降水没有区别,很难辨别是否正确。

  • 读取降水数据

filepath='E:\pr_sfc_GMAO-GEOS_V2p1_19990101.ensember1.daily.nc'; %读取的是降水

forcastAllData=ncread(filepath,'pr');  %读取降水pr变量

dailydata=forcastAllData(:,:,1);        %读取第一天

dailydata= rot90(dailydata,1)*3600*24; %原始单位是kgm-2s-1,所以要转为mm·d-1

如下图所示(如果不是事先读取了温度数据,你根本不知道是不是读取的争取。这也是作者纠结了好久,才找到的这个规律)

2. 读取GPCP的降水数据

全球1度的降水GPCP数据,下载地址是:https://www.ncei.noaa.gov/data/global-precipitation-climatology-project-gpcp-daily/access/。可以通过MATLAB编程实现对数据的轻松下载。

读取代码如下:

filepath='E:\19970101.nc'

ncdisp(filepath);

data=ncread(filepath,'precip');%读取降水变量,结果也是360行,180列

data=rot90(data,1);%逆时针旋转90度,就编程我们所熟知的数据展示方式了,由于原始本来就是mm/day,所以不需要特殊处理

imagesc(data)%显示的结果如下:

%Refference=georasterref('RasterSize',size(YearSumResult),'Latlim',[-90 90],'Lonlim',[0 360]);%设置全球坐标参考

%geotiffwrite('E:\Prep.tif',data,Refference);%保存成arcgis可打开的tif文件

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值