爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 斥鷃

[程序设计] matlab中地图边界与掩膜(去掉边界外区域)的实现(基于shape文件)

  [复制链接]

新浪微博达人勋

发表于 2014-12-9 10:33:33 | 显示全部楼层
patch这个命令可以掩盖下面的contourf,但是我遇到一个问题就是用subplot的时候,画第二张图的时候,contourf之后就出现第一张图掩盖不住了,不知道这个问题有没有人遇见过?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-13 21:53:07 | 显示全部楼层
首先感谢楼主的分享,两年前的帖子帮了我大忙。其次关于MASK的方法,我在搜索国外的相关网站时貌似发现了更简单的做法,贴出来供大家参考下。用楼主之前的程序加以修改,黑体为关键部分。至于inpolygon函数大家自行help咯。
[lon lat]=meshgrid([97:0.1:107],[21:0.1:30]);
% Z=griddata(gy_locat(:,2),gy_locat(:,3),EOF_used(:,1),lon,lat,'v4');
yunnan=shaperead('yunnan.shp');

isin=inpolygon(lon,lat,yunnan.Lon,yunnan.Lat);
Z(~isin)=NaN;

contourf(lon,lat,Z,30);
shading flat
colorbar

hold on
plot(yunnan.X,yunnan.Y,'-k','linewidth',3)
hold off

评分

参与人数 3金钱 +24 贡献 +2 收起 理由
HALF + 2 赞一个!
BitterApple + 2 很给力!
斥鷃 + 20 + 2 很给力!

查看全部评分

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

新浪微博达人勋

发表于 2015-1-27 21:49:41 | 显示全部楼层
多谢楼主,请问如果坐标是XY坐标而不是经纬度坐标,该怎么实现呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-30 14:14:05 | 显示全部楼层
快乐枫 发表于 2015-1-27 21:49
多谢楼主,请问如果坐标是XY坐标而不是经纬度坐标,该怎么实现呢?

换成经纬网的坐标系吧~其他我也没有什么好方法,或者把shp文件的XY换成公里坐标也行。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-3-9 15:46:06 | 显示全部楼层
我和小云 发表于 2015-1-13 21:53
首先感谢楼主的分享,两年前的帖子帮了我大忙。其次关于MASK的方法,我在搜索国外的相关网站时貌似发现了更 ...

C:\Users\Administrator\Documents\360截图\360截图20150309154229860.jpg
谢谢你!那如果给全国涂色的话这种方法 也可以吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-3-22 19:37:57 | 显示全部楼层
非常好,很急需
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-3-23 15:52:51 | 显示全部楼层
很给力,赞一个!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-3 21:24:20 | 显示全部楼层
我和小云 发表于 2015-1-13 21:53
首先感谢楼主的分享,两年前的帖子帮了我大忙。其次关于MASK的方法,我在搜索国外的相关网站时貌似发现了更 ...

更简洁高效!刚好要用到!谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-4 11:14:14 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-8 15:17:57 | 显示全部楼层
谢谢楼主分享
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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