邱國會,郭 偉,邱 力
(1. 湖南省水利水電勘測設計研究總院,湖南 長沙 410007;2. 湖北省國土測繪院,湖北 武漢 430010)
FME 是由加拿大Safe Software 公司推出的一款優秀數據處理平臺,能兼容目前行業流行的絕大多數數據格式。FME軟件采用模塊化的管理模式和可視化的操作方法,將各種數據處理的過程簡單為界面流程性操作,極大地簡化了數據處理的開發環節,提高了數據處理的效率[1-2]。常用的洪水容量計算方法主要包括斷面法、等高線法和DEM法等,各種方法的優缺點[3]本文不再贅述。根據項目實際情況,鑒于FME軟件簡便、高效的特點,本文利用FME軟件構建轉換模板進行數據處理,并采用DEM進行洪水容量計算。
本文采用的基礎數據為1∶2 000 地形數據庫(gdb 格式)和洞庭湖一般垸分布示意圖(jpg 格式)。首先通過坐標投影、裁剪、格式轉換等步驟將一般垸所在地的地形數據庫轉換為dwg格式的1∶2 000地形圖數據;再通過地圖配準、矢量化、構面、格式轉換等步驟將一般垸分布示意圖轉換為kml 格式的范圍線數據。
外業或內業成圖時,堤防在水系設施圖層以線狀符號表示,分為依比例尺坡頂線干堤和依比例尺坡腳線干堤。堤防中心線提取主要是針對坡頂線干堤進行提取。其轉換過程為:①利用Tester 轉換器提取坡頂線干堤;②利用CoordinateExtractor 和VertexCreator 轉換器找到線起止端點;③利用NeighborFinder 轉換器找到離起止端點最近的端點;④利用VertexCreator 轉換器進行相鄰端點連線;⑤利用LineCombiner、Snap?per、SpikeRemover 和AreaBuilder 轉換器進行線構面;⑥利用CenterLineReplacer 轉換器進行面中心線提取;⑦利用 Intersector、PointOnLineOverlayer、SpatialFilter轉換器進行懸掛線剔除。
FME 通過定制綜合轉換器,實現了從一種格式到另一種格式的轉換,并在轉換過程中實現數據重構[4]。利用非連續的堤頂邊線提取堤頂中心線的流程如圖1所示。利用FME構建的提取模板(部分)如圖2所示。

圖1 堤頂邊線提取堤頂中心線流程圖

圖2 堤防中心線提取模板(部分)
在FME軟件中,構建的DEM數據主要包括地形圖文件中的高程點和等高線,即GCD層和DGX層,高程點可直接用來構建三角網。為了使構建的DEM更加合理和美觀,本文對等高線節點進行抽稀,并將抽稀后的節點轉換為三維節點作為構網的輸入數據,再利用RasterDEMGenerator 轉換器生成DEM,最后利用范圍數據線進行裁剪即可得到最終DEM。構建的DEM模板(部分)如圖3所示,生成的DEM成果如圖4所示。

圖3 構建的DEM模板(部分)

圖4 生成的DEM成果
對于沒有封閉的一般垸,需要提取非堤防區域的淹沒范圍線,可根據堤頂高程值確定輸入高程。輸入數據仍為地形圖的高程點和等高線,首先利用Con?tourGenerator轉換器生成等高線;再利用Tester轉換器將堤頂高程的等高線過濾出來,并將小范圍封閉的等高線剔除;然后利用LineCombiner 對剩余的等高線進行連接;最后抽稀平滑處理即可生成淹沒范圍線。對于非批量處理模板,為了使提取效果更好,可將堤頂高程和淹沒范圍線大致長度值定義為發布參數,開放給用戶[5]。淹沒范圍線生成模板如圖5所示,經驗證與實地淹沒范圍一致。

圖5 淹沒范圍線生成模板
本文采用DEM 計算洪水容量。DEM 數據的生產方法同上節,在RasterDEMGenerator 轉換器中可設置單元格大小,若為單步處理,該參數可開放出來供用戶輸入;若數據范圍不大,則可設置為默認的1 m×1 m。具體計算思路為:①根據生成的DEM獲取每個單元格的高程值,并利用RasterExpressionEvaluator 轉換器計算堤頂高程減去單元格高程的值,重新構建柵格圖像;②利用RasterCellCoercer 轉換器為重構后柵格中每個像元創建單獨的點,可選擇提取波段值作為Z 坐標或屬性;③將提取的Z 值乘以單元格面積得到單元格的洪水容量;④利用StatisticsCalculator 轉換器將柵格范圍內的所有單元格洪水容量相加,即為總的洪水容量。計算洪水容量模板如圖6所示。

圖6 單步計算洪水容量模板(部分)
批量處理的數據按照一般垸的名稱分類存放,每個一般垸文件夾中均包括地形圖(.dwg)、最終范圍(.dwg)和計算(.xlsx)3 個文件,其中地形圖為構建DEM 的原始數據,最終范圍為裁剪DEM 的范圍數據,計算文件中為計算洪水容量的分段高程數據值,用戶可根據堤頂高程和DEM中的最低高程設置。運用WorkspaceRunner 時需要構建好模板文件所需的參數,即地形圖文件路徑、范圍線文件路徑、高程分段表格文件。首先利用Directory and File Pathnames文件格式讀取文件夾下的文件路徑,再利用AttributePivoter轉換器進行轉置操作,最后與高程表格數據進行屬性融合處理,每條表格記錄包含單步處理時需要的地形圖路徑、范圍線路徑和高程值[6-7]。批量處理將Directory and File Pathnames 和 WorkspaceRunner 轉 換器相結合進行多線程處理,模板采用單步洪水容量計算模板,利用FeatureReader、AttributePivoter 和FeatureMerger 等轉換器構建WorkspaceRunner 轉換器的工作空間參數,轉換模板如圖7所示。

圖7 批量洪水容量計算模板(部分)
本文將上述模板成功應用于湖南省洞庭湖區一般垸的高程容積曲線圖繪制項目中。未采用模板計算時的基本計算流程為:①在地形圖中人工采集淹沒范圍線;②利用ArcGIS 將地形圖生成DEM,并分步對DEM進行坐標投影、裁剪;③利用“表面體積”工具計算每個高程值下的洪水容量。該方法人工干預較多、費時費力,每天最多只能計算兩個垸子。采用批量自動化計算模板后,用戶只需要按照格式要求提供輸入數據(地形圖資料),整個過程全自動處理,一天就完成了30 多個垸子的計算工作量,無需人工干預,節省了人力物力,極大地提高了工作效率。
某一般垸在不同高程下采用模板自動化計算與ArcGIS 傳統方法計算的結果對比如表1 所示,可以看出,與傳統方法相比,基于FME 的模板自動化處理方法的計算精度高、可靠性好,能滿足一般工程需求。

表1 計算結果精度比較
高程容積曲線圖是水利工程中的一項重要基礎資料,因此快速、準確、可靠地計算出洞庭湖區一般垸不同高程值下的洪水容量值尤為重要。研究表明,基于FME的模板自動化計算方法能根據非連續的堤頂邊線快速提取堤頂中心線,高效生成DEM 和淹沒范圍線,高精度計算容積值,人工干預少,自動化程度和計算可靠性高,在生產實踐中具有現實意義。