MATLAB绘制MEIC数据避坑指南

使用MATLAB处理清华MEIC清单数据时,如果对MATLAB的网格对应关系不熟悉,很容易造成错误,下面给出一些避坑指南:

MEIC数据格式

正常来讲,通过MEIC官网下载得到的MEIC清单数据,其nc文件中含有的变量为z,是1维的,官网Q&A上给出的1维数据与2维数据对应关系为:

网格重构中的问题

看到这个对应关系,没有系统学习过MATLAB的初学者可能会立马开始reshape和构建网格

%origin_file--需要读取的排放清单文件路径及名称
PM25=reshape(ncread(origin_file,'z'),320,200);
unvalid_pos=find(PM25<0);
PM25(unvalid_pos)=NaN;

lon=70.125:0.25:150;    
lat=59.875:-0.25:10;
contourf(lat,lon,PM25);
grid on

然后就会喜提一张奇形怪状的图

问题出在reshape的语法和meic的网格对应关系不一致。通过上述reshape得到的其实是下面的网格结构:

所得到的网格结构
reshape所得到的网格结构

解决方案

上述问题解决非常简单,不就是反过来了嘛,MATLAB提供了非常实用的功能——矩阵转置,所以只需要再加一行:

PM25=PM25';

上述问题就可以得到解决,附一张成品图和完整代码(使用了m_map工具包,相对好看一点,当然还有很多参数值得细致调整可以请各位自行探索):

%origin_file--需要读取的排放清单文件路径及名称
lon=70.125:0.25:150;    lat=60-0.125:-0.25:10;
PM25=reshape(ncread(origin_file,'z'),320,200);
unvalid_pos=find(PM25<0);
PM25(unvalid_pos)=NaN;
m_proj('Mercator','lon',[70 140],'lat',[15 55]);
m_contourf(lon,lat,PM25',100,'Linestyle','none');    %设置等高线层级为100,等高线不显示
m_grid;        %显示经纬网格
colorbar
clim([0 1000]) %设置颜色显示范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值