各ジオメトリにカスタム処理を適用する
単一点に対して最寄りの国立公園を取得する方法がわかったので、これをすべての点に対して行いましょう。そのために、まず単一点を引数に取り、目的の結果を返す関数を書きます。次に、この関数を使って全ての点に適用します。
採掘サイト(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())