Skip to main content

AI-ready GIS toolkit for energy and subsurface workflows.

Project description

env-able

An open source spatial analysis library built for AI-driven GIS workflows. Designed to give AI systems like Claude reliable, hallucination-free tools for spatial operations in energy and subsurface contexts.

Install

pip install env-able

Functions

e.Intersect(input_layer, intersect_layer, output=None)

Computes geometric intersection of input features against a polygon boundary.

  • input_layer — point, line, or polygon (file path or GeoDataFrame)
  • intersect_layer — polygon layer defining the intersection boundary
  • output — file path to save result (.gpkg, .shp, etc.) — omit to return a GeoDataFrame
import env_able as e
e.Intersect("wells.shp", "boundary.shp", "result.gpkg")

e.Buffer(input_layer, distance, unit="meters", output=None)

Buffers input features by a given distance and unit.

  • input_layer — point, line, or polygon (file path or GeoDataFrame)
  • distance — numeric buffer distance
  • unitmeters, km, miles, feet, usfeet, nautical miles
  • output — file path to save result — omit to return a GeoDataFrame
e.Buffer("wells.shp", 1, "miles", "wells_buffer.gpkg")

e.Clip(input_layer, clip_layer, output=None)

Clips input features to the extent of a polygon clip boundary.

  • input_layer — point, line, or polygon (file path or GeoDataFrame)
  • clip_layer — polygon layer defining the clip boundary
  • output — file path to save result — omit to return a GeoDataFrame
e.Clip("roads.shp", "county.shp", "roads_clipped.gpkg")

e.morph(input_path, output_path, **kwargs)

Universal format translation. Converts between shp, gpkg, gdb, csv, xlsx, xls, dbf, geojson, json with automatic CRS handling, field name fixes, and multi-layer support.

  • input_path — source file or geodatabase
  • output_path — destination file. Extension sets the format. Use trailing / for directory output (one file per layer). Use dot notation for named layers: roads.parcels.gpkg
  • x_col, y_col — column names for X/Y coordinates (auto-detected if not provided)
  • wkt_col — column containing WKT geometry (auto-detected if not provided)
  • crs — coordinate reference system e.g. EPSG:4326 (required for tabular → spatial)
e.morph("roads.shp", "roads.gpkg")
e.morph("county.gdb", "county.gpkg")
e.morph("county.gdb", "output_folder/")
e.morph("owners.csv", "owners.geojson", crs="EPSG:4269")
e.morph("owners.csv", "owners.shp", x_col="LONGITUDE", y_col="LATITUDE", crs="EPSG:4269")
e.morph("roads.gpkg", "roads.parcels.gpkg")
e.morph("data.json", "data.gpkg")

Smart behavior:

  • GDB / GPKG with multiple layers → detects all layers automatically
  • CRS mismatch → auto-reprojects
  • Shapefile field name limit (10 chars) → auto-truncates with warnings
  • Invalid output path → plain English error
  • Empty layers → skipped with a warning, not a crash

Changelog

v0.1.0 — 2026-07-14

  • Initial release of env-able
  • Intersect(), Buffer(), Clip() with full guardrails
  • morph() — universal format translation
  • Smart geometry detection for WKT and lat/lon columns
  • GeoJSON, JSON support with auto WGS84 reprojection
  • Multi-layer GDB/GPKG support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

env_able-0.2.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

env_able-0.2.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file env_able-0.2.0.tar.gz.

File metadata

  • Download URL: env_able-0.2.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for env_able-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0b40b9f6a1a8a925bd2b5fe32003fde89507cd35eaaae5471cbc03085906bcad
MD5 0be4026c5fbcdb00ebf75b3401adf54a
BLAKE2b-256 ec14d858089e7baede52dd1f65f116d8ac2d6c334f2b62b3d778f545806765f2

See more details on using hashes here.

File details

Details for the file env_able-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: env_able-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for env_able-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b1be6de13779a874e54288a7922557b2bf69eab65ad337ac158cedc7293306f
MD5 45f5afa2e83750c964c185ee2270e880
BLAKE2b-256 4a237875025537bfe068361a2cc87203f68d680f168b130d6598d37651ff896f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page