爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: Lighting

[源程序] [支持m_map白化] MATLAB对地图进行白化

  [复制链接]

新浪微博达人勋

发表于 2017-3-9 23:50:37 | 显示全部楼层
首先感谢楼主分享,。我在使用你的函数的时候,出现了这个问题:错误使用 maskMap (line 48)
'longitudes' 的值无效。它必须满足函数: @(x)isvector(x)&&length(x)==2。请教楼主这是怎么回事呢?我是用m_pcolor画的图,有影响吗?谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-3-10 08:40:17 | 显示全部楼层
Eric.Yang 发表于 2017-3-9 23:50
首先感谢楼主分享,。我在使用你的函数的时候,出现了这个问题:错误使用 maskMap (line 48)
'lo ...

longitudes 只能是包含两个元素的向量。即 以[110 120]这种形式来使用,对于其它形式将会导致出错。maskMap 函数不能自适应投影方式,所以如果配合m_map工具箱使用的话可能不会得到你想要的结果。如果想使用 m_map 工具箱绘图,然后进行白化的话,可以看一下 帖子中 利用m_map工具箱生成海岸线数据进行白化 的部分(当然使用这种方式白化时,效率比较低),如果对海岸线数据的精度要求不高,可以直接看帖子中提供的 MATLAB CENTRAL 中提到的白化方法,这种方法也能进行白化,而且效率很高。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-10 08:53:21 | 显示全部楼层
Lighting 发表于 2017-3-10 08:40
longitudes 只能是包含两个元素的向量。即 以[110 120]这种形式来使用,对于其它形式将会导致出错。maskM ...

好的,感谢你的解答,我试一下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-10 20:28:15 | 显示全部楼层
Lighting 发表于 2017-3-10 08:40
longitudes 只能是包含两个元素的向量。即 以[110 120]这种形式来使用,对于其它形式将会导致出错。maskM ...

楼主,麻烦再请教你一个问题,我用pcolor和你提供的函数,实现了地图白化,但是grid和和tickdir不能正常显示,希望楼主帮忙看一下,谢谢。这是我的程序
  1. axesm('MapProjection', 'eqdcylin');
  2. setm(gca, 'MapLatLimit',[35 43],'MapLonLimit',[112 120]);
  3. framem on; gridm on;
  4. set(gca,'tickdir','in');
  5. set(gca,'LineWidth',2,'FontWeight','bold','FontSize',10,'FontName','Times New Roman','Ylim',[35,43],'Xlim',[112,120],'box','on','XTick',(112:2:120),'XTicklabel',{'112°E','114°E','116°E','118°E','120°E'} ,'YTick',(35:2:43),'YTicklabel',{'35°N','37°N','39°N','41°N','43°N'});
  6. pcolor(LON,LAT,CHN_AOT_2);
  7. shading flat
  8. maskMap('E:\boundry\BTH_CITY.shp',true,'lon',lon1,'lat',lat1,'linewidth',1, 'edgecolor','black')
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-3-10 21:41:39 | 显示全部楼层
Eric.Yang 发表于 2017-3-10 20:28
楼主,麻烦再请教你一个问题,我用pcolor和你提供的函数,实现了地图白化,但是grid和和tickdir不能正常 ...

我不清楚你是否还有其他设置,但我这边是可以的。我使用的版本是2016b。
untitled.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-10 21:49:52 | 显示全部楼层
Lighting 发表于 2017-3-10 21:41
我不清楚你是否还有其他设置,但我这边是可以的。我使用的版本是2016b。

E:\QQ截图20170310215158.png  谢谢楼主解答,我得出的图是这样的,我是想把grid加上,但一直显示不了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-10 21:52:31 | 显示全部楼层
不好意思,没加上图,我用的也是2016b
QQ截图20170310215158.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-3-12 09:40:27 | 显示全部楼层
Eric.Yang 发表于 2017-3-10 21:52
不好意思,没加上图,我用的也是2016b

还是之前所说的,maskMap函数不能自适应投影,如果不使用投影的话,是可以添加grid的,也就是说除了latlon方式之外,对于其它的投影很可能会出问题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-12 20:46:13 | 显示全部楼层
Lighting 发表于 2017-3-12 09:40
还是之前所说的,maskMap函数不能自适应投影,如果不使用投影的话,是可以添加grid的,也就是说除了latlo ...

好的,感谢楼主细致的解答。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-3-12 21:14:47 | 显示全部楼层
Eric.Yang 发表于 2017-3-12 20:46
好的,感谢楼主细致的解答。

关于支持投影的问题后面可能会解决,而且说不定在解决这个问题之前,新版的matlab就能完美支持白化了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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