$ show jgrss/geowombat
GeoWombat is an open-source Python library for geospatial raster data processing and remote sensing analysis at scale. It provides a high-level API built on xarray, rasterio, Dask, and geopandas, enabling lazy, parallel processing of multi-spectral satellite imagery (Landsat, Sentinel-2, NAIP, etc.). The library's architecture centers on a custom xarray accessor (`.gw`) that exposes geospatial properties and methods, and a configuration context manager for setting sensor profiles, reprojection parameters, and other global settings. Key capabilities include raster I/O with on-the-fly warping/mosaicking, vegetation indices, radiometric corrections (BRDF, 6S, topographic), QA masking, time-series analysis, moving-window statistics (Cython-accelerated), and machine/deep learning classification and object detection (YOLO, TorchGeo, SAM). It supports STAC cloud access and distributed computation via Dask. The codebase demonstrates solid engineering with modular backends, extensible patterns, and comprehensive test coverage, though it carries some technical debt from pinned dependencies and large monolithic modules. It is actively maintained, with a broad user community and integrations with wider geospatial ecosystems.
The LLM identified 3 files worth highlighting for reuse:
Implements BRDF normalization using the c-factor method, with parameters for Landsat 5/7/8, Sentinel-2, and other sensors. The module is self-contained (depends only on numpy, xarray, and internal config) and could be extracted as a standalone library for BRDF correction. It demonstrates strong scientific computing skill and separation of sensor-specific coefficients.
Cython-accelerated moving window statistics (mean, std, min, max, percentile, etc.) with prange parallelism and typed memory views. This code is highly optimized for raster processing, showcases non-trivial Cython usage, and can be reused in any array-based moving window application with minimal adaptation.
Provides detection accuracy metrics (IoU matching, 11-point interpolated AP, mAP@[.5:.95]) with a review-ready GeoDataFrame output. The logic is clean, parameterized, and independent of detection frameworks. Could be extracted to validate any geospatial object detection pipeline.