ArcGIS座標系之惑: 從基本概念到常用操作

介紹GIS(地理信息系統)中的座標系的想法由來已久,因爲工作中我發現有不少GIS專業的學生在博士畢業後仍然在座標系的概念理解和實際操作等方面不太清楚,而保證數據座標系的正確與合理是數據分析的前提。今年有幸輔助國科大地圖學與地理信息系統教研室《GIS應用實踐》的教學工作,藉此機會完成此想法。ArcGIS無疑是應用最廣的GIS軟件,因此以ArcGIS爲工具介紹座標系的基本概念和常用操作。我想,對於GIS專業人員、尤其對於GIS大牛來說,這是很小菜的。如有錯誤或不當之處,不吝指出。

(一)兩種座標系

座標系(Coordinate System)的概念爲:“In geometry, a coordinate system is a system which uses one or morenumbers, or coordinates, to uniquely determine the position of a point or othergeometric element on a manifold such as Euclidean space”(https://en.wikipedia.org/wiki/Coordinate_system)。簡單的說,有了座標系,我們才能夠用一個或多個“座標值”來表達和確定空間位置。沒有座標系,座標值就無從談起,也就無法描述空間位置。

在ArcGIS中,或者說在GIS中,我們遇到的座標系一般有兩種:

1)地理座標系(Geographic Coordinate System);  

2)投影座標系(Projected Coordinate System)。  

地理座標系進行地圖投影后就變成了投影座標系。地圖投影是按照一定的數學法則將地球橢球面上點的經維度座標轉換到平面上的直角座標。地圖投影的理論知識請參考其他資料,此處不做敘述。需要說明的是,也有將“座標系”稱爲“空間參考(Spatial Reference)”的情況,例如在ArcGIS中柵格數據的屬性裏面。

重要的事情說三遍:

這裏要講的不是“投影(Projection)”而是“座標系(Coordinate System)”!

這裏要講的不是“投影(Projection)”而是“座標系(Coordinate System)”!

這裏要講的不是“投影(Projection)”而是“座標系(Coordinate System)”!

儘管投影是介紹座標系的一個繞不開的重要內容。但是,首先,此文是圍繞座標系展開的。其次,說三遍是爲了強調投影和座標系的本質區別。座標系是數據或地圖的屬性,而投影是座標系的屬性。一個數據或一張地圖一定有座標系,而一個座標系可以有投影也可以沒投影。只有投影座標系纔有投影,地理座標系是沒有投影的。因此,一個數據或一張地圖亦是可以有投影也可以沒投影的。當然,非要較真,把具有地理座標系的數據顯示在平面地圖上肯定也有一個投影的過程。嚴格來講:我們只能說“數據或地圖的座標系”和“座標系的投影”,而不能說“數據或地圖的投影”。也許是大家平時都比較隨意,儘管都是知道二者的區別的,但是卻在很多想說座標系的時候就隨口說成了投影。因此,當你說“數據的投影”和“投影轉換”時,可以考慮下你是不是想說“數據的座標系”和“座標系轉換”。

先擡出重要的總結:地理座標系經過投影后變成投影座標系,投影座標系因此由地理座標系和投影組成,投影座標系必然包括有一個地理座標系。圖1概括了兩種座標系的聯繫:

圖1 ArcGIS 中“地理座標系(GCS)”與“投影座標系(PCS)”的聯繫

下面以一個具體示例來初識ArcGIS中的座標系,其全部參數拷貝在下面。這一示例是一個“投影座標系(Projected Coordinate System)”,其名稱是“WGS_1984_UTM_Zone_50N”。“WKID”是該座標系的編號,“ESPG”是“European Petroleum Survey Group”的縮寫,表示其由“歐洲石油調查組織”發佈。可知,“WGS_1984_UTM_Zone_50N”這個投影座標系由兩部分組成:名爲“Transverse_Mercator”的“投影(Projection)”和名爲“GCS_WGS_1984”的“地理座標系(GeographicCoordinate System)”。

WGS_1984_UTM_Zone_50N

WKID:32650 Authority: EPSG

Projection:Transverse_Mercator

False_Easting:500000.0

False_Northing:0.0

Central_Meridian:117.0

Scale_Factor:0.9996

Latitude_Of_Origin:0.0

LinearUnit: Meter (1.0)

GeographicCoordinate System: GCS_WGS_1984

AngularUnit: Degree (0.0174532925199433)

PrimeMeridian: Greenwich (0.0)

Datum: D_WGS_1984

Spheroid:WGS_1984

Semimajor Axis: 6378137.0

Semiminor Axis: 6356752.314245179

Inverse Flattening:298.257223563

地理座標系由三個參數來定義:角度單位(Angular Unit)、本初子午線(Prime Meridian)和大地測量系統(Datum)。地理座標系“GCS_WGS_1984”使用的角度單位爲“度(Degree)”,0.0174532925199433這個數字等於“π/180”,使用的本初子午線爲0.0度經線,即格林威治皇家天文臺(Greenwich)所在位置的經線,使用的大地測量系統則爲“D_WGS_1984”。

