对每个几何体应用自定义操作
现在我们已经知道如何为单个点获取最近的国家公园了,接下来把它应用到所有点上。为此,先编写一个函数,传入单个点作为参数并返回所需结果。然后把这个函数应用到所有点。
采矿点数据集(mining_sites)和国家公园数据集(national_parks)已经加载完毕。前面练习中的单个采矿点已定义为 single_mine。
本练习是课程的一部分
在 Python 中处理地理空间数据
练习说明
- 编写函数
closest_national_park(),执行与上一个练习相同的分析:给定单个点和所有国家公园,返回最近国家公园的名称。 - 作为测试,对单个点(
single_mine)调用此函数并打印结果。是否与之前相同("Virunga National park")? - 将此函数应用到
mining_sites的所有点上,并将结果保存到名为'closest_park'的列中。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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())