天天看點

坐标系統和投影變換在桌面産品中的應用

坐标系統和投影變換在桌面産品中的應用

   GIS處理的是空間資訊,而所有對空間資訊的量算都是基于某個坐标系統的,是以GIS中坐标系統的定義是GIS系統的基礎,正确了解GIS中的坐标系統就變得尤為重要。坐标系統又可分為兩大類:地理坐标系統、投影坐标系統。本文就對坐标系和投影及其在ArcGIS桌面産品中的應用做一些簡單的論述。

GIS中的坐标系定義由基準面和地圖投影兩組參數确定,而基準面的定義則由特定橢球體及其對應的轉換參數确定,是以欲正确定義GIS系統坐标系,首先必須弄清地球橢球體(Ellipsoid)、大地基準面(Datum)及地圖投影(Projection)三者的基本概念及它們之間的關系。

一、地球橢球體(Ellipsoid)

   衆所周知我們的地球表面是一個凸凹不平的表面,而對于地球測量而言,地表是一個無法用數學公式表達的曲面,這樣的曲面不能作為測量和制圖的基準面。假想一個扁率極小的橢圓,繞大地球體短軸旋轉所形成的規則橢球體稱之為地球橢球體。地球橢球體表面是一個規則的數學表面,可以用數學公式表達,是以在測量和制圖中就用它替代地球的自然表面。是以就有了地球橢球體的概念。

地球橢球體有長半徑和短半徑之分,長半徑(a)即赤道半徑,短半徑(b)即極半徑。f=(a-b)/a為橢球體的扁率,表示橢球體的扁平程度。由此可見,地球橢球體的形狀和大小取決于a、b、f 。是以,a、b、f被稱為地球橢球體的三要素。

 對地球橢球體而言,其圍繞旋轉的軸叫地軸。地軸的北端稱為地球的北極,南端稱為南極;過地心與地軸垂直的平面與橢球面的交線是一個圓,這就是地球的赤道;過英國格林威治天文台舊址和地軸的平面與橢球面的交線稱為本初子午線。以地球的北極、南極、赤道和本初子午線等作為基本要素,即可構成地球橢球面的地理坐标系統(A geographic coordinate system (GCS) uses a threedimensional spherical surface to define locations on the earth.A GCS includes an angular unit of measure, a prime meridian,

and a datum (based on a spheroid).)。可以看出地理坐标系統是球面坐标系統,以經度/次元(通常以十進制度或度分秒(DMS)的形式)來表示地面點位的位置。

地理坐标系統以本初子午線為基準(向東,向西各分了1800)之東為東經其值為正,之西為西經其值為負;以赤道為基準(向南、向北各分了900)之北為北緯其值為正,之南為南緯其值為負。

二、大地基準面(Geodetic datum)

大地基準面(Geodetic datum),設計用為最密合部份或全部大地水準面的數學模式。它由橢球體本身及橢球體和地表上一點視為原點間之關系來定義。此關系能以 6個量來定義,通常(但非必然)是大地緯度、大地經度、原點高度、原點垂線偏差之兩分量及原點至某點的大地方位角。

讓我們先抛開測繪學上這個晦澀難懂的概念,看看GIS系統中的基準面是如何定義的,GIS中的基準面通過當地基準面向WGS1984的轉換7參數來定義,轉換通過相似變換方法實作,具體算法可參考科學出版社1999年出版的《城市地理資訊系統标準化指南》第76至86頁。假設Xg、Yg、Zg表示WGS84地心坐标系的三坐标軸,Xt、Yt、Zt表示當地坐标系的三坐标軸,那麼自定義基準面的7參數分别為:三個平移參數ΔX、ΔY、ΔZ表示兩坐标原點的平移值;三個旋轉參數εx、εy、εz表示當地坐标系旋轉至與地心坐标系平行時,分别繞Xt、Yt、Zt的旋轉角;最後是比例校正因子,用于調整橢球大小。

那麼現在讓我們把地球橢球體和基準面結合起來看,在此我們把地球比做是“馬鈴薯”,表面凸凹不平,而地球橢球體就好比一個“鴨蛋”,那麼按照我們前面的定義,基準面就定義了怎樣拿這個“鴨蛋”去逼近“馬鈴薯”某一個區域的表面,X、Y、Z軸進行一定的偏移,并各自旋轉一定的角度,大小不适當的時候就縮放一下“鴨蛋”,那麼通過如上的處理必定可以達到很好的逼近地球某一區域的表面。

