Skip to main content

Open source spatial analysis library with AI-ready GIS tools for hallucination-free spatial operations.

Project description

r055y

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.

Install

pip install r055y

Functions

r.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
r.Intersect("wells.shp", "boundary.shp", "result.gpkg")

r.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
r.Buffer("wells.shp", 1, "miles", "wells_buffer.gpkg")

r.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
r.Clip("roads.shp", "county.shp", "roads_clipped.gpkg")

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

Universal format translation. Converts between shp, gpkg, gdb, csv, xlsx, xls, dbf 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)
r.morph("roads.shp", "roads.gpkg")
r.morph("county.gdb", "county.gpkg")
r.morph("county.gdb", "output_folder/")
r.morph("owners.csv", "owners.geojson", crs="EPSG:4269")          # auto-detects lat/lon cols
r.morph("owners.csv", "owners.shp", x_col="LONGITUDE", y_col="LATITUDE", crs="EPSG:4269")
r.morph("roads.gpkg", "roads.parcels.gpkg")
r.morph("data.json", "data.gpkg")                                  # auto-detects GeoJSON vs tabular

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.1 — 2026-06-26

  • Added morph() — universal format translation between shp, gpkg, gdb, csv, xlsx, xls, dbf, geojson, json
  • Smart geometry detection — auto-scans columns for WKT, lat/lon pairs without user hints
  • GeoJSON and JSON support — JSON auto-detects whether content is GeoJSON or tabular
  • GeoJSON output always reprojects to WGS84 (EPSG:4326) per spec
  • Auto-detects all layers in GDB and GPKG sources
  • Auto-reprojects on CRS mismatch
  • Shapefile 10-char field name truncation with warnings
  • Directory output (trailing slash) writes one file per layer
  • Named layer dot notation: roads.parcels.gpkg
  • Clean architecture: InputSpec, OutputSpec, MorphEngine, _Reader, _Writer, _GeomHint

v0.0.7 — 2026-06-25

  • Added Buffer() with full unit support (meters, km, miles, feet, usfeet, nautical miles)
  • Added Clip() for clipping features to a polygon boundary
  • Standardized all function signatures to individual args (no more list inputs)
  • All functions auto-reproject, validate geometries, and return plain English errors

v0.0.5 — 2026-06-25

  • Rebuilt Intersect() with full input validation and guardrails

v0.0.4 — 2026-06-24

  • Updated package description

v0.0.3 — 2026-06-24

  • Updated package description

v0.0.2 — 2026-06-24

  • Initial Intersect() function

v0.0.1 — 2026-06-24

  • Initial release

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

r055y-0.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

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

r055y-0.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file r055y-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for r055y-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0e57eb9d98079612ddca04fb85a2595a595622e61667b4b18ae00d0263c5d1b0
MD5 4bae7fa632ab71f3ab10b27a9e966afe
BLAKE2b-256 f07bf227185ad3455c9ad7d5fa2502e877733e24b915d3a75bddc6e4b33bb676

See more details on using hashes here.

File details

Details for the file r055y-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for r055y-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56c1ef0e7b277c567ba5b28af1705a432a84d6feb91b4d2bbb92f3ccb4b9ca6c
MD5 043bd6e3f3c3da89e3b3c465cd18a6a6
BLAKE2b-256 f459f44c314169c6d814d1c439c9c0d870f2236b8e94b5817816ca818adf83b1

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