查看原文
其他

如何消除栅格镶嵌后的零星NODATA像元

走天涯徐小洋 走天涯徐小洋地理数据科学 2022-07-17

如何消除栅格镶嵌后的零星NODATA像元

一套分省的栅格数据,拼接后发现有零星的NODATA像元。

白色部分为NODATA的像元

怎么办呢?

ArcGIS消除NODATA像元

从网上搜索了一下,有人说ArcGIS可以通过滑动窗口的方法消除NODATA像元,本次试验数据为土地覆被数据,对此我使用了“MAJORITY”的方法进行插值消除NODATA。具体代码如下:

Con(IsNull("L2_2020.tif"), FocalStatistics("L2_2020.tif", NbrRectangle(5,5, "CELL"), "MAJORITY"), "L2_2020.tif")
Con(IsNull("NODATAFIX2020.tif"), FocalStatistics("NODATAFIX2020.tif", NbrRectangle(3,3, "CELL"), "MAJORITY"), "NODATAFIX2020.tif")
使用栅格计算器进行计算,消除NODATA

对比一下消除前后的效果,消除前存在大量的NODATA像元,消除后,确实少了一些,但是仍然存在。

<<< 左右滑动见更多 >>>

对此我再次执行了上面的操作,改小了滑动窗口的大小,第一次是5×5,第二次3×3,然而还是存在无法消除的NODATA像元。

QGIS消除NODATA像元

ArcGIS不太行,试试QGIS,QGIS里面自带的GRASS提供了r.fill.stats的NODATA插值消除工具。试试效果如何:

r.fill.stats插值消除NODATA

几个要点:

  • Preserve original cell values这个要打上勾,保护原始的数据不变
  • 插值方法,mode众数,同样还是因为是土地覆被数据,不要求均值

但是QGIS有个问题,就是这套数据用的是克拉索夫斯基的坐标系,GRASS无法识别,用r.fill.stats之后坐标系自动变成WGS84了,很简单,用ArcGIS强制定义一下坐标系,改回克拉索夫斯基即可。

很完美的消除了NODATA像元

有帮助还请多多转发分享呀!

参考文献

  1. https://blog.csdn.net/qq_44900916/article/details/105892322
  2. https://grass.osgeo.org/grass80/manuals/r.fill.stats.html

点击阅读原文查看更多土地覆被教程

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存