ArcGIS 航線 OD 圖制作教程
今天我將和大家分享一下通過 ArcGIS 制作航線 OD 圖的方法,文章內容包括數據預處理、地圖制圖及資源分享三部分,所需數據包括 機場數據 及 航班數據。
1 數據預處理
在獲取到數據后需要對其進行整理,提取出各航線起點及終點對應的經緯度坐標。這部分操作可通過編寫 Python 代碼完成,示例代碼如下:
# 導入所需模塊
import pandas as pd
import openpyxl
# 獲取機場及航班數據
airports = pd.read_csv("data/airports.csv")
flights = pd.read_csv("data/flights.csv")
# 由于數據量較大,只選取airline列值為"AA"的航班數據
fsub = flights[flights["airline"] == "AA"]
# 重置航班數據表的行索引,使其從零開始順序排序,以便于后續數據處理
# 代碼參考:https://blog.csdn.net/weixin_51098806/article/details/115265573
fsub = fsub.reset_index(drop=True)
air12_id_list = list() # 起始點列表,數據格式:"起點 - 終點"
air1_lon_list, air1_lat_list = list(), list() # 起點經緯度
air2_lon_list, air2_lat_list = list(), list() # 終點經緯度
# 對航班數據進行迭代,以提取各航班的起點與終點坐標
for i in range(len(fsub)):
fsub_i = fsub.loc[i] # 獲取航班表里的第i行數據
# 獲取航班起點及終點的機場數據
air1 = airports[airports["iata"] == fsub_i["airport1"]]
air2 = airports[airports["iata"] == fsub_i["airport2"]]
# 將獲取到的機場數據導入對應列表中
air1_id, air2_id = fsub_i["airport1"], fsub_i["airport2"]
air12_id_list.append(f"{air1_id} - {air2_id}")
air1_lon_list.append(float(air1["long"]))
air1_lat_list.append(float(air1["lat"]))
air2_lon_list.append(float(air2["long"]))
air2_lat_list.append(float(air2["lat"]))
# 將上方的列表合并后導出為Excel格式
data = {"air12_id": air12_id_list,
"air1_lon": air1_lon_list,
"air1_lat": air1_lat_list,
"air2_lon": air2_lon_list,
"air2_lat": air2_lat_list}
df = pd.DataFrame(data)
# 輸出Excel數據
# 輸出時須確保輸出路徑準確無誤,如果輸出到了一個不存在的文件夾,運行時就會出現報錯
# 如果輸出數據表本就存在于輸出文件夾中,則會直接覆蓋源文件,但覆蓋過程需要源文件保持關閉狀態
df.to_excel("data/data_AA.xlsx")
print("輸出成功!")
整理后的部分 Excel 表如下圖所示:

注:輸出表格的字體、行高及列寬等格式有所調整。
2 地圖制圖
2.1 導入數據
以世界陸地數據作為底圖。
由于先前整理輸出的是 xlsx 格式表格,無法直接被 ArcGIS 讀取,故需將其轉換為 xls 格式后再導入 ArcGIS 中或者通過 ArcGIS 的【Excel 轉表】(ArcToolbox:Conversion Tools/Excel/Excel to Table)工具將其轉換為 ArcGIS 可正常讀取的表格文件。
注:通過【Excel 轉表】工具轉換時建議將結果表保存到地理數據庫中,工具參數設置如下圖所示:

2.2 XY 轉線
通過 ArcGIS 的【XY 轉線】(ArcToolbox:Data Management Tools/Features/XY to Line)工具基于起點及終點的 XY 值生成航線數據,參數設置如下圖所示:

生成的航線圖如下圖所示:

2.3 地圖修飾
可看出這些航線均位于美國及夏威夷等地,在此之后還可以通過數據表右鍵菜單中的【顯示 XY 數據】(Display XY Data)展示起點及終點的位置。注意此時生成的位置點數據僅為臨時文件,如需永久保存這些位置點還需另外將數據點導出為矢量點數據。對所有數據進行符號化后結果如下圖所示:

在布局視圖中調整頁面大小及方向,添加指北針、比例尺等地圖布局要素,也可以適當調整地圖的底色及投影方式等內容,在所有參數設置完成后導出地圖,結果如下圖所示:

3 資源分享
百度網盤鏈接:
鏈接:https://pan.baidu.com/s/1r410-IlTUB64X5zi9DLuKQ
提取碼:ggua
注:分享的壓縮包里包含本文相關的所有數據。
浙公網安備 33010602011771號