arcgis pro 中dem生成等高线以及等高线抽稀

事情是这个样子的,有客户提出来需要某省的等高线数据,等高线间隔为5米。5米?数据量太大了吧,客户说稍微再大点木有关系。于是,初步计划输出间隔为15米的等高线。所用数据为该省30米分辨率的dem数据。思路:使用等值线工具,输入dem输出等高线。是不是很简单。然而。。。

第一个坑,拿到dem数据要记得要先检查下数据情况,是不是有nodata情况存在

再arcgis pro 中加载dem。

发现存在-999,干掉他!

方法:复制栅格工具。设置忽略背景值-999

第二个坑,大区域高密度等高线生成需要时间超级长

等值线工具运行了两个小时

然而,数据量太大,客户说太密集了看不出变化,你抽稀一下吧

嗯,客户是上帝

解决方法一:重新生成等高线

解决方法二:对已经生成的等高线进行筛选,再导出

考虑到重新生成等高线用时太久,我选择方法二。(事实证明这个方法不明智,一点都不明智!不明智!)

查看了下等高线高程字段,发现有好多都是整百,那我直接取一百的整数倍的等高线不就可以了么?

第三个坑,按属性选择中“包括值”条件

结果选出的数据只有高程值为0的几条!

原因:高程字段为数值型字段,这个公式对字符型有效。

好吧,换一个思路,用字段计算器,筛选能被100整除的。

过程是,新建字段,使用字段计算器。这里就遇到一个小坑

第四个坑,数据量大的时候,新建字段用时也比较长

这个没办法避免,新建字段成功后打开字段计算器

第五个坑,写代码块注意格式,空格、冒号不能少

定义函数以后,函数内容前一定要加空格!!!

在这里没注意,被这个空格坑了好久,这也是我觉得当时应该选择直接通过dem新生成等高线的原因

def qz(num):
 if num % 100 == 0:
    return 1
 else:
    return 0

取整代码块,有需要自取

字段计算完成,按照该字段进行属性筛选,筛选出bj为1的要素,将这些要素导出:

结束。

嗯,虽然选择的解决方法不是用时最短的,但是遇到坑跳出坑的过程就是学习

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章