1. 程式人生 > >【ENVI入門系列】02.自定義座標系(北京54、西安80、2000座標系)

【ENVI入門系列】02.自定義座標系(北京54、西安80、2000座標系)

轉載自:http://blog.sina.com.cn/s/blog_764b1e9d0102v1gn.html

版權宣告:本教程涉及到的資料僅供練習使用,禁止用於商業用途。

目錄

1.    概述    

    1.1    地理投影的基本原理    

    1.2    國內座標系介紹    

    1.3    引數的獲取    

2.    詳細操作步驟    

    2.1    新增橢球體   

    2.2    新增基準面    

    2.3    定義座標系    

    2.4    使用自定義座標系    

3.    使用ArcGIS 國內座標系   

 

1. 概述 

1.1 地理投影的基本原理

        常用到的地圖座標系有2種,即地理座標系和投影座標系。

        地理座標系是以經緯度為單位的地球座標系統,地理座標系中有2個重要部分,即地球橢球體(spheroid)和大地基準面(datum)。由於地球表面的不規則性,它不能用數學公式來表達,也就無法實施運算,所以必須找一個形狀和大小都很接近地球的橢球體來代替地球,這個橢球體被稱為地球橢球體,我國常用的橢球體如下表所示。

表:我國常用橢球體

橢球體名稱

年代

長半軸(米)

短半軸(米)

扁率

WGS84

1984

6378137.0

6356752.3

1:298.257

克拉索夫斯基(Krasovsky)

1940

6378245.0

6356863.0

1:298.3

IAG-75

1975

6378140.0

6356755.3

1:298.257

CGCS2000(CRS80)

2008

6378137.0

6356752.3

1:298.257

 

        大地基準面指目前參考橢球與WGS84參考橢球間的相對位置關係(3個平移,3個旋轉,1個縮放),可以用其中3個、4個或者7個引數來描述它們之間的關係,每個橢球體都對應一個或多個大地基準面。

        投影座標系是利用一定的數學法則把地球表面上的經緯線網表示到平面上,屬於平面座標系。數學法則指的是投影型別,目前我國普遍採用的是高斯——克呂格投影,在英美國家稱為橫軸墨卡託投影(Transverse Mercator)。高斯克呂格投影的中央經線和赤道為互相垂直,分帶標準分為3度帶和6度帶。美國編制世界各地軍用地圖和地球資源衛星像片所採用的全球橫軸墨卡託投影(UTM)是橫軸墨卡託投影的一種變型。高斯克呂格投影的中央經線長度比等於1,UTM投影規定中央經線長度比為0.9996。

        我國規定1:1萬、1:2.5萬、1:5萬、1:10萬、1:25萬、1:50萬比例尺地形圖,均採用高斯克呂格投影。1:2.5萬至1:50萬比例尺地形圖採用經差6度分帶,1:1萬和1:2.5萬比例尺地形圖採用經差3度分帶。

 

1.2 國內座標系介紹

        先了解大地座標的概念。

大地座標,在地面上建立一系列相連線的三角形,量取一段精確的距離作為起算邊,在這個邊的兩端點,採用天文觀測的方法確定其點位(經度、緯度和方位角),用精密測角儀器測定各三角形的角值,根據起算邊的邊長和點位,就可以推算出其他各點的座標。這樣推算出的座標,稱為大地座標。

  我國1954年在北京設立了大地座標原點,由此計算出來的各大地控制點的座標,稱為1954年北京座標系。為了適應大地測量的發展,我國於1978年採用國際大地測量協會推薦的IAG-75地球橢球體建立了我國新的大地座標系,並在1986年宣佈在陝西省涇陽縣設立了新的大地座標原點,由此計算出來的各大地控制點座標,稱為1980年大地座標系。隨著社會的進步,國民經濟建設、國防建設和社會發展、科學研究等對國家大地座標系提出了新的要求,迫切需要採用原點位於地球質量中心的座標系統作為國家大地座標系。2000國家大地座標系(China Geodetic Coordinate System 2000,CGCS2000)是全球地心座標系在我國的具體體現,其原點為包括海洋和大氣的整個地球的質量中心,CGCS2000是我國當前最新的國家大地座標系。

        我們經常給影像投影時用到的北京54、西安80和2000座標系是投影直角座標系,如下表所示為國內座標系採用的主要引數。從中可以看到我們通常稱謂的北京54座標系、西安80座標系實際上指的是我國的大地基準面。

