本文介紹基於ArcMap軟體,自動批次計算向量圖層中各個要素的面積的方法。
一次,遇到一個問題,需要分別計算ArcMap軟體中一個圖層的所有面要素的面積。如圖,這個圖層中包括多個省級行政區向量面要素,現在需要分別計算其中每一個要素各自的面積。
這裡有一個方便的辦法。
首先我們新建一個欄位。開啟圖層屬性表,選擇“Add Field”。
在彈出的介面中,配置如下。其中,“Name”大家可以隨意,“Type”選擇“Float”,下方的欄位屬性中,“Precision”為欄位的所有數字位數,無論是在小數點左邊還是右邊;“Scale”則為小數點右邊的數字位數,也就是保留幾位小數。例如:365.20
的Precision
就是5
,Scale
就是2
。
可以看到,已經新建了一個欄位。
在新建的欄位名稱上右鍵,選擇“Calculate Geometry”。
彈出了一個提示,大概意思是說:我沒有在開啟編輯模式的情況下進行欄位計算,那麼這樣會讓計算變得快一些,但是一旦計算開始,就不能撤回。
因此,追求計算速度還是追求可以撤回,依據大家的實際情況來就好。因為我這裡資料不多,計算也比較簡單,因此就直接選擇了繼續。
點選“Yes”之後,在彈出的視窗中第一個“Property”下拉框中選擇面積,也就是“Area”;此時發現我的“Area”後面跟著一個“Disabled”。為什麼處於這種狀態呢?
一般的,出現上述情況都是因為我們的面要素(也就是這個圖層)處於地理座標系,而並不是投影座標系。二者最簡單的區別就是,地理座標系用經度、緯度作為空間衡量指標,而投影座標系用米、千米等長度單位作為空間衡量指標。
那麼,我們就來看看我們現在是不是處於地理座標系狀態。在圖層列表中,右擊我們當前的圖層的名稱,選擇“Properties”。
選擇“Source”,可以看到,圖層的地理座標系統(“Geographic Coordinate System”)為WGS_1984
,這是一個地理座標系,而非投影座標系。
因此,如果我們需要計算面積,必須將這一圖層轉為投影座標系。
具體轉換的方法,點選檢視ArcGIS地圖投影與座標系轉換的方法即可,這裡就不贅述啦~
轉換為投影座標系後,開啟新圖層的屬性表,可以看到我們剛剛新建的欄位在這裡也是存在的。
依據同樣的方法,開啟“Calculate Geometry”,可以看到此時“Area”就不再帶著“Disabled”了。
其中,“Coordinate System”選擇第一項,也就是圖層自身的座標系,也就是剛剛我們給他投影所選用的投影座標系;“Units”是單位,大家依據實際情況來就好。我在這裡選擇平方米~
點選“OK”。可以看到“Area”欄位已經有面積了。
那麼,我們對這個計算出來的面積隨機驗證一下。用河南來驗證,計算面積為165982687427.8129
平方米,也就是165982.69
平方千米;我們看看實際面積:
差了大概1000平方千米。不能說很準確,但是還是可以滿足基本的大尺度區域分析了。在這裡,精度誤差可能的來源包括所用省級行政區.shp
檔案精度、投影座標系選用等。大家依據各自的研究需要,來決定需不需要對面積資料精度加以提升;可用的提升方法包括更換投影座標系、採用更精確的行政區圖層等方法。
再用北京試一下。計算的面積為16394318646.91106
平方米,也就是16394.32
平方千米;實際面積:
這個就很準確了~
那麼,能不能求出圖層中所有向量要素面積的和呢?可以的——在“Area”欄位名稱上右鍵,選擇“Statistics”。
這裡可以對全部欄位的樣本數量、極值、綜合、平均值、標準差、Null
值個數等加以檢視,非常方便。
至此,大功告成。