是以,從這一點上也可以很好的了解,每個國家或地區均有各自的基準面,我們通常稱謂的北京54坐标系、西安80坐标系實際上指的是我國的兩個大地基準面。我國參照前蘇聯從1953年起采用克拉索夫斯基(Krassovsky)橢球體建立了我國的北京54坐标系,1978年采用國際大地測量協會推薦的1975地球橢球體(IAG75)建立了我國新的大地坐标系--西安80坐标系,目前大地測量基本上仍以北京54坐标系作為參照,北京54與西安80坐标之間的轉換可查閱國家測繪局公布的對照表。 WGS1984基準面采用WGS84橢球體,它是一地心坐标系,即以地心作為橢球體中心,目前GPS測量資料多以WGS1984為基準。

克拉索夫斯基(Krassovsky)、1975地球橢球體(IAG75)、WGS1984橢球體的參數可以參考常見的地球橢球體資料表。

橢球體與基準面之間的關系是一對多的關系,也就是基準面是在橢球體基礎上建立的,但橢球體不能代表基準面,同樣的橢球體能定義不同的基準面。

三、投影坐标系統(Projected Coordinate Systems )

地球橢球體表面也是個曲面,而我們日常生活中的地圖及量測空間通常是二維平面,是以在地圖制圖和線性量測時首先要考慮把曲面轉化成平面。由于球面上任何一點的位置是用地理坐标(λ,φ)表示的,而平面上的點的位置是用直角坐标(χ,у)或極坐标(r, )表示的,是以要想将地球表面上的點轉移到平面上,必須采用一定的方法來确定地理坐标與平面直角坐标或極坐标之間的關系。這種在球面和平面之間建立點與點之間函數關系的數學方法,就是地圖投影方法。

       接下來首先讓我們來看看ArcGIS産品中對于北京54投影坐标系統的定義參數:

Projection: Gauss_Kruger

Parameters:

False_Easting: 500000.000000

False_Northing: 0.000000

Central_Meridian: 117.000000

Scale_Factor: 1.000000

Latitude_Of_Origin: 0.000000

Linear Unit: Meter (1.000000)

Geographic Coordinate System:

Name: GCS_Beijing_1954

Alias:

Abbreviation:

Remarks:

Angular Unit: Degree (0.017453292519943299)

Prime Meridian: Greenwich (0.000000000000000000)

Datum: D_Beijing_1954

Spheroid: Krasovsky_1940

Semimajor Axis: 6378245.000000000000000000

Semiminor Axis: 6356863.018773047300000000

Inverse Flattening: 298.300000000000010000

從參數中可以看出,每一個投影坐标系統都必定會有Geographic Coordinate System(地理坐标系統)。那麼我們從這一角度上解釋一下投影和投影所需要的必要條件:将球面坐标轉化為平面坐标的過程便是投影過程;投影所需要的必要條件是:第一、任何一種投影都必須基于一個橢球(地球橢球體),第二、将球面坐标轉換為平面坐标的過程(投影算法)。簡單的說投影坐标系是地理坐标系+投影過程。

讓我們從透視法(地圖投影方法的一種)角度來直覺的了解投影。

幾何透視法是利用透視的關系,将地球體面上的點投影到投影面(借助的幾何面)上的一種投影方法。如假設地球按比例縮小成一個透明的地球儀般的球體,在其球心或球面、球外安置一個光源,将球面上的經緯線投影到球外的一個投影平面上。

