ร้านอาหารที่ใกล้ที่สุดอยู่ห่างแค่ไหน?
ตอนนี้เราอาจสนใจร้านอาหารที่อยู่ใกล้หอไอเฟล มาลองแสดงภาพตำแหน่งของหอไอเฟลพร้อมกับร้านอาหารที่อยู่ภายในระยะ 1 กม. กัน
เราสามารถคำนวณระยะทางจากหอไอเฟลไปยังร้านอาหารแต่ละแห่งได้ จากนั้นนำผลลัพธ์มาสร้าง mask โดยกำหนดให้เป็น True หากร้านอาหารอยู่ภายใน 1 กม. และ False ในกรณีอื่น แล้วใช้ mask นี้กรองข้อมูลใน GeoDataFrame ของร้านอาหาร สุดท้ายเราจะสร้างการแสดงภาพของข้อมูลกลุ่มย่อยนี้
โหลด GeoDataFrame restaurants และสร้างออบเจกต์ eiffel_tower ไว้แล้ว รวมถึง import matplotlib, GeoPandas และ contextily เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำงานกับข้อมูลเชิงพื้นที่ใน Python
คำแนะนำการฝึกหัด
- คำนวณระยะทางจากหอไอเฟลไปยังร้านอาหารแต่ละแห่ง แล้วเก็บผลลัพธ์ไว้ในตัวแปร
dist_eiffel - แสดงระยะทางไปยังร้านอาหารที่ใกล้ที่สุด (ซึ่งก็คือค่าต่ำสุดของ
dist_eiffel) - เลือกแถวใน GeoDataFrame
restaurantsที่มีระยะทางถึงหอไอเฟลน้อยกว่า 1 กม. (โปรดทราบว่าระยะทางมีหน่วยเป็นเมตร)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# The distance from each restaurant to the Eiffel Tower
dist_eiffel = ____
# The distance to the closest restaurant
print(dist_eiffel.____)
# Filter the restaurants for closer than 1 km
restaurants_eiffel = ____
# Make a plot of the close-by restaurants
ax = restaurants_eiffel.plot()
geopandas.GeoSeries([eiffel_tower]).plot(ax=ax, color='red')
contextily.add_basemap(ax)
ax.set_axis_off()
plt.show()