处理栅格属性


使用工具:

ArcMap

栅格计算器-Con函数

数据:

土地利用栅格数据


目的

如何将栅格属性表中的value字段的值“参差不齐”的合并处理呢

什么意思呢?:flushed:
举个栗子,:point_down:

在一个土地利用的栅格数据中,

以全球30米地表覆盖数据(GlobeLand30)为例, 共包括10个类型,分别是:耕地、森林、草地、灌丛地、水体、湿地、苔原、人造覆盖、裸地、冰川与永久积雪。

若想要将其合并为较少的数据。比如将森林和灌丛地合并,则需要按属性合并。

做毕业论文的学姐有如下理由:① 类太多作图做表都不合适 ②没有代表性③ 因为全球范围太大了


重分类

开始的思路为利用重分类工具。

发现重分类工具适合连续性分类,比如,1-5合并为0,6-10合并为1这样分类。

若要1和11合并为0; 2、3、4合并为1,这就有点麻烦了。

但也有一种思路。

就是新添加字段,按照需要合并的顺序,将1和11赋值排序,将二者排在第一第二位,这样,可直接利用新字段进行重分类,即可达到目的。

但是,这样很蠢,面对数据量很大的情况,立马给跪。

放弃它!


Con函数

Con函数为栅格计算器下的一个工具。

其正确的语法是:

Con(判断条件,条件为True区域的栅格输出值,条件为False区域的栅格输出值)

可以嵌套!

1.简单用法:
Con(in_conditional_raster, true_raster, {false_raster})
2.嵌套(多条件):
OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
植入布尔运算:
OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
3.多图层,多条件,多语句:
OutRas = Con(InRas1 > 23, 5, Con(InRas1 > 20, 12, Con((InRas1 > 2) & (InRas1 < 17), Sin(InRas1), 100)))
多图层:
OutRas = Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2))
OutRas2 = Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))

参数如下

公式如下

rastercalc6=Con(“landuse_2001.tif” == 0 | 11,0,Con(“landuse_2001.tif” ==1 | 2 | 3 | 4 | 5 ,1,Con(“landuse_2001.tif” == 6 | 7 | 8 | 9 | 10,2,Con(“landuse_2001.tif” == 12 | 14,3,Con(“landuse_2001.tif” == 13,4,5)))))

更正:以上错误了

rastercalc1=Con((“landuse_2001.tif” == 0) | (“landuse_2001.tif” == 11),1,Con((“landuse_2001.tif” >= 1) & (“landuse_2001.tif” <= 5),2,Con((“landuse_2001.tif” >= 6) & (“landuse_2001.tif” <= 10),3,Con((“landuse_2001.tif” == 12) | (“landuse_2001.tif” == 14),4,Con(“landuse_2001.tif” == 13,5,Con((“landuse_2001.tif” == 15) | (“landuse_2001.tif” == 16),6,7))))))

【注意】:fist_oncoming:

公式中的rastercalc6,即要和输出栅格的名称一致。

时刻树立数据库意识。在数据库中处理数据。

结果如下,


文章作者: 李世昱
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 李世昱 !
评论
  目录