投影既然是一種數學變換方法,那麼任何一種投影都存在一定的變形,是以可以按照變形性質将投影方法如下分類:等角投影(Conformal  Projection) 、     等積投影(Equal Area Projection)、等距投影(Equidistant Projection)、等方位投影(True-direction Projection)四種。每種投影根據其名稱就可以知道其方法保證了資料的那些幾何屬性,在實際應用過程中應根據需求來選取某種投影。

       如果按照投影的構成方法分類又可分為方位、圓柱、圓錐投影三種,在上述三種投影中由于幾何面與球面的關系位置不同,又分為正軸、橫軸和斜軸三種。

 接下來我們來看看我們國家通常采用的投影——高斯—克呂格(Gauss-Kruger)投影,是一種“等角橫切圓柱投影”。德國數學家、實體學家、天文學家高斯(Carl Friedrich Gauss,1777一 1855)于十九世紀二十年代拟定,後經德國大地測量學家克呂格(Johannes Kruger,1857~1928)于 1912年對投影公式加以補充,故名。設想用一個圓柱橫切于球面上投影帶的中央經線,按照投影帶中央經線投影為直線且長度不變和赤道投影為直線的條件,将中央經線兩側一定經差範圍内的球面正形投影于圓柱面。然後将圓柱面沿過南北極的母線剪開展平,即獲高斯-克呂格投影平面。高斯—克呂格投影後,除中央經線和赤道為直線外,其他經線均為對稱于中央經線的曲線。高斯—克呂格投影沒有角度變形,在長度和面積上變形也很小,中央經線無變形,自中央經線向投影帶邊緣,變形逐漸增加,變形最大處在投影帶内赤道的兩端。按一定經差将地球橢球面劃分成若幹投影帶,這是高斯投影中限制長度變形的最有效方法。

分帶時既要控制長度變形使其不大于測圖誤差,又要使帶數不緻過多以減少換帶計算工作,據此原則将地球橢球面沿子午線劃分成經差相等的瓜瓣形地帶,以便分帶投影。通常按經差6度或3度分為六度帶或三度帶。六度帶自 0度子午線起每隔經差6度自西向東分帶,帶号依次編為第 1、2…60帶。三度帶是在六度帶的基礎上分成的,它的中央子午線與六度帶的中央子午線和分帶子午線重合,即自 1.5度子午線起每隔經差3度自西向東分帶,帶号依次編為三度帶第 1、2…120帶。我國的經度範圍西起 73°東至135°,可分成六度帶十一個,各帶中央經線依次為75°、81°、87°、……、117°、123°、129°、135°,或三度帶二十二個。

    我國大于等于50萬的大中比例尺地形圖多采用六度帶高斯—克呂格投影,三度帶高斯—克呂格投影多用于大比例尺1:1萬測圖,如城建坐标多采用三度帶的高斯—克呂格投影。高斯—克呂格投影按分帶方法各自進行投影,故各帶坐标成獨立系統。以中央經線(L0)投影為縱軸X, 赤道投影為橫軸Y,兩軸交點即為各帶的坐标原點。為了避免橫坐标出現負值,高斯—克呂格投影北半球投影中規定将坐标縱軸西移500公裡當作起始軸。由于高斯—克呂格投影每一個投影帶的坐标都是對本帶坐标原點的相對值,是以各帶的坐标完全相同,為了差別某一坐标系統屬于哪一帶,通常在橫軸坐标前加上帶号,如(4231898m,21655933m),其中21即為帶号。

    我們再來看看ArcGIS中對我們國家經常采用北京54和西安80坐标系統是怎麼樣描述的,在ArcMap或是ArcCatalog中選擇系統預定義的北京54和西安80坐标系統。

在${ArcGISHome}/Coordinate Systems/Coordinate Systems/Projected Coordinate Systems/Gauss Kruger/Beijing 1954目錄中,我們可以看到四種不同的命名方式:

Beijing 1954 3 Degree GK CM 75E.prj

    Beijing 1954 3 Degree GK Zone 25.prj

    Beijing 1954 GK Zone 13.prj

    Beijing 1954 GK Zone 13N.prj

對它們的說明分别如下:

三度分帶法的北京54坐标系,中央經線在東75度的分帶坐标,橫坐标前不加帶号

三度分帶法的北京54坐标系,中央經線在東75度的分帶坐标,橫坐标前加帶号

六度分帶法的北京54坐标系,分帶号為13,橫坐标前加帶号

六度分帶法的北京54坐标系,分帶号為13,橫坐标前不加帶号

在Coordinate Systems/Projected Coordinate Systems/Gauss Kruger/Xian 1980目錄中,檔案命名方式又有所變化:

Xian 1980 3 Degree GK CM 75E.prj

    Xian 1980 3 Degree GK Zone 25.prj

    Xian 1980 GK CM 75E.prj

    Xian 1980 GK Zone 13.prj

