最近在做水文分析,需要提取一定高程一下的像元,但是碰到个问题。
如果直接利用栅格计算器来提取,系统自动赋值。比如“DEM”<1800,这个命令,符合条件的会赋值为1,不符合的会赋值为0。然后再利用栅格计算器,将生成的新图层乘DEM,就会得到高程值。但是这里的问题是,0与DEM相乘的高程值为0,会同时显示出来,而我最终想要的是如下图的结果,

那么该怎么做呢?
做了很久发现了这么一个问题,原始DEM是没有属性表的。所以想着可以先在Raster工具下给DEM附上属性值。但是在操作过程中发现了报错,说是只接受单波段图层。但是我这DEM的确是单波段的,所以非常疑惑。
接下来,发现此DEM数据是32位的,所以找到了一种新的解决方案。
第一步,将DEM数据转换为16位。(栅格计算器中实现)

经过这一步后,新生成的DEM就有了属性表,表中VALUE字段即为高程值。
第二步,利用“按属性提取”工具提取像元。(spatial Analyst->extract->extract by attributes)


提取出来的像元结果就和第一张图一
在进行水文分析时,遇到提取特定高程像元的问题。原始DEM数据无属性表,直接使用栅格计算器提取时,0与DEM相乘导致高程值为0。解决方法是将32位DEM转为16位,生成属性表,然后通过“按属性提取”工具获取所需像元。步骤包括:1. 将DEM转为16位以获得属性表;2. 使用“按属性提取”工具提取特定值。
715

被折叠的 条评论
为什么被折叠?



