Lumen is an open-source agent framework for chatting with data and building interactive dashboards, built on the HoloViz ecosystem (Panel, hvPlot, Bokeh). It provides a dual interface: a YAML-based declarative dashboard specification system for non-AI use cases, and an AI-powered natural language interface that generates SQL queries and Vega-Lite visualizations from user prompts. The architecture is modular, with clear separation between data sources (files, SQL databases, REST APIs, xarray), data pipelines (filters, transforms, SQL rewrites), views (hvPlot, Vega-Lite, DeckGL, tables), and an AI agent layer (Planner, Coordinator, specialized agents for SQL, visualization, validation, and source ingestion). The AI system supports multiple LLM providers (OpenAI, Anthropic, Google, Ollama, etc.), vector stores for RAG (Numpy, DuckDB, ChromaDB), and a tool system for external API integration. The codebase demonstrates high craftsmanship with reusable patterns like spec-driven component creation (MultiTypeComponent), composable SQL transforms, and a consistent agent/tool abstraction. While primarily an application framework, it includes data pipeline components that could be extracted for data engineering use. The project is actively maintained with extensive test coverage, though its large optional dependency surface and rapid feature velocity introduce some maintenance risk.
odc-stac is a Python library that converts STAC (SpatioTemporal Asset Catalog) metadata into the Open Data Cube (ODC) data model, enabling efficient loading of satellite imagery (Sentinel-2, Landsat) into xarray Datasets with Dask support. It defines a pluggable metadata parser (`StacMDParser`) and auxiliary reader (`StacAuxReader`) that integrate with the odc-loader framework, handles STAC extensions for projection, raster, and EO, and provides flexible spatial-temporal binning and grouping. The library also includes a CLI benchmark tool, test utilities for generating synthetic STAC items, and a comprehensive test suite with realistic STAC item fixtures from multiple providers (Planetary Computer, USGS, Geoscience Australia). While primarily an application library, it is used extensively in geospatial data research pipelines. The codebase is well-structured and modular, though it depends on evolving STAC specifications and extensions, introducing moderate technical drift risk.
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.
wrf-python is a specialized Python library for computing over 30 diagnostic meteorological variables from WRF-ARW (Weather Research and Forecasting) model output. It provides a high-level `getvar()` interface that dispatches to Fortran and C computational kernels wrapped via f2py, with OpenMP parallelization for performance. The library handles NetCDF input, staggered grids, map projections, moving nests, and supports multiple plotting backends (Cartopy, Basemap, PyNGL). It is built with scikit-build-core and CMake, requires a Fortran compiler, and includes extensive unit tests comparing results against NCL reference data. The architecture follows a consistent decorator pattern for argument handling, iteration over leftmost dimensions, type casting, and metadata injection, making it a production-grade tool for atmospheric research and operational meteorology.