Áp dụng phép toán tùy chỉnh cho từng hình học
Giờ bạn đã biết cách tìm vườn quốc gia gần nhất cho một điểm đơn lẻ, hãy làm điều này cho tất cả các điểm. Đầu tiên, chúng ta sẽ viết một hàm nhận một điểm làm đối số và trả về kết quả mong muốn. Sau đó có thể dùng hàm này để áp dụng cho mọi điểm.
Các tập dữ liệu về điểm khai thác mỏ (mining_sites) và vườn quốc gia (national_parks) đã được nạp. Điểm mỏ đơn lẻ từ các bài trước đã được định nghĩa là single_mine.
Bài tập này là một phần của khóa học
Làm việc với Dữ liệu Không gian địa lý trong Python
Hướng dẫn bài tập
- Tạo hàm
closest_national_park()thực hiện phân tích bạn đã làm ở bài trước: với một điểm và toàn bộ các vườn quốc gia, trả về tên vườn quốc gia gần nhất. - Để kiểm tra, gọi hàm này với điểm đơn lẻ (
single_mine) và in kết quả. Có giống như trước ("Virunga National park") không? - Áp dụng hàm này cho tất cả các điểm trong
mining_sitesvà gán kết quả vào một cột tên'closest_park'.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Define a function that returns the closest national park
def closest_national_park(geom, national_parks):
dist = ____
idx = ____
closest_park = ____
return closest_park
# Call the function on single_mine
print(closest_national_park(____, ____))
# Apply the function to all mining sites
mining_sites['closest_park'] = mining_sites.geometry.____(____, ____=____)
print(mining_sites.head())