mcpField
G
gis

gis

github.com/vamseeachantaデータ・データベース1898 回インストール今日更新
リポジトリ

gis について

gisは、アプリケーション横断の地理空間ワークフロー向けにdigitalmodel.gisモジュールを案内するスキルです。対応する座標系や形式、空間操作に加え、QGISやBlenderでデータを使う方法をまとめています。

主な機能

  1. 01対応CRSとUTMゾーンの自動判定
  2. 02GeoJSON、KML、Shapefile、GeoTIFF、CSV、WKT対応
  3. 03QGISプロジェクトとスタイルのエクスポート
  4. 04Blender用の井戸マーカーと地形メッシュ
  5. 05半径・境界ボックス・ポリゴン・最近傍N件の検索
  6. 06水深データの出典とトラブルシューティング

活用シーン

  1. 01井戸位置データをQGISプロジェクトに変換
  2. 02Blender用の水深地形を準備
  3. 03座標参照系の互換性を確認
  4. 04空間クエリで近傍の地物を検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vamseeachanta/workspace-hub --skill gis

インストール後、Claude Code で/gisを入力して読み込まれたか確認します。

詳細

GIS スキル — 統合リファレンス

digitalmodel.gis モジュール(WRK-020)でサポートされる CRS、データ形式、およびアプリケーションの統合手順を網羅した、アプリケーション横断型の地理空間スキルです。


1. サポートされる座標参照系

EPSG名称用途
EPSG:4326WGS84 地理座標系GeoJSON、GPS、BSEE の坑井データの既定値
EPSG:3857Web Mercator(Pseudo-Mercator)タイルマップ(Google Maps、OpenStreetMap)
EPSG:32601–32660UTM ゾーン 1N–60N北半球でのメートル精度の作業
EPSG:32701–32760UTM ゾーン 1S–60S南半球でのメートル精度の作業
EPSG:4269NAD83米国陸上の規制関連データ

経度から UTM ゾーンを自動検出します:

from digitalmodel.gis.core.crs import get_utm_epsg
epsg = get_utm_epsg(longitude=-1.5, latitude=57.0)  # returns "EPSG:32630"

2. サポートされるデータ形式

形式拡張子ハンドラー備考
GeoJSON.geojson, .jsonio.geojson_handler.GeoJSONHandler追加の依存関係不要。RFC 7946
KML / KMZ.kml, .kmzio.kml_handler.KMLHandler標準ライブラリの xml.etree のみ
Shapefile.shp + .dbf + .shxio.shapefile_handler.ShapefileHandlergeopandas/fiona が必要
GeoTIFF.tif, .tiffio.geotiff_handler.GeoTIFFHandlerrasterio が必要
CSV + 緯度/経度.csvlayers.feature_layer.FeatureLayer標準の pandas 読み込み
WKT.qgs / .csv に埋め込みcore.geometryQGIS プロジェクトファイルで使用

3. アプリケーション統合

3.1 QGIS

WellLayer から、すぐに開ける .qgs プロジェクトファイルを生成します:

from digitalmodel.gis.integrations.qgis_export import QGISExporter
from digitalmodel.gis.layers.well_layer import WellLayer

layer = WellLayer.from_csv("wells.csv", lat_col="lat", lon_col="lon")
exporter = QGISExporter(layer)
exporter.generate_project("wells.qgs")          # open in QGIS 3.x
exporter.generate_well_qml("wells_style.qml")  # well marker style

QGIS Processing の Python コンソール内で GeoTIFF の水深レイヤーを読み込みます:

iface.addRasterLayer("/path/to/bathymetry.tif", "Bathymetry")
3.2 Blender — 坑井マーカー

3D 空間に坑井の円柱を配置する Blender Python スクリプトを生成します:

from digitalmodel.gis.integrations.blender_export import BlenderExporter
from digitalmodel.gis.layers.well_layer import WellLayer

layer = WellLayer.from_csv("wells.csv", lat_col="lat", lon_col="lon")
exporter = BlenderExporter(layer)
exporter.write_well_script("add_wells.py")
# In Blender: Text editor > Open add_wells.py > Run Script
3.3 Blender — 地形/水深メッシュ

GeoTIFF を、Blender に直接インポートできる OBJ メッシュに変換します:

python scripts/gis/geotiff-to-blender.py bathymetry.tif --output terrain.obj
# Optional: subsample to reduce vertex count
python scripts/gis/geotiff-to-blender.py bathymetry.tif --output terrain.obj --subsample 4

Blender で File > Import > Wavefront (.obj) を選択し、terrain.obj を指定します。

既定のスケール:1 m = 0.001 Blender 単位(km スケール)。--scale-xy と --scale-z で上書きできます。

3.4 QGIS — 地形を CSV 点群としてインポート
python scripts/gis/geotiff-to-blender.py bathymetry.tif --output points.csv
# QGIS: Layer > Add Layer > Add Delimited Text Layer > select points.csv
# Set X=x, Y=y, Z=z, CRS = source CRS of the GeoTIFF
3.5 worldenergydata.gis モジュール
# Access BSEE well locations with CRS support
from worldenergydata.bsee import load_wells
wells_df = load_wells()  # lat/lon columns in WGS84

4. 水深データのソース

ソース解像度形式備考
GEBCO 202315 秒角(約 500 m)GeoTIFF全球対象、無料でダウンロード可能
GEE 経由の GEBCO設定可能GeoTIFF エクスポートgoogle-earth-engine スキルを参照
NOAA NCEI1 秒角(米国沿岸部)GeoTIFFETOPO シリーズ

5. digitalmodel.gis モジュールマップ

digitalmodel/gis/
  coordinates.py          — CoordinatePoint dataclass, batch transforms
  core/
    crs.py                — CRS definitions, get_utm_epsg()
    geometry.py           — GeoPoint, GeoBoundingBox, GeoPolygon
    spatial_query.py      — radius, bbox, polygon, nearest-N queries
    coordinate_transformer.py
  io/
    geojson_handler.py    — GeoJSON read/write
    kml_handler.py        — KML/KMZ read/write
    shapefile_handler.py  — Shapefile (optional geopandas)
    geotiff_handler.py    — GeoTIFF read/write/to_xyz (optional rasterio)
  layers/
    feature_layer.py      — FeatureLayer (pandas-backed GIS collection)
    well_layer.py         — WellLayer (well-specific subclass)
  integrations/
    blender_export.py     — Blender script generator for well markers
    qgis_export.py        — QGIS .qgs project + .qml style generator
    folium_maps.py        — Folium/Leaflet HTML maps
    google_earth_export.py— Styled KML for Google Earth
    plotly_maps.py        — Plotly mapbox scatter/dashboard

6. エラーの診断

エラー原因修正方法
ImportError: rasterio not installedrasterio が存在しないpip install rasterio
CRS mismatch in spatial joinレイヤーの CRS が異なるgdf.to_crs("EPSG:32631")
Blender で OBJ メッシュの Z が反転する深度値が負--scale-z -0.001 を使用して反転
QGIS の .qgs ファイルが開かないQGIS のバージョン不一致代わりに Layer > Add Vector Layer から開く
大きな OBJ で Blender の動作が遅くなるラスターがフル解像度--subsample 4 以上を使用

コメント