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的要素,將這些要素導出:

結束。

嗯,雖然選擇的解決方法不是用時最短的,但是遇到坑跳出坑的過程就是學習

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