1. 程式人生 > 其它 >第十屆全國大學生 GIS 應用技能大賽試題及參考解題過程(A上午)

第十屆全國大學生 GIS 應用技能大賽試題及參考解題過程(A上午)

無摘要

本次操作使用的ArcGIS版本為 10.8 。

第Ⅰ部分:試題

一、 案例背景

我們需要製作一幅國際航線圖,圖上需要繪製全球大陸、中國、飛機航線和對應的飛機場。地圖使用的座標系是 World_Winkel_Tripel_NGS,中央經線東經 150° 。

二、 資料說明(見 “上午A” 資料夾中的 “資料” 資料夾)

  1. 世界大洲.shp:世界大洲面數據。
  2. 世界地圖.jpg:一張座標系是WGS1984,中央經線是東經 150° 的世界地圖。
  3. 國際航班表.xls:需要在地圖上展示的飛機航線資訊表。
  4. 機場 ICAO 碼.xls:機場 ICAO 碼資訊表。
  5. 世界機場部分.shp:全球部分機場點資料。

三、 分析要求(100分)

  1. 使世界地圖有正確的座標值和座標系(20分)

    1)世界地圖.jpg 的座標系是 WGS1984,中央經線是東經 150° 。
    2)請建立一份正確的世界地圖資料,命名為 “世界地圖配準” 。
    地理配準時請在世界地圖.jpg的原座標系下進行,正確位置資訊參考世界大洲.shp 。
    3)請在工作報告文件中截圖附上步驟中涉及到的座標系資訊,否則不予得分。

  2. 數字化中國地圖資料(30分)

    為了達到下圖的效果,請參考上一步的世界地圖配準資料結果,數字化所有缺失的中國資料。

  3. 建立飛機航線線資料和機場點資料(30分)

    1)建立國際航班表中的所有航線資訊線資料,命名為 “國際航線” 。
    2)建立上一步航線中涉及到的所有機場點資料,命名為 “機場資料” 。請在工作文件報告中截圖附上機場資料的屬性表截圖,截圖中要求能看到機場中文名稱欄位和機場數量資訊。每個機場只用一個點表示,請勿重複。

  4. 製作國際航線地圖(20分)

    1)地圖的背景請參考下圖樣式:
    a)為了完成下圖樣式,根據需要建立缺失的資料。
    b)深藍色輪廓線 RGB:42,176,239。
    c)淺藍色背景色 RGB:224,242,252。
    d)黑色輪廓線 RGB:88,88,88。
    e)座標系為 World_Winkel_Tripel_NGS,中央經線為東經 150° 。

    地圖背景參考圖 2)國際航線資料和機場點資料,請自己選擇合適的符號。 3)不需要排版出圖(無需新增指北針、經緯網、圖名、圖例等資訊),請在工作文件報告中截圖附上最終制圖成果。

第Ⅱ部分:參考解題過程

一、 配置預設地理處理環境

在 “結果” 資料夾下新建檔案地理資料庫 “am.gdb” ,並右鍵設為預設地理資料庫。

圖1 配置預設地理處理環境

二、 匯入資料並檢視座標系

從【目錄】中拖入 “世界大洲.shp”、“世界機場部分.shp” 和 “世界地圖.jpg” 三個圖層,發現世界機場部分點資料的座標系為 WGS1984 ,世界大洲面數據的座標系為 WGS 1984 Web Mercator Auxiliary Sphere ,世界地圖的座標系為 Unknown 。且資料框的投影座標系自動與世界大洲的投影座標系保持一致。

圖2 匯入資料 圖3 世界地圖柵格圖片

三、 地圖配準

  1. 更改資料框的投影座標系

從上一步我們可以發現世界大洲和世界地圖的中央經線不一致,所以看起來左右半球剛好相反。為進行地理配準,需要將世界大洲投影成與世界地圖相同的形狀,這一步可以通過更改中央經線完成。

右鍵【圖層】,選擇【屬性】,開啟【座標系】選項卡,選擇 GCS_WGS_1984 地理座標系並雙擊進入引數設定介面如下圖 4 所示,更改座標系名稱為 “GCS_WGS_1984_150” ,並將本初子午線的名稱設定為 “<自定義>” ,經度為 150° 。

圖4 更改資料框的投影座標系

之後,開啟地理配準工具條並開始地理配準。

