获取TIF格式轮廓、全球掩膜、区域掩膜(根据shp文件)

文章介绍了如何在arcgismap中通过二值化处理TIF文件并获取轮廓,然后利用栅格转面工具进一步操作。同时,提供了使用MATLAB绘制全球陆地/海洋掩膜的方法,包括创建逻辑矩阵并结合shp文件转换为区域掩膜。此外,还提到了shp文件转栅格格式并重分类以生成ASCII文本文件的步骤。
摘要由CSDN通过智能技术生成

获取TIF格式轮廓

在arcgis map中打开,
1、先对tif文件进行二值化,方法多样,可以用栅格计算器或者重分类;
2、使用栅格转面工具;
3、可以获取tif文件的轮廓,但是得到的结果可能还有外包轮廓,这只需要,打开编辑器,开始编辑,删掉外包轮廓,就可以了;

获取全球陆地/海洋掩膜

%绘制全球陆地/海洋掩膜
clc;
clear all;
res = 0.1; % grid size of land mask
Latlim = [-90 90];
Lonlim = [-180 180];
% m_proj('Mercator','lat',[-90 90],'lon',[-180 180]);
[S,~] = shaperead('landareas');

landmask = false(round(diff(Latlim)/res),round(diff(Lonlim)/res));%创建一个逻辑矩阵(logical matrix)landmask,判断地理坐标点是否位于陆地上。
%如果某个坐标位于陆地上,则对应的矩阵元素为true,否则为false。可以通过改变ture  false达到获取海洋掩膜的目的
ref = makerefmat('RasterSize', size(landmask), ...
   'Latlim', Latlim, 'Lonlim',Lonlim ,...
   'ColumnsStartFrom','north','RowsStartFrom','west');

for i=1:length(S)
    n = find(isnan(S(i).X), 1, 'first') - 1;
    [r,c] = map2pix(ref, S(i).X(1:n), S(i).Y(1:n));
    mask = roipoly(landmask,c,r);
    landmask(mask)=true;
end
imagesc(landmask);
landmask01=double(landmask);
save('landmask.mat','landmask01');
% geotiffwrite('landmask',uint8(landmask),ref)

根据shp文件获取区域掩膜

在arcgis中,shp文件转栅格格式,进行 重分类 ,对结果 栅格转ASCII 得到txt文件,matlab中可以读取txt文件,得到区域掩膜

在shp文件转栅格格式过程中,像元大小就是经纬度格网大小,一边默认的像元值都不大,如果很大,就需要先进行“投影”,
重分类这一步骤可用可不用

如果还有其他方法,欢迎一起交流学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值