1. 程式人生 > 實用技巧 >kaggle地理空間分析-coordinate reference system(座標參考系統)<ii>

kaggle地理空間分析-coordinate reference system(座標參考系統)<ii>

介紹

您在本課程中建立的地圖以二維方式描繪了地球表面。但是,正如您所知,世界實際上是三維地球。因此,我們必須使用一種稱為地圖投影的方法將其渲染為平坦表面。

地圖投影不能100%準確。每個投影都會以某種方式扭曲地球表面,同時保留一些有用的屬性。例如,

  • 等面積投影(例如“蘭伯特圓柱等分面積”或“非洲阿爾伯斯等分圓錐”)可保留面積。例如,如果您想計算一個國家或城市的面積,這是一個不錯的選擇。

  • 等距投影(例如“方位角等距投影”)保留距離。這將是計算飛行距離的好選擇。

我們使用座標參考系統(CRS)來顯示投影點如何對應於地球上的真實位置。在本教程中,您將瞭解有關座標參考系統的更多資訊,以及如何在GeoPandas中使用它們。

import geopandas as gpd
import pandas as pd

設定CRS

當我們從shapefile建立GeoDataFrame時,已經為我們匯入了CRS。

# Load a GeoDataFrame containing regions in Ghana
regions = gpd.read_file("../input/geospatial-learn-course-data/ghana/ghana/Regions/Map_of_Regions_in_Ghana.shp")
print(regions.crs)
{'init': 'epsg:32630'}

您如何解釋?

座標參考系統由歐洲石油測量集團(EPSG)程式碼參考。

此GeoDataFrame使用EPSG 32630,通常更稱為“墨卡託”投影。 該投影保留了角度(使其對於海上航行很有用)並且使區域略微變形。

但是,從CSV檔案建立GeoDataFrame時,必須設定CRS。 EPSG 4326對應於緯度和經度的座標。

# Create a DataFrame with health facilities in Ghana
facilities_df = pd.read_csv("../input/geospatial-learn-course-data/ghana/ghana/health_facilities.csv")

# Convert the DataFrame to a GeoDataFrame
facilities = gpd.GeoDataFrame(facilities_df, geometry=gpd.points_from_xy(facilities_df.Longitude, facilities_df.Latitude))

# Set the coordinate reference system (CRS) to EPSG 4326
facilities.crs = {'init': 'epsg:4326'}

# View the first five rows of the GeoDataFrame
facilities.head()

在上面的程式碼單元中,要從CSV檔案建立GeoDataFrame,我們需要同時使用Pandas和GeoPandas:

  • 我們首先建立一個DataFrame,其中包含具有經度和緯度座標的列。
  • 要將其轉換為GeoDataFrame,我們使用gpd.GeoDataFrame()。
  • gpd.points_from_xy()函式從緯度和經度列建立Point物件。