表:北京54、西安80和2000座標系引數列表

座標名稱

投影型別

橢球體

基準面

北京54

Gauss Kruger(Transverse Mercator)

Krasovsky

D_Beijing_1954

西安80

Gauss Kruger(Transverse Mercator)

IAG75

D_Xian_1980

CGCS2000

Gauss Kruger(Transverse Mercator)

CGCS2000

D_China_2000

 

1.3 引數的獲取

        對於地理座標,只需要確定兩個引數,即橢球體和大地基準面。對於投影座標,投影型別為Gauss Kruger(Transverse Mercator),除了確定橢球體和大地基準面外,還需要確定中央經線。

        大地基準面的確定關鍵是確定7個引數(或者其中幾個引數),北京54基準面可以用三個平移引數來確定,即"-12,-113,-41,0,0,0,0",很多軟體近似為Krasovsky(0,0,0,0,0,0,0)基準面;西安80的7引數比較特殊,各個區域不一樣。一般有兩個途徑:一是直接從測繪部門獲取;二是根據三個以上具有西安80座標系與其他座標系的同名點座標值,利用軟體來推算,有一些綠色軟體具有這個功能,如Coord MG。

        中央經線獲取可有以下兩種方法,第一種根據已知帶號計算,6度帶用6*N-3,3度帶用3*N;第二種方法是根據經度從下圖中查詢。

圖:高斯——克呂格投影的分帶

 

2. 詳細操作步驟

        ENVI中的座標定義檔案存放在安裝路徑下的map_proj資料夾內,在不同的ENVI版本中路徑稍有不同,分別為:

  • ENVI 4.x:HOME\ITT\IDLXX\products\envi4X\map_proj
  • ENVI 5.x:HOME\Exelis\ENVI5X\classic\map_proj

        在map_proj資料夾內有三個文字檔案記錄了座標資訊,分別為:

  • ellipse.txt        橢球體引數檔案
  • datum.txt        基準面引數檔案
  • map_proj.txt    座標系引數檔案

        在ENVI中自定義座標系分三步:定義橢球體、基準面和定義座標引數。

 

2.1 新增橢球體

        修改檔案為ellipse.txt,語法為 <橢球體名稱>,<長半軸>,<短半軸>。這裡的逗號為英文半形輸入狀態下的逗號,建議直接複製檔案中已有的橢球體進行修改。

        這裡將下面三行加在ellipse.txt檔案的末尾,儲存關閉即可。最終效果如下圖所示。

  • Krasovsky,6378245.0,6356863.0
  • Xian_1980,6378140.0,6356755.3       應該把  Xian_1980  改為  IAG75  
  • CGCS2000,6378137.0,6356752.3

        注:ellipse.txt檔案中已經有了克拉索夫斯基橢球,由於翻譯原因,這裡的英文名稱是Krassovsky,為了讓其他軟體平臺識別,這裡新建一個Krasovsky橢球體。

【ENVI入門系列】02.自定義座標系(北京54、西安80、2000座標系)

圖:定義橢球體

 

2.2 新增基準面

        修改檔案為datum.txt,語法為<基準面名稱>,<橢球體名稱>,<平移三引數>。

這裡將下面三行新增在datum.txt檔案末尾,儲存關閉即可。最終效果如下圖所示。

  • D_Beijing_1954, Krasovsky, -12, -113, -41
  • D_Xian_1980,IAG-75,0,0,0
  • D_China_2000,CGCS2000,0,0,0

        注:為了更好的與ArcGIS系列產品相容,從ENVI 4.7開始,所有產品包括 ENVI、ENVI+IDL、ENVI Zoom 和ENVI Ex,全部採用ArcGIS投影轉換引擎(ENVI4.7之前的版本用的是GCTP——常規制圖轉換包)。對使用者來說,ENVI選單中所有的投影操作不變,同時還直接支援ArcGIS中的投影型別。但是自定義座標系時有一些改變,需要基準面名稱、投影座標系名稱與ArcGIS完全一致即可,字母的大小寫也要相同。

