利用shp文件构建mask【MATLAB和ARCGIS】两种方法

1 ARCGIS (推荐!!!-速度很快)

  1. 利用Polygon to Raster
    注意:由于我们想要的mask有效值是1,在进行转换的时候,注意设置转换字段【Value field】
    【Value field】通过编辑shp文件属性表进行设置【设置为1
    在这里插入图片描述
    可通过Environments设置经纬度范围
  2. 得到栅格数据后,导出栅格
    在这里插入图片描述
    通过设置为NODATA=0将目标矢量区域外的格网值设置为0
    可以自定义栅格分辨率或者栅格大小
    在这里插入图片描述
    这里,我生成的是tif数据,得到最终的mask栅格数据,方便后期在Python或者MATLAB中使用

2 MATLAB 方法(速度太慢)

利用函数shapereadinpolygon

clear;clc;
# 1 读取shp文件
China1=shaperead('省.shp');
# 2 设置整体区域【一般是一个大格网】的经纬度
mask = ones(128,128);
lat = 30.8:0.05:37.15;
lon = 110.35:0.05:116.7;
# 注意:mask的行列数量需要和lat[lon]保持一致
[latt,lonn] = meshgrid(lat,lon); # 生成经纬度格网点
# 3 mask圈定
# idx1为正整数
inshp = inpolygon(lonn,latt,China1(idx1).X,China1(idx1).Y);
mask = mask.*inshp;	# 点乘
mask(mask==0) = nan;

学习链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值