arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度
1. 概述
已知有一個河流的線圖層(HydroL)和多個不同用地類型的圖層(WoodyA表示綠化用地,ResidentialA表示公共用地,BoundaryA表示其他類型用地),目標是獲得每個分區內的河流總長度,該如何實現?
2. 問題本質
這個問題其實和分區統計管線長度,或者分省統計鐵路長度其實是一樣的,那么在ArcGIS中,我們要如何實現呢?
現有數據和圖例(私信回復"下載器"獲取萬能地圖下載器下載矢量數據)
在本例中,區域之間的重合是被允許的,如果計算的是各行政區的河流(管線)總長度,即各區域之間不允許重合,則在處理之前,需要先進行拓撲修正。
3. 修正拓撲錯誤
打開ArcCatalog,在要素數據集上右鍵新建拓撲,按照系統向導一步一步設置:
名稱:分區河流長度_Topology;
拓撲容差:保持默認;
參與到拓撲中的要素類:三個面要素;
等級:保持默認;
拓撲規則:BoundaryA不能與其他要素重疊ResidentialA,BoundaryA不能與其他要素重疊WoodyA,ResidentialA不能與其他要素重疊WoodyA。
最終摘要如下圖,完成后在彈出的是否立即驗證的對話框中選擇否。
新建拓撲摘要
打開ArcMap,將新建的拓撲以及對應的數據加載進來。
開啟編輯,調用拓撲工具條,將視圖縮放到所有圖層,單擊驗證當前范圍中的拓撲,然后打開錯誤檢查器,對表格中的拓撲錯誤逐一排查修正。
拓撲工具條
在每一條錯誤上右鍵會顯示系統提供的錯誤修改方法,對于面和面重疊的拓撲錯誤一般選擇系統建議的合并方法即可,單擊合并后會出現合并選擇對話框,選擇需要合并的要素,單擊確定修改。
錯誤檢查器
4. 標識要素
然后對處理完成的數據,我們需要做的就是讓每條河流都有一個字段值可以分辨出它流經的區域,我們通過標識(Identity)工具實現。
打開toolbox, 依次選擇分析工具(Analysis Tools) > 疊加分析(Overlay) > 標識(Identity),相關參數設置如下:
標識(Identity)工具對話框
通過以上操作,將河流按woody的邊界斷開,并生成新的帶有woody標識的河流圖層,其中每段河流都包含了woody圖層的屬性。
同理,我們需要將residential和boundary圖層也標識到河流上。
再次運行標識(Identity)工具,輸入要素:HydroL_Identity1;標識要素:ResidentialA;輸出要素:HydroL_Identity2;連接屬性:ALL。
第三次運行標識(Identity)工具,輸入要素:HydroL_Identity2;標識要素:BoundaryA;輸出要素:HydroL_Identity3;連接屬性:ALL。
5. 計算長度
接下來需要計算新HydroL圖層每段河流的長度。
首先需要新建一個字段用于存儲河流長度。在內容列表(TOC)中右鍵HydroL_Identity3圖層,單擊打開屬性表,表選項(Options) > 添加字段(Addfield),字段名為"length",類型為"雙精度"。
新建字段對話框
右鍵length字段計算幾何(CalculateGeometry),打開計算幾何對話框,設置如下,計算該坐標投影下每段河流的長度。
計算幾何對話框
注意:
計算河流長度要素類必須具有投影坐標系統;
如果要素類存儲在Geodatabase中,則可以直接使用Shape_Length字段中的值。
6. 長度統計
下面我們需要根據不同的區域進行長度統計。打開Toolbox,分析工具(AnalysisTools) > 統計分析(Statistics) > 匯總統計數據(SummaryStatistics),參數設置如下:
匯總統計數據對話框
統計字段:如果是shapefile格式,選擇第二步新建的字段;如果是Geodatabase格式,直接選擇Shape_Length字段。統計類型:選擇SUM;
案例分組字段:選擇具有唯一標識的字段,例如,在本案例中,woody字段中存儲的值為1,標識這條河流位于woody區域內。最終會生成一張dbf表格,內容如下:
最終結果表
SUM_length字段可以清楚地看到每個區域的河流總長度,另外還會發現有些河流沒有流經任何區域。
如果沒有進行第一步,即允許區域之間重合,那么最終結果還會顯示出流經多個區域的河流的長度,如下圖所示。
未經拓撲修正的結果圖
7. 結語
以上就是如何使用ArcGIS計算分區河流(管線)總長度的詳細說明,更多的矢量數據可以使用水經注萬能地圖下載器進行下載。
總結
以上是生活随笔為你收集整理的arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html表白_HTML 表白网页
- 下一篇: node开启子线程_多进程 amp; N