地理座標系的最重要的參數是“大地測量系統(Datum)”,而大地測量系統的最重要的參數是“橢球(Spheroid)”。橢球相同,大地測量系統不一定相同,因爲原點(origin)和方位(orientation)可以不同。想象一下,同一個橢球,首先可以固定在三維空間中的任意一個點,並且在固定於某點後還能以三個自由度任意地旋轉其方位(朝向)。當然,具體國家或地區在選擇大地測量系統時,總是選擇與這一國家或地區的地面最吻合的大地測量系統,而不是拍腦袋隨便選的。我們拿到的境內的許多數據使用的都是“D_Xian_1980”大地測量系統,因爲“D_Xian_1980”是我們依據我國疆域的地面自己定義出來的,因而較“D_WGS_1984”與我國疆域的地面更吻合。“D_WGS_1984”大地測量系統使用的橢球爲“WGS_1984”,而“WGS_1984”橢球的“長半軸(Semimajor Axis)”和“短半軸(Semiminor Axis)”分別爲6378137.0和6356752.314245179,其“反扁率(Inverse Flattening)”爲298.257223563,等於Semimajor Axis/( Semimajor Axis - Semiminor Axis)。

投影的參數對不同的投影方法有一定差別,在此也不詳述各投影的具體參數。投影座標系“WGS_1984_UTM_Zone_50N”使用的“投影(Projection)”名爲“橫軸墨卡託(Transverse_Mercator)”,然而這個名稱並不能完全準確概括其投影。事實上,投影座標系“WGS_1984_UTM_Zone_50N”這個名稱中的“WGS_1984”指出了其地理座標系爲“GCS_WGS_1984”,

而“UTM_Zone_50N”則指出了其投影。“UTM_Zone_50N”這個名稱指出,其投影方法是“通用橫軸墨卡託(Universal Transverse Mercator,UTM)”,其投影帶爲北半球第50帶,這個“Zone_50N”的“中央經線(Central Meridian)”正是117.0度,在“Transverse_Mercator”的參數中得到了體現。舉一反三,“Xian_1980_GK_CM_117E”這個座標系使用的地理座標系爲“GCS_Xian_1980”,而投影名稱“GK_CM_117E”指出其使用以東經117度爲中央經線的“高斯-克呂格(Gauss-Kruger,GK)”投影。投影的另一個重要參數是“東偏(False Easting)”。有些投影會在X座標值前加上投影帶號,比如:“Xian_1980_GK_Zone_20”的“false_easting”參數爲20500000.0,其中20爲投影帶號,

而“Xian_1980_GK_CM_117E”的“false_easting”參數爲500000.0,儘管它們的中央經線都爲東經117度。

(二)三個半概念

在ArcGIS中,有三個概念容易混淆(另外半個最後揭曉),需要特別進行區分:

1)數據的真實座標系,簡稱爲“真實座標系”;

2)數據屬性所標稱的座標系,簡稱爲“屬性座標系”;

3)ArcMap/ArcScene中Layers的座標系,簡稱爲“地圖座標系”。  

數據的真實座標系是指數據記錄本身所對應的座標系。比如,國科大雁棲湖校區圖書館在地理座標系

“GCS_WGS_1984”下的經緯座標大概爲(116.679267°E,40.408265°N),在投影座標系“WGS_1984_UTM_Zone_50N”下的平面座標爲(472786.066803m,4473121.59882m)。假如用一個Point Shapefile數據來記錄國科大雁棲湖校區圖書館的位置。如果使用經緯座標(116.679267,40.408265)來記錄此位置,那麼數據的真實座標系就是地理座標系GCS_WGS_1984,如果使用平面座標(472786.066803,4473121.59882)來記錄此位置,那麼數據的真實座標系就是投影座標系WGS_1984_UTM_Zone_50N。

數據的真實座標系是什麼,可以通過以下方式進行驗證。在ArcMap中加載這一個Point Shapefile數據,打開其屬性表(Attribute Table),右擊任意已有或新建的數值類型爲Double(或Float)的Filed進行“Calculate Geometry”運算,如果數據的真實座標系爲地理座標系GCS_WGS_1984,那麼計算的“X Coordinate of Point”就爲116.679267(圖2),如果數據的真實座標系爲投影座標系WGS_1984_UTM_Zone_50N,那麼X座標值就爲472786.066803。  

圖2 使用“Calculate Geometry”檢查Point Shapefile 數據的“真實座標系”