西安80坐标檔案的命名方式、含義和北京54前兩個坐标相同,但沒有出現“帶号+N”這種形式,為什麼沒有采用統一的命名方式?讓人看了的确有些費解,大家在應用過程中需要特别注意一下。

四、坐标系統和投影變換在桌面産品中的應用詳解

  在我們了解了坐标系統和投影的定義和其内在的聯系後,本文着重總結一下坐标系統和投影變換在桌面産品(版本9.2)中的應用(分ArcMap、ArcCatalog、ArcToolBox三大主要應用子產品)。

1、動态投影(ArcMap)

     所謂動态投影指:改變ArcMap中的Data Frame(工作區)的空間參考或是對後加入到ArcMap工作區中資料的投影變換。ArcMap的Data

Frame(工作區)的坐标系統預設為第一個加載到目前Data

Frame(工作區)的那個檔案的坐标系統,後加入的資料,如果和目前工作區坐标系統不同,則ArcMap會自動做投影變換,把後加入的資料投影變換到目前坐标系統下顯示,但此時資料檔案所存儲的實際資料坐标值并沒有改變,隻是顯示形态上的變化!是以叫動态投影。表現這一點最明顯的例子就是在Export Data時,使用者可以選擇是按this layer's source data(資料源的坐标系統導出),還是按照the Data Frame(目前工作區的坐标系統)導出資料。

可以非常明顯的看到ArcMap對WGS84資料做完動态投影後的資料幾何形态上的改變,并且此時從ArcMap右下角的狀态欄上也可以看到目前Data Frame(工作空間)的坐标系統為北京54平面投影坐标系統。

2、坐标系統描述(ArcCatalog)

大家都知道在ArcCatalog中可以給資料定義坐标系統描述!即在資料上滑鼠右鍵->Properties->XY Coordinate System頁籤,這裡可以通過New、Modify、Select、Import方式來為資料定義坐标系統描述。但有許多使用者都認為在這裡定義了資料的坐标系統資訊後,其資料本身就發生了投影變換。其實不然,這裡定義的資料坐标系統資訊都對應到與該資料同名而字尾名為.prj的檔案當中!如果把該檔案删除,在ArcCatalog中重新檢視(要在該資料的上層節點上Refresh重新整理一下)該檔案的坐标資訊時,一樣會顯示為Unknown,并且資料的坐标值并沒有發生實質上的投影變換,這裡改的僅僅是對資料坐标系統資訊的一個描述而已,這就好比我們每個人的基本資訊登記卡,更改了登記資訊,但并沒有改變你這個人本身。是以資料檔案中所存儲資料的坐标值并沒有真正的投影變換到你想要更改到的坐标系統下。

但對資料坐标系統的這個描述也是非常重要的,如果我們拿到一份資料,從ArcMap下所顯示的坐标來看,像是投影坐标系統下的平面坐标,但不知道是基于哪個橢球體的什麼投影方法,是以就無法再對資料做進一步的處理,如:投影變換、量測等操作。因為我們無法得知從什麼坐标系統下開始變換,以及該坐标系統下的量測機關是什麼。

是以大家一定要更正對ArcCatalog中資料屬性中關于坐标系統描述的認識。

3、投影變換(ArcToolBox)

上面說了這麼多,可能有人要問:“要真正的改變資料的坐标值該怎麼辦?”也就是做真正的投影變換。在ArcToolBox->Data Management Tools->Projections and Transformations中提供了如下工具:

      在這個工具集下有這麼幾個工具最為常用:

1、Define Projection

2、Feature->Project

3、Raster->Project Raster

4、Create Custom Geographic Transformation

當資料在沒有任何空間參考資訊時,在ArcCatalog的坐标系統描述(XY

Coordinate System)頁籤中會顯示為Unknown!這時如果要對資料進行投影變換就要先利用Define Projection工具來給資料定義一個Coordinate System,然後再利用Feature->Project或Raster->Project Raster工具來對資料進行投影變換!

由于我們國家經常使用的坐标系統為北京54和西安80。這兩個坐标系統變換到其他坐标系統下時,通常需要提供一個Geographic Transformation,因為不同投影所基于的橢球體及Datum不同!關鍵是Datum不同,也就是說當兩個投影基于不同的Datum時就需要制定參數做Geographic Transformation。這裡就用到我們前面所說的轉換3參數、轉換7參數了(三個平移參數ΔX、ΔY、ΔZ表示兩坐标原點的平移值;三個旋轉參數εx、εy、εz表示當地坐标系旋轉至與地心坐标系平行時,分别繞Xt、Yt、Zt的旋轉角;最後是比例校正因子,用于調整橢球大小),而我們國家的轉換參數是保密的,是以可以自己計算或在購買資料時向國家測繪部門索要。

