การ Project จุดพิกัด
ในบทที่แล้ว เราทำงานกับตำแหน่งของหอไอเฟล โดยให้พิกัดในระบบพิกัด Projected มาให้ เพื่อให้สามารถคำนวณระยะทางได้ คราวนี้มาดูสถานที่สำคัญนี้อีกครั้ง โดยแสดงตำแหน่งในรูปแบบพิกัดทางภูมิศาสตร์ได้แก่ 48°51′29.6″N, 2°17′40.2″E หรือในรูปแบบทศนิยม คือ ละติจูด 48.8584 และลองจิจูด 2.2945
ออบเจกต์ Geometry ของ Shapely ไม่มีข้อมูล CRS ในตัว จึงไม่สามารถแปลงไปยัง CRS อื่นได้โดยตรง ดังนั้น เราจะใช้ GeoPandas ในการแปลงตำแหน่งของหอไอเฟลไปยัง CRS อื่น โดยนำ Point เดียวใส่ใน GeoSeries จากนั้นใช้เมธอด to_crs() แล้วดึง Point กลับออกมา
นำเข้า GeoPandas ไว้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำงานกับข้อมูลเชิงพื้นที่ใน Python
คำแนะนำการฝึกหัด
- สร้าง Point object ของ Shapely ด้วยพิกัดของหอไอเฟล และกำหนดให้กับตัวแปรชื่อ
eiffel_tower - สร้าง GeoSeries (ชื่อ
s_eiffel_tower) โดยมีหอไอเฟลเป็นสมาชิกเดียว และระบุ CRS เป็น EPSG:4326 - แปลง
s_eiffel_towerไปยัง EPSG:2154 และเก็บผลลัพธ์ไว้ในตัวแปรชื่อs_eiffel_tower_projected
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Construct a Point object for the Eiffel Tower
from shapely.geometry import Point
eiffel_tower = ____
# Put the point in a GeoSeries with the correct CRS
s_eiffel_tower = geopandas.GeoSeries([____], crs={'init': '____'})
# Convert to other CRS
s_eiffel_tower_projected = s_eiffel_tower.____
# Print the projected point
print(s_eiffel_tower_projected)