對於柵格數據,也有方法判斷其真實座標系。通常,柵格分辨率數值很小的是地理座標系,柵格分辨率的數值很大則爲投影座標系。以經常使用的SRTM DEM柵格數據爲例。從網上下載的SRTM DEM數據是地理座標系,其分辨率數值爲0.00083333333(圖3),表示其每個柵格的長寬都爲0.00083333333度。而0.00083333333度這個距離在國科大的緯度位置大致相當於地面距離81.4520173米。因此,如果使用投影座標系,讓81.4520173這個數值作爲這個緯度位置的SRTM DEM數據的分辨率是合理的選擇。81.4520173是0.00083333333的接近10萬倍(圖3),因此分辨率(Cell Size)是判斷柵格數據的座標系是地理座標系還是投影座標系的重要依據。當然,大尺度的全球柵格數據在地理座標系下其分辨率數值可以很大,比如1度,而小區域的柵格數據在投影座標系其分辨率數值也可以很小,比如1米。

圖3 同一個柵格數據在“地理座標系”和“投影座標系”下的分辨率數值相差巨大

數據屬性所標稱的座標系是指數據文件的屬性所標稱的座標系。一般來說,我們有兩個入口來查看數據屬性所標稱的座標系:一種是在Catalog裏面右擊該數據文件打開Properties,Shapefile文件可直接在Properties中查看或者修改“XY Coordinate System”,Raster文件可以通過Edit(編輯)“SpatialReference”來打開“XY Coordinate System”進行查看或者修改;另一入口是當把數據加載進ArcMap或ArcScene後,在此數據的Layer Properties的“Source”標籤中查看。第二個入口只能查看而不能修改屬性座標系。圖4爲分別在Shapefile Properties和Layer Properties中查看國科大雁棲湖校區圖書館PointShapefile數據的屬性座標系。  

圖4 在Shapefile Properties 和Layer Properties 中查看Point Shapefile 數據的“屬性座標系”

這裏要特別強調的是:數據的真實座標系和屬性座標系可以不同,當二者不同時就出現錯誤。例如:

數據的真實座標系爲地理座標系GCS_WGS_1984,而屬性座標系爲投影座標系WGS_1984_UTM_Zone_50N,

或真實座標系爲投影座標系WGS_1984_UTM_Zone_50N,

而屬性座標系爲地理座標系GCS_WGS_1984,都是錯誤的。類似的,數據的真實座標系爲地理座標系GCS_WGS_1984,而屬性座標系爲地理座標系GCS_Xian_1980,或真實座標系爲投影座標系WGS_1984_UTM_Zone_50N,而屬性座標系爲投影座標系WGS_1984_UTM_Zone_49N,也都是錯誤的。只要二者不統一,就是錯誤的。在數據處理過程中,誤將屬性座標系改動,造成屬性座標系與真實座標系不符合,是ArcGIS操作的常見錯誤。使數據的屬性座標系和真實座標系吻合,是進行所有數據處理和分析的必要前提。

同樣以國科大雁棲湖校區圖書館的Point Shapefile數據爲示例說明真實座標系和屬性座標系不吻合的情況。如果Point Shapefile數據的真實座標系爲地理座標系GCS_WGS_1984,而將屬性座標系設置爲投影座標系WGS_1984_UTM_Zone_50N,圖書館點就會跑到赤道附近的印度尼西亞去(圖5)。此時,系統會認爲此點在投影座標系WGS_1984_UTM_Zone_50N中座標值爲(116.679267,40.408265),而在投影座標系WGS_1984_UTM_Zone_50N中正確的座標值應爲(472786.066803,4473121.59882)。相反,如果Point Shapefile數據的真實座標系爲投影座標系WGS_1984_UTM_Zone_50N,而屬性座標系爲地理座標系GCS_WGS_1984,圖書館點則會“跑出地球”。因爲系統會認爲此點的經緯度爲(472786.066803,4473121.59882),地球上的點的經緯度值最大爲180度,最小爲-180度,因而這兩個經緯度值遠遠超過了180度的最大值。  

圖5 數據的“屬性座標系”與“真實座標系”不吻合導致的點位錯誤

爲何在實際操作中我們一般都不必檢查數據的屬性座標系是否與真實座標系吻合呢?這是因爲在大多數時候,我們拿到的數據不但有屬性座標系並且還與真實座標系是吻合的。一般來說,有兩個明顯的跡象可以判斷數據的屬性座標系是不對的。一個是將數據加載到ArcMap裏面後報錯;另外一個是數據加載到ArcMap裏面後儘管沒報錯,但是位置明顯不對。比如上面的例子,位於國科大的點跑到印度尼西亞去了。

圖6是將真實座標系爲投影座標系“Asia_Lambert_Conformal_Conic”的數據的屬性座標系改爲地理座標系“GCS_WGS_1984”並加載到ArcMap裏面後的報錯信息。這個信息是說“數據的範圍(extent)與其空間參考的信息不吻合”。

.......

更多精彩內容請關注我的微信公衆號

一位更懂IT的GISER,一位更懂GIS的IT

 

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