FME利用DEM高程資料,提取建築面

2021-10-06 22:25:43 字數 2103 閱讀 5194

開此部落格的目的就是記錄我在生活,工作中做的一寫技術方面的案例小總結,若是可以幫助到大家,那就更好了,我的目的也在於此。

由於本人接觸gis的時間也不長,在講解的過程中可能會有很多錯誤,摻雜著我個人的一些不靠譜的想法(我不熟悉的東西會在文章中說出來,盡量不給大家誤導)。

如有不足之處,還請大家指證,畢竟兩年前的今天我還在大山里拿著錘子敲石頭,幹的體力活,頭一次準備吃技術飯,**接觸過這麼高階的東西……

好了,廢話不多說,正文開始:

首先,假設我有乙個儲存了地形高程的dem資料,我要提取裡面高度大於多少公尺的面資料,生成乙個shp資料,以供我進行別的資料分析。

在fme裡有乙個rastertopolygoncoercer轉換器,可以將柵格資料轉換成對應的面資料,並且融合周邊輸出的要素。引數設定如下:

執行效果如下:

可以看到,它以不同高程值將柵格資料轉換成了乙個個的面要素,並且將其高程資料輸出為_lable屬性。如果附近的高程值一樣,則將其面融合。

然後用tester轉換器,過濾掉高程不符合我們需求的要素。

再dissolver轉換器進行融合,因為在融合後我需要提取該面的高程最大最小值,因此需要建立乙個陣列,保留融合前的每乙個要素的_lable值。

其dissover轉換器引數設定如下:

為了加快融合效率,我用buffer做了乙個緩衝,如果不需要的,可以這略過一步。

經過上一步的操作,最終生了我需要的面要素,每個麵內的list陣列中,儲存了我融合之前的所有要素的高程值,下一步就是將這些屬性提取出來。

先用listsorter,給陣列按從小到大排個序,我要的最小值就是陣列的第乙個值「list._label」 ,而最大值就是陣列最後一位。

要獲取陣列最後一位,就需要知道陣列的長度,listelementcounter可以獲取陣列長度,用陣列的長度減一則是陣列的最後一位所在的索引。我們用乙個_counter接收其陣列長度即可。(我感覺我寫的好囉嗦啊,囧!)

最終結果如下:

接下來就是用attributecreator建立最大最小屬性,然後給其賦值。,因為圖省事,我只用了乙個轉換器,所以裡面的函式會稍微有一點複雜,對小白不是那麼友好。

首先,min_level,直接給其賦值為「list._label」就可以了。max_level需要線算出陣列長度減一的值,數字加減用「@evaluate()」函式,裡面填上需要計算的數值,即為「@value(_count)-1)」。然後再用list{}._label包裹起來,最終函式為:「@value(list._label)」

再用attributeremover清理掉你不需要的屬性。

輸出最終結果如下,大功告成,打完收工!!!

第一次寫自己的個人部落格,我還是沒有做好定位,到底是面向fme小白,還是有一些fme基礎的新手,有的時候我覺得寫的太羅嗦,有的時候可能該講的東西又有些粗略,導致比較雜亂,還請大家海涵。

利用ArcGIS從DEM提取高程點至CAD

1.載入dem檔案。2.為減少資料量,進行柵格重取樣。data management tools raster raster processing resample 示例為10mx10m柵格,調整為30mx30m柵格 按需求調整 重取樣方法選擇 cubic 3.柵格轉點,conversiontool...

DEM高程資料獲取方法

dem高程資料做為gis中的常用資料,一直具有很大的用途,資料的解析度和 也是多種多樣,這裡就簡單的介紹一下各種解析度的國內和全球dem資料的獲取方法。請大家仔細看這篇部落格,具體我就不贅述了,這個部落格已經是講的最好的,最全的。2 地理空間資料雲 dem數字高程資料 3.tandem x全球免費9...

工具分享 DEM高程資料爬取工具

dem digital elevation model 數字高程模型,是包括高程在內的各種地貌因子,如坡度 坡向 坡度變化率等因子在內的線性和非線性組合的空間分布。可以用作地形分析 坡度坡向分析 水文分析 提取等高線 高程點等。當我們獲取了dem資料,就可以通過rhino arcgis等來進行資料的...