// the find
opengeos/segment-geospatial
A Python package for segmenting geospatial data with the Segment Anything Model (SAM)
SamGeo wraps Meta's Segment Anything Model (SAM 1/2/3) with geospatial-aware glue: it handles coordinate reference systems, GeoTIFF I/O, and output to standard vector formats (GeoJSON, Shapefile, GeoPackage). It's for remote sensing researchers and GIS practitioners who want to apply foundation model segmentation to satellite or aerial imagery without writing all the rasterio/GDAL plumbing themselves. Has a peer-reviewed JOSS paper and NASA/AWS backing.
Tracks SAM upstream well — already has SAM 3 support with dedicated notebooks while most wrappers are still on SAM 1. The optional-dependency install structure (`[samgeo3]`, `[text]`, `[api]`, etc.) is genuinely thoughtful — you don't drag in PyTorch twice for models you're not using. Text-prompt segmentation via GroundingDINO integration means you can say 'swimming pools' and get vector polygons back, which is a real time-saver for survey work. QGIS plugin makes it accessible to GIS analysts who don't write Python.
Installation on Windows with SAM 3 requires a separate conda dance with triton-windows — it's documented but fragile, and pixi being the 'recommended' path is a red flag for anyone in an enterprise or locked-down environment. The library is essentially a collection of per-model wrapper classes (samgeo.py, samgeo2.py, samgeo3.py, text_sam.py, hq_sam.py) with no shared interface, so swapping models means rewriting calling code. Batch processing on large satellite scenes will silently eat memory without tiling — you need to know to look for the tiled segmentation notebook yourself. The `agent-harness/` directory in the tree looks like an experimental AI agent scaffold that isn't documented in the README at all, which is confusing.