實際工作中一般都根據工作區内已知的北京54坐标控制點計算轉換參數,如果工作區内有足夠多的已知北京54與WGS84坐标控制點,可直接計算坐标轉換所需的7參數或3參數;當工作區内有3個已知北京54與WGS84坐标控制點時,可用下式計算WGS84到北京54坐标的轉換參數(A、B、C、D、E、F):

x54 = AX84 + BY84 + C

y54 = DX84 + EY84 + F

多餘一點用作檢驗;在隻有一個已知控制點的情況下(往往如此),用已知點的北京54與WGS84坐标之差作為平移參數,當工作區範圍不大時精度也足夠了。

那麼當精度要求較高,實測資料為WGS1984坐标資料時,欲轉換到北京54基準面的高斯-克呂格投影坐标,如何定義坐标系參數呢?你可選擇WGS 1984作為基準面,當隻有一個已知控制點時,根據平移參數調整東僞偏移、北緯偏移值實作WGS84到北京54的轉換,此時的轉換系數(A、B、C、D、E、F)中A、B、D、E為0,隻有X、Y方向的平移值C、F ;當有3個已知控制點時,可利用得到的轉換系數(A、B、C、D、E、F)定義 AffineTransform坐标系變換對象,實作坐标系的轉換,當然有足夠多已知控制點時,直接求定7參數自定義基準面就行了。

Geographic Transformation通常需要指定變換方向的,如果沒有指定變換的方向,ArcMap會自動正确應用變換方法如從WGS 1984到 NAD1927,我們就可以選擇NAD_1927_to_WGS_1984_3這種變換方法,ArcMap會自動判定轉換方向進而正确實作資料的投影變換。有些變換方法是先把地理坐标系(經緯度)變換到地心坐标系(X Y Z),然後再将地心坐标系坐标(X Y Z),變換到地理坐标系統,圖13。Geocentric Transformation(3參數)、Coordinate Frame(7參數)、Molodensky-Badekas(10參數,是7參數變換方法的一種變體,多了定義XYZ旋轉軸的起始位置)都是這樣的方法。

Molodensky(3參數)和Abridged Molodensky(3參數是Molodensky方法的一種變體)變化方法則是直接在不同的地理坐标系統下進行變換無需借助地心坐标系進行轉換。那麼上述的這些方法的精度取決與用于定義轉換參數的控制點的品質個數及選擇的變換方法,精度相差可從厘米到米。

美國國家大地測量局用一種基于格網的變換方法(NADCON和HARN)在NAD1927和NAD1983及其他地理坐标系統下做變換,彼此相臨的州的精度可達0.15米,阿拉斯加州及周邊島嶼的精度可達0.5米,夏威夷地區精度可達0.2米等等,精度取決于計算栅格大小時測量資料的品質。随着衛星測距和測量技術的改善,美國在更新了測量控制網後,推出了這種High Accuracy Reference Network (HARN)方法或說是栅格格網,其精度可達0.05米。

加拿大采用同NADCON類似的基于格網的方法(NTV2)在NAD 1927 和 NAD 1983之間做變換,這種方法采用了雙線性内插的方法來計算點的坐标。關于這兩種方法本文不做更多描述,詳細資訊可參考ArcGIS幫助。

知道轉換參數後,可以利用Create Custom Geographic Transformation工具來定義一個Geographic Transformation方法,變換方法可以根據已知的轉換參數個數選擇變換方法,這就完成了對資料的投影變換,資料本身坐标值就發生了變化。當然這種投影變換工作也可以在ArcMap中通過改變Data Frame的Coordinate System來實作,隻是要在做完之後按照Data Frame的坐标系統導出資料即可,即為做“動态投影變換”。

相關的實驗可選用ArcTutor(ArcDesktop中的練習資料)中的WGS84和NAD1927或NAD1983資料進行試驗。

摘自:ESRI中國社群-GIS大講堂

繼續閱讀