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 boundaryoutput— 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 distanceunit—meters,km,miles,feet,usfeet,nautical milesoutput— 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 boundaryoutput— 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 geodatabaseoutput_path— destination file. Extension sets the format. Use trailing/for directory output (one file per layer). Use dot notation for named layers:roads.parcels.gpkgx_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e57eb9d98079612ddca04fb85a2595a595622e61667b4b18ae00d0263c5d1b0
|
|
| MD5 |
4bae7fa632ab71f3ab10b27a9e966afe
|
|
| BLAKE2b-256 |
f07bf227185ad3455c9ad7d5fa2502e877733e24b915d3a75bddc6e4b33bb676
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56c1ef0e7b277c567ba5b28af1705a432a84d6feb91b4d2bbb92f3ccb4b9ca6c
|
|
| MD5 |
043bd6e3f3c3da89e3b3c465cd18a6a6
|
|
| BLAKE2b-256 |
f459f44c314169c6d814d1c439c9c0d870f2236b8e94b5817816ca818adf83b1
|