请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5596|回复: 2

[讨论] WRF-Chem数据用MATLAB绘制图的时候,坐标轴显示问题

[复制链接]

新浪微博达人勋

发表于 2019-2-25 11:50:44 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 玄奘老乡 于 2019-2-25 11:52 编辑

1.使用WRF-Chem模拟出来的数据绘制PM2.5分布,我模型运用兰伯特投影,我用MATLAB绘图的时候显示的图示对的,可是坐标轴没有显示经纬度坐标,而是显示的一些小数点,这是什么原因造成的?我要从哪里下手,有知道的朋友给解释一下,看看代码哪里错了,整了一上午没找到怎么解决,谢谢了。
2.代码如下:
clc;
clear;
finfo = ncinfo("wrfout_d02.nc");
Lon = ncread("wrfout_d02.nc",'XLONG');
Lat = ncread("wrfout_d02.nc",'XLAT');
pres = ncread("wrfout_d02.nc",'P');
pres_time =pres(:,:,:,1);
pressure=pres_time(:,:,1:1:12);
provinceBorder=shaperead('F:\绘图\MATLAB绘图脚本\MATLAB绘制中国地图\MATLAB画中国地图\省界\bou2_4p.shp');%读取各省行政区划线,放到provinceBorder中。
Longitude = Lon(:,:,1:1:12);
Latitude_1 = Lat(:,:,1:1:12);
Latitude = permute(Latitude_1,[2,1,3]);
lon2d =Longitude(:,:,1);
lat2d = Latitude(:,:,1);
lat2dtre= permute(lat2d,[2,1]);
lon_min_1=min(lon2d);%经度
lon_min=min(lon_min_1);%经度
lon_max_1=max(lon2d);
lon_max=max(lon_max_1);
lat_min_1=min(lat2d);%纬度
lat_min=min(lat_min_1);
lat_max_1=max(lat2d);
lat_max=max(lat_max_1);
pm2_5Data = ncread("wrfout_d02.nc",'PM2_5_DRY');
pm2_5Dataz_12am_clock = pm2_5Data(:,:,1:1:12,2);
pm2_5Dataz_12am_clock_l_eta = pm2_5Dataz_12am_clock(:,:,1);
v_1 = pm2_5Dataz_12am_clock;
v = permute(v_1,[2,1,3]) ;%现在交换第一维和第二维;
% [x,y,z]=meshgrid(1:105,1:81,1:12);
% slice(x,y,z,v,[ 10 30 50 70 80 90 100],[],[]);
% shading interp ;
% colorbar
% colormap('jet');
% axis equal
grid on
hold on
m_proj('lambert','lon',[lon_min,lon_max],'lat',[lat_min,lat_max]);%Miller/Mercator
m_pcolor(lon2d,lat2dtre,pm2_5Dataz_12am_clock_l_eta);
hold on
m_plot([provinceBorder(:).X],[provinceBorder(:).Y],'k-','linewidth',0.2)






坐标轴.png
参数以及变量.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-2-25 12:02:00 | 显示全部楼层
上边的代码可以忽略了,我又重新写了一个关于这个的代码,更清楚的一个。
clc;
clear;
provinceBorder=shaperead('F:\绘图\MATLAB绘图脚本\MATLAB绘制中国地图\MATLAB画中国地图\省界\bou2_4p.shp');%读取各省行政区划线,放到provinceBorder中。
finfo = ncinfo("wrfout_d02.nc");
Lon = ncread("wrfout_d02.nc",'XLONG');
Lat = ncread("wrfout_d02.nc",'XLAT');
pm2_5Data = ncread("wrfout_d02.nc",'PM2_5_DRY');
pm2_5Dataz_12am_clock = pm2_5Data(:,:,1:1:12,2);
pm2_5Dataz_12am_clock_l_eta = pm2_5Dataz_12am_clock(:,:,1);
Longitude = Lon(:,:,1);
Latitude_1 = Lat(:,:,1)';
Latitude = permute(Latitude_1,[2,1]);
lon_min_1=min(Longitude);%经度
lon_min=min(lon_min_1);%经度
lon_max_1=max(Longitude);
lon_max=max(lon_max_1);
lat_min_1=min(Latitude);%纬度
lat_min=min(lat_min_1);
lat_max_1=max(Latitude);
lat_max=max(lat_max_1);
m_proj('lambert','lon',[lon_min,lon_max],'lat',[lat_min,lat_max]);%Miller/Mercator
m_pcolor(Longitude,Latitude,pm2_5Dataz_12am_clock_l_eta);
hold on
m_plot([provinceBorder(:).X],[provinceBorder(:).Y],'k-','linewidth',0.3)



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-2 16:27:38 | 显示全部楼层
楼主解决了不?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表