圖:定義基準面

 

2.3 定義座標系

        在ENVI任何用到投影座標的功能模組中都可以新建座標系(在任何地圖投影選擇對話方塊中,點選"New"按鈕即可)。下面我們以ENVI Classic為例,新增一個北京54座標系,資訊如下:北京54座標系、帶號為20、中央經線117E、不新增帶號資訊。

        操作步驟如下:

  1. 開啟ENVI Classic,選擇Map > Customize Map Projection工具;
  2. 在彈出的Customized Map ProjectionDefinition對話方塊內填寫如圖所示引數,其中Projection Name保持與ArcGIS中的名稱一致;
  3. 選擇Projection > Add New Projection…,儲存投影座標系;
  4. 選擇File > Save Projections…,在彈出對話方塊中點選OK,將新建座標系儲存在map_proj.txt檔案內,以便下次啟動ENVI後依然可以使用。

        注:投影型別選擇Transverse Mercator,Scale factor填寫1,與Gauss-Kruger等同。False easting中如果把帶號,即20500000,得到的座標就帶有帶號。

圖:自定義北京54座標系引數設定

 

2.4 使用自定義座標系

        下面將利用自定義座標系將一副北京54座標系影象轉化為2000座標系。試驗的柵格資料是一幅北京54座標系的柵格資料,投影引數如下:

  • 投影型別:Transverse Mercator
  • 橢球:Krassovsky
  • 基準面:Krassovsky(D_Beijing_1954)
  • 中央經線:117E
  • 東向偏移:500000m

        由於資料的投影資訊不是國際標準或者說其引數名稱不是標準的,所以在ENVI中有可能不能讀取資料的投影資訊(如下圖-左),這個時候就需要重新設定投影資訊。定義投影步驟如下:

  1. 按照2.3節的步驟進行北京54座標系的自定義;
  2. 開啟檔案"…\資料\f49e011021.img",在Available Bands List中右鍵點選檔案列表下的Map Info,選擇Edit Map Information…;
  3. 在彈出的Edit Map Information對話方塊中點選Change Proj…按鈕,選擇新建好的北京54座標系,點選OK。ENVI將自動為f49e011021.img的標頭檔案中新增Map Info,識別結果如下圖-右所示。

 

圖:未能識別投影座標系(左),定義座標系後(右)

圖:定義輸入檔案的投影座標系

        下面介紹將北京54座標系轉換為2000座標系的步驟:

          1. 2.3節的步驟定義2000座標系,引數如下圖所示。

圖:自定義2000座標系引數

          2. 投影轉換,選擇Map > Convert Map Projection工具,選擇輸入檔案f49e011021.img(已經定義為北京54座標系),點選OK;

          3. 出的Convert Map Projection Parameters對話方塊中點選Change Proj…按鈕,選擇新建的2000座標系,點選OK;

          4. onvert Map Projection Parameters面板右側修改轉換引數(如下圖所示),選擇輸出路徑,點選OK即可。

          5. 投換結果如圖所示。

圖:投影轉換引數設定

圖:投影轉換結果

 

3. 使用ArcGIS 國內座標系

        通過以上操作可以看出,雖然在ENVI中自定義座標系非常方便,但是由於每一個座標系均存在3度和6度分帶,並且分帶較多,如果逐個定義也是非常繁瑣的。為了讓使用者更加方便使國內座標系,我們定義好了國內座標系檔案,只要替換三個txt檔案並重啟ENVI即可使用所有分帶的國內座標系。

        檔案路徑為"…\02.自定義座標系(北京54、西安80、2000座標系)\資料\國內座標系檔案"。

圖:國內座標系