- ポイント内の地物の数をカウントする方法:
import geopandas as gpd
from shapely.geometry import Point
# ポイントデータの作成
points = gpd.GeoDataFrame(geometry=[Point(0, 0), Point(1, 1), Point(2, 2)])
# カウントする地物のデータセットを読み込む
polygons = gpd.read_file('polygons.shp')
# ポイント内の地物の数をカウントする
count = gpd.sjoin(points, polygons, op='within').groupby('index_right').size()
print(count)
- ポリゴン内の地物の数をカウントする方法:
import geopandas as gpd
# ポリゴンデータの作成
polygons = gpd.GeoDataFrame(geometry=[Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]), Polygon([(1, 1), (1, 2), (2, 2), (2, 1)])])
# カウントする地物のデータセットを読み込む
points = gpd.read_file('points.shp')
# ポリゴン内の地物の数をカウントする
count = gpd.sjoin(points, polygons, op='within').groupby('index_right').size()
print(count)
- バッファ内の地物の数をカウントする方法:
import geopandas as gpd
from shapely.geometry import Point
# ポイントデータの作成
points = gpd.GeoDataFrame(geometry=[Point(0, 0), Point(1, 1), Point(2, 2)])
# カウントする地物のデータセットを読み込む
polygons = gpd.read_file('polygons.shp')
# バッファを作成する
buffered_polygons = polygons.buffer(1)
# バッファ内の地物の数をカウントする
count = gpd.sjoin(points, buffered_polygons, op='within').groupby('index_right').size()
print(count)
これらの例では、ポイントやポリゴンのデータセットを読み込み、Geopandasのgpd.sjoin()
関数を使用して空間的なカウントを行っています。op
パラメータを使用して、カウントする地物との関係性(within
やintersects
など)を指定します。結果は、カウントした地物のIDとカウント数のペアとして表示されます。
これらのコード例を使用することで、Geopandasを活用して地理データセット内の地物をカウントすることができます。