geospatial-analysis について
geospatial-analysis は、ラスターデータとベクターデータを扱う再現可能なワークフローを構築するためのエージェントスキルです。衛星画像、GeoPandas による処理、空間統計、地図作成を扱い、座標参照系と空間的関係の適切な処理を重視します。
主な機能
- 01Sentinel や Landsat の画像処理
- 02GeoPandas によるベクター操作
- 03空間統計の計算
- 04ラスターデータとベクターデータの統合
- 05地図出力の作成
活用シーン
- 01土地利用・土地被覆の変化分析
- 02都市ヒートアイランドの分析
- 03空間結合、バッファ、オーバーレイの実行
- 04出版品質の地図作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ itallstartedwithaidea/ agent-skills --skill geospatial-analysisインストール後、Claude Code で/geospatial-analysisを入力して読み込まれたか確認します。
詳細
地理空間解析
googleadsagent.ai™ による Agent Skills™ の一部です
説明
地理空間解析では、衛星画像処理、GeoPandas を使用した GIS 操作、空間統計、地球観測データ解析のワークフローを提供します。エージェントは、生の空間データを実用的な地理情報へと変換する、再現可能な地理空間パイプラインを構築します。ラスター処理からベクター操作、出版品質の地図作成まで対応します。
地理空間データは、表形式データとは根本的に異なります。遵守すべき座標参照系があり、統計的独立性に影響する空間的関係があり、解像度によって変化するスケール依存のパターンがあります。このスキルには、CRS 変換、空間結合、バッファー操作、ラスターとベクターの相互運用性、空間自己相関検定など、こうした課題に正しく対処するための専門知識が組み込まれています。
このスキルは、衛星画像解析(Sentinel、Landsat)とベクターデータ処理(シェープファイル、GeoJSON)を統合し、マルチスペクトル画像からの土地利用分類、熱赤外バンドを用いた都市ヒートアイランド解析、時系列画像スタックからの環境変化検出などのワークフローを可能にします。
使用する場面
- 衛星画像(Sentinel-2、Landsat、MODIS)を処理する
- 空間結合、バッファー、オーバーレイ操作を実行する
- 空間統計(Moran's I、ホットスポット分析)を計算する
- 出版品質の地図や地図製作物を作成する
- 土地利用、土地被覆、環境変化を分析する
- 座標参照系や投影法を扱う
動作の仕組み
graph TD
A[Spatial Data Input] --> B{Data Type}
B -->|Raster| C[Satellite Imagery Processing]
B -->|Vector| D[GeoPandas Operations]
C --> E[Band Math + Indices: NDVI, NDWI]
E --> F[Classification / Change Detection]
D --> G[Spatial Joins + Overlay]
G --> H[Spatial Statistics]
F --> I[Raster-Vector Integration]
H --> I
I --> J[Cartographic Output]
J --> K[Publication Map]
ラスターとベクターの処理経路は統合ステップで合流します。ここでは、分類済みの画像と行政界、点観測データ、またはインフラデータを組み合わせて、最終的な分析成果物を作成します。
実装
import geopandas as gpd
import rasterio
from rasterio.mask import mask
from shapely.geometry import Point
import numpy as np
from pysal.explore import esda
from pysal.lib import weights
import matplotlib.pyplot as plt
import contextily as cx
def load_and_reproject(filepath: str, target_crs: str = "EPSG:4326") -> gpd.GeoDataFrame:
gdf = gpd.read_file(filepath)
return gdf.to_crs(target_crs)
def spatial_join_points_to_polygons(
points: gpd.GeoDataFrame, polygons: gpd.GeoDataFrame
) -> gpd.GeoDataFrame:
assert points.crs == polygons.crs, "CRS mismatch: reproject before joining"
return gpd.sjoin(points, polygons, how="inner", predicate="within")
def compute_ndvi(nir_path: str, red_path: str) -> np.ndarray:
with rasterio.open(nir_path) as nir_src, rasterio.open(red_path) as red_src:
nir = nir_src.read(1).astype(np.float32)
red = red_src.read(1).astype(np.float32)
ndvi = np.where((nir + red) > 0, (nir - red) / (nir + red), 0)
return ndvi
def spatial_autocorrelation(gdf: gpd.GeoDataFrame, column: str) -> dict:
w = weights.Queen.from_dataframe(gdf)
w.transform = "r"
moran = esda.Moran(gdf[column], w)
return {
"morans_i": moran.I,
"p_value": moran.p_sim,
"z_score": moran.z_sim,
"significant": moran.p_sim < 0.05,
"interpretation": "Clustered" if moran.I > 0 and moran.p_sim < 0.05 else
"Dispersed" if moran.I < 0 and moran.p_sim < 0.05 else
"Random",
}
def publication_map(gdf: gpd.GeoDataFrame, column: str, title: str, output: str):
fig, ax = plt.subplots(1, 1, figsize=(10, 8))
gdf.plot(column=column, ax=ax, legend=True, cmap="YlOrRd", edgecolor="0.5", linewidth=0.3)
cx.add_basemap(ax, crs=gdf.crs.to_string(), source=cx.providers.CartoDB.Positron)
ax.set_title(title, fontsize=14, fontweight="bold")
ax.set_axis_off()
fig.tight_layout()
fig.savefig(output, dpi=300, bbox_inches="tight")
plt.close(fig)
ベストプラクティス
- 空間操作の前に必ず CRS の整合性を確認してください。不一致の CRS は、気づきにくいエラーを引き起こします
- 距離や面積の計算には投影 CRS(メートル単位)を、表示には地理 CRS(度単位)を使用してください
- 非空間統計を使用する前に、Moran's I を適用して空間自己相関を検定してください
- データ品質の確認として、NDVI やその他の指数の範囲を検証してください(NDVI は -1 から 1 の範囲です)
- 公開するすべての地図に、縮尺、北矢印、CRS ラベルを含めてください
- パフォーマンス向上のため地理空間データは GeoParquet で保存し、GeoJSON はデータ交換のみに使用してください
プラットフォーム互換性
| プラットフォーム | サポート | 備考 |
|---|---|---|
| Cursor | 完全 | Python と地理空間ライブラリ |
| VS Code | 完全 | Jupyter と地図のレンダリング |
| Windsurf | 完全 | 科学計算向け Python |
| Claude Code | 完全 | パイプライン生成 |
| Cline | 完全 | GIS ワークフロー |
| aider | 部分的 | コード生成のみ |
関連スキル
キーワード
geospatial geopandas satellite-imagery ndvi spatial-statistics gis rasterio cartography earth-observation
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License