ジオパンダをテストして、非常に単純なものにしています:円内にあるジオデータフレームのポイントを削除するにはt he difference methodを使います。ジオパンダス:ポリゴンとポイントの違い()メソッド
ここに私のスクリプトの初めです:
%matplotlib inline
# previous line is because I used ipynb
import pandas as pd
import geopandas as gp
from shapely.geometry import Point
[...]
points_df = gp.GeoDataFrame(csv_file, crs=None, geometry=geometry)
はここpoints_dfの最初の行です:
:次にName Adress geometry
0 place1 street1 POINT (6.182674 48.694416)
1 place2 street2 POINT (6.177306 48.689889)
2 place3 street3 POINT (6.18 48.69600000000001)
3 place4 street4 POINT (6.1819 48.6938)
4 place5 street5 POINT (6.175694 48.690833)
、私が最初にGeoDFのいくつかのポイントが含まれていますポイントを追加
base = points_df.plot(marker='o', color='red', markersize=5)
center_coord = [Point(6.18, 48.689900)]
center = gp.GeoDataFrame(crs=None, geometry=center_coord)
center.plot(ax=base, color = 'blue',markersize=5)
circle = center.buffer(0.015)
circle.plot(ax=base, color = 'green')
ここにiPythonノートブックによって表示される結果を示します。
ここで、目標は緑色の円の中の赤い点を削除することです。そうするためには、違いの方法で十分だと思いました。しかし、私は書くとき:
が、私は違い()メソッドは、ポリゴンのGeoDataFramesでのみ動作することを推測し、ミックスの間:
selection = points_df['geometry'].difference(circle)
selection.plot(color = 'green', markersize=5)
結果は何もpoints_dfで変更しないということです...ポイントとポリゴンはポーズできません。しかし、多分私は何かを逃した!
円内の点の存在をテストする関数は、この場合の差分方法よりも優れていますか?
は再び;-)をschlumpありがとうございます!私のマシンにrtreeをインストールする際に問題がありますが、あなたの答えが良いので、私はそれを検証します:-) – Raphadasilva
ありがとう:) Yeha私もジオパンダをすべてのものでスムーズに動かすために若干の問題がありました... – schlump