使用工具:
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,即要和输出栅格的名称一致。
时刻树立数据库意识。在数据库中处理数据。
结果如下,