如何将面数据集栅格化为一张掩膜?

0 投票
使用产品:idesktop 10i 操作系统:win10 x64
数据类型: 文件型
问题详细描述:

我需要将面数据集栅格化,且生成的栅格图中0表示无面对象,1表示有面对象,是否有方便的实现方式?
8月 21, 2020 分类:  338次浏览 | 用户: soratomo 才疏学浅 (10 分)

1个回答

0 投票
您好,在空间分析选项卡下,栅格分析——矢栅转换——矢量栅格化可以实现。
8月 24, 2020 用户: KeineAhnung 名扬四海 (1,542 分)
我想让输出的栅格图和另一张栅格图范围相同,但是矢量栅格化的边界只能选择面数据集,所以是否有精确的方法根据一整张栅格图绘制一个矩形面对象?
您将这个栅格矢量化,它就是一个面区域,然后以这个区域裁剪待生成的另一个栅格。

在一张小栅格图上测试了,发现矢量化之后的面数据集是由非常多的小面对象组成:

如果是转换一张十几亿像素的栅格图,效率太低了。

因为只需要一个覆盖全图的面对象,是否有更好的办法呢?

您好,在转换之前可以做一个代数运算Con(栅格值条件,0,1),然后利用栅格矢量化转换指定栅格值1,得到的区域就是覆盖全图的面对象。这个代数运算的意思是当栅格值符合条件时,将其值赋为0,否则全为1。
您好,我用您的方法得到了全图栅格和全图面对象,可是发现矢量栅格化的边界面数据集的作用是裁剪,而全图面对象覆盖了整个栅格化结果,对栅格化结果没有影响。

为了得到和全图栅格同样大的栅格,我尝试用全图栅格和前述的较小栅格进行栅格镶嵌,得到的结果基本没问题,但是还有两个小问题,第一个是,这一步比预想慢很多,镶嵌的两张栅格都是十亿多像素,1位无符号,花了20分钟;第二个是,镶嵌结果居然比大的栅格还要多出一行(32690*59027+25224*55867→32691*59027)。针对这两个问题请问您有什么建议吗?
您好,请问您是否镶嵌的时候把无值的区域也包含进去了。
无值都是默认的-9999,所以应该是没有的。
...