skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
vamseeachanta/workspace-hub98 installs

gis

Cross-application GIS skill — CRS reference, data formats, Blender/QGIS integration via digitalmodel.gis

How do I install this agent skill?

npx skills add https://github.com/vamseeachanta/workspace-hub --skill gis
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill is a technical reference for GIS workflows, covering coordinate system handling and data integration for Blender and QGIS. No security concerns were identified.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerpass

    1 file scanned · No issues

What does this agent skill do?

GIS Skill — Integration Reference

Cross-application geospatial skill covering supported CRS, data formats, and application integration steps for the digitalmodel.gis module (WRK-020).


1. Supported Coordinate Reference Systems

EPSGNameUse case
EPSG:4326WGS84 geographicDefault for GeoJSON, GPS, BSEE well data
EPSG:3857Web Mercator (Pseudo-Mercator)Tile maps (Google Maps, OpenStreetMap)
EPSG:32601–32660UTM Zone 1N–60NNorthern hemisphere metre-accurate work
EPSG:32701–32760UTM Zone 1S–60SSouthern hemisphere metre-accurate work
EPSG:4269NAD83US onshore regulatory data

Auto-detect UTM zone from longitude:

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

2. Supported Data Formats

FormatExtensionsHandlerNotes
GeoJSON.geojson, .jsonio.geojson_handler.GeoJSONHandlerNo extra deps; RFC 7946
KML / KMZ.kml, .kmzio.kml_handler.KMLHandlerPure stdlib xml.etree
Shapefile.shp + .dbf + .shxio.shapefile_handler.ShapefileHandlerRequires geopandas/fiona
GeoTIFF.tif, .tiffio.geotiff_handler.GeoTIFFHandlerRequires rasterio
CSV + lat/lon.csvlayers.feature_layer.FeatureLayerStandard pandas read
WKTembedded in .qgs / .csvcore.geometryUsed in QGIS project files

3. Application Integration

3.1 QGIS

Generate a ready-to-open .qgs project file from a WellLayer:

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

Load a GeoTIFF bathymetry layer inside QGIS Processing Python console:

iface.addRasterLayer("/path/to/bathymetry.tif", "Bathymetry")

3.2 Blender — Well Markers

Generate a Blender Python script that positions well cylinders in 3D:

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 — Terrain / Bathymetry Mesh

Convert a GeoTIFF to an OBJ mesh that Blender can import directly:

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

In Blender: File > Import > Wavefront (.obj) — select terrain.obj.

Scale defaults: 1 m = 0.001 Blender units (km scale). Override with --scale-xy and --scale-z.

3.4 QGIS — Import Terrain as CSV Point Cloud

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 Module

# Access BSEE well locations with CRS support
from worldenergydata.bsee import load_wells
wells_df = load_wells()  # lat/lon columns in WGS84

4. Bathymetry Sources

SourceResolutionFormatNotes
GEBCO 202315 arc-sec (~500 m)GeoTIFFGlobal, free download
GEBCO via GEEconfigurableGeoTIFF exportSee google-earth-engine skill
NOAA NCEI1 arc-sec (coastal US)GeoTIFFETOPO series

5. digitalmodel.gis Module Map

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. Failure Diagnosis

ErrorCauseFix
ImportError: rasterio not installedrasterio absentpip install rasterio
CRS mismatch in spatial joinLayers in different CRSgdf.to_crs("EPSG:32631")
OBJ mesh flipped Z in BlenderDepth values negativeUse --scale-z -0.001 to invert
QGIS .qgs file not openingQGIS version mismatchOpen via Layer > Add Vector Layer instead
Large OBJ causes Blender slowdownFull-resolution rasterUse --subsample 4 or higher

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/vamseeachanta/workspace-hub/gis">View gis on skillZs</a>