圖5 地理配準開始前準備
  1. 地理配準並校正

首先開啟連結表,關閉【自動校正】,然後建立連結對,根據題目要求將連結對資料儲存為 “RMS.txt” 。

圖6 儲存地圖配準連結資料

設定配準方法為【校正】,並在地圖配準工具條下拉選擇【校正】而不是【更新地理配準】,這樣做的好處是可以保留原始世界地圖資料,並建立新的 "世界地圖配準.tif" 。

圖7 校正

下圖 8 為地理配準效果。檢視校正結果的座標系,可以發現校正結果被自動賦上一個座標系,並且與資料框的座標系相同。

圖8 地理配準效果 圖9 世界地圖配準的座標系與資料框座標系一致且自動生成

四、 數字化缺失的中國資料

數字化這一步相對比較容易,首先在檔案地理資料庫 “am.gdb” 下新建要素資料集 “China”,要素資料集 China 的座標系設定為 GCS_WGS_1984,其餘設定可以保持預設。然後在要素資料集下面新建要素類 “Border” 和 “Nine_line” ,然後以 "世界地圖配準" 為參照進行向量化。

圖10 新建 China 要素資料集和 2 個要素類 圖11 數字化缺失的中國資料

五、獲取國際航線與機場資料

首先描述這一步的大致思路,第一需要將 EXCEL 表格匯入成屬性表,然後依據 ICAO 欄位將 “世界機場部分” 與 "ICAO碼" 進行連接獲取機場的中文名稱。 第二步是要依據機場中文名稱獲取 ”國際航班表“ 中每一條航線的起點和終點的 XY 座標。第三步即根據 ”XY轉線“ 工具獲取國際航線,最後獲取相關機場資料。

  1. 獲取機場中文名稱

開啟【ArcToolBox】|【轉換工具】|【Excel】|【Excel轉表】工具,將 ”國際航班表“ 和 ”機場ICAO碼“ 匯入到檔案地理資料庫 "am.gdb" 中。

圖12 匯入Excel表格

開啟 "世界機場部分" 的屬性表,新增 “中文名” 欄位,型別設定為文字。初始化為空值。

圖13 在世界機場部分新增機場中文名欄位

連線 “世界機場部分” 與 “機場ICAO碼” 。

圖14 連線欄位為 ICAO

再次開啟 “世界機場部分” 屬性表,可以看到後邊新增了幾列。右鍵 “中文名”,選擇欄位計算器來獲取 “世界機場部分.中文名”,該步驟截圖如下所示:

圖15 獲取機場中文名稱

至此,機場的中文名稱已經獲取完畢,可以取消連線。

  1. 獲取航線起點與終點的 XY 座標

第一步,獲取世界機場部分的 XY 座標:開啟【ArcToolBox】|【資料管理工具】|【要素】|【新增XY座標】工具,輸入為世界機場部分,操作結果如圖 16 所示,最後兩列分別為 "POINT_X" 和 “POINT_Y” 欄位。

圖16 獲取機場的 XY 座標

第二步之前已經獲取每一個機場的座標,接著在第二步中需要獲取每一條航線的起點和終點的座標。可以想到,這裡需要進行 2 次連線,但是在 ArcGIS 中兩個屬性表無法同時建立 2 個連線。那怎麼辦呢?方法就是先將需要的欄位提前在 “國際航班表” 中建立好,然後進行第 1 次連線,接著使用欄位計算器進行賦值。第 2 次連線之前取消上一步的連線,然後重複上一步的操作,這也算是一個小技巧。

第二步,在國際航班表中新增 4 個欄位,型別為雙精度,欄位名稱如下圖所示:

圖17 國際航班表新增起點和終點的 XY 座標共 4 個空白欄位

將 “國際航班表” 的 “出發城市與機場” 與 “世界機場部分” 的中文名進行第 1 次連線,然後使用欄位計算器對上圖中的 “起點POINT_X” 和 “起點POINT_Y” 進行賦值。取消第 1 次連線,然後將 “國際航班表” 的 “目的地城市與機場” 與 "世界機場部分" 的中文名進行第 2 次連線,使用欄位計算器對 “終點POINT_X” 和 “終點POINT_Y” 進行賦值。

圖18、19 國際航班表與世界機場部分進行的 2 次連線

最後,檢視國際航班表:

圖20 欄位計算器獲得起點終點座標
  1. 獲取國際航線

上一步中,已經知道每一條航線的起點與終點的 XY 座標,可以依據此進行 XY 轉線以獲取國際航線。開啟【ArcToolBox】|【資料管理工具】|【要素】|【XY轉線】,詳細設定介面如下所示:

圖21 XY 轉航線

大家也可以嘗試一下,如果空間參考選擇為 GCS_WGS_1984_150 ,XY轉線的結果也即國際航線會是什麼樣子,具體這裡為什麼選擇 GCS_WGS_1984 ,歡迎看到這裡的小夥伴一起來交流!

  1. 獲取機場資料

思考一下,相關機場的特徵是什麼?其實相關機場就是國際航線的端點,而在 ArcGIS 的【按位置選擇】中,可以通過 “接觸源圖層要素的邊界” 來對世界機場部分進行篩選,然而不幸的是,ArcGIS Desktop 10.8 這個版本在使用這個工具時會出現錯誤並且強制退出。最終我用 “與源圖層要素相交” 這一空間選擇方法作為替代,來篩選機場資料,實際效果也是完全一致。

圖22 按位置選擇相關機場

右鍵 “世界機場部分” ,選擇【匯出資料】,將所選要素匯出到檔案地理資料庫 “am.gdb” 中,命名為 “機場資料”。其屬性表如下所示,可見機場中文名稱,並且機場數量為 89 。

圖23 機場資料

六、 製作地圖背景併成圖

  1. 繪製矩形背景

新建要素資料集 “World”,其座標系仍然為 GCS_WGS_1984,然後將 “世界大洲.shp” 匯入到要素資料集當中,然後新建要素類 “Background” ,開啟【編輯器】,設定編輯物件為 “Background”,然後以 “世界地圖配準” 的 4 個頂點為參照繪製出一個矩形。

圖24 在 GCS_WGS_1984_150 資料框座標系下建立矩形背景

建立矩形背景之後,無法確定左右邊界是否準確,因此需要更改中央經線,然後對背景進行修理,使縫隙或重疊完全消失。

  1. 更改中央經線並編輯折點

儲存編輯結果並停止編輯,右鍵【圖層】,將資料框的座標系更改為 GCS_WGS_1984。開始編輯 “Background”,點選編輯器下拉按鈕,開啟【捕捉】。選中編輯器的【選擇】按鈕,選中Background,右鍵點選【編輯折點】,

圖26 開啟編輯折點 圖27 移動折點使其完全對準

當背景圖層完全密合後,儲存編輯結果並退出編輯。將資料框的座標系更改回 GCS_WGS_1984_150 。右鍵圖層設定符號形狀及大小,國際航線地圖的簡單線性投影如下。

圖28 飛機航線地圖
  1. 更改資料框座標系

右鍵【圖層】,更改資料框座標系為 Winkel Tripel (NGS - World),雙擊該座標系以修改 Central_Meridian 為東經 150° 。

圖29 修改資料框座標系

國際航線地圖如下:

圖30 國際航線地圖

結尾:參賽收穫及資料下載地址

這道題目一直在使用的座標系 GCS_WGS_1984 其實只是地理座標系,那麼,為什麼它不是投影座標系卻可以顯示在平面上呢?通過搜尋,我後來才明白 ArcGIS 使用一種簡單的普通線性投影 WGS_1984_Plate_Carree 來作為地理座標系 GCS_WGS_1984 的投影方法,所以這裡使用到的 GCS_WGS_1984 都改成 WGS_1984_Plate_Carree 也是可行的,甚至要更可靠一些。

我當時在參加比賽的過程沒能和隊友完成這一道題目,現在來看原因主要是地圖投影。當我們準備地圖配準時,看到世界大洲和世界地圖的左右半球剛好相反,於是我一下就懵了。地圖投影對地理資料的處理真的是太關鍵了,沒有正確的座標系,後邊的座標計算都是白搭。此外,修改中央經線這樣的騷操作也是我一開始沒有想到的。不過,比賽結束之後重新完成這道題目給我帶來了更大的收穫。

資料下載地址(提取密碼:zy65)

參考資料:
GIS地圖投影的幾分感想
第十屆全國大學生GIS應用技能大賽上午(試題及參考答案)