CoverageJSON output format and API extension for TiTiler.
titiler-covjson adds CoverageJSON (OGC Community Standard) as a new output format to TiTiler, enabling any TiTiler deployment to serve geospatial raster and time series data in a standards-compliant, interoperable JSON format.
- Point query - coverage values at a coordinate
- Bounding box query - full raster grid or aggregated statistics over an extent
- Transect / line profile - values sampled along a polyline
- Tile query - map tiles as CovJSON (alternative to image tiles)
- Time series - temporal extraction from STAC collections
- Coverage metadata - domain and parameter info without data
- Overview - low-resolution downsampled grids via COG overviews
pip install titiler-covjson- TiTiler >= 0.18.0
- covjson-pydantic >= 0.7.0 (Pydantic v2 CovJSON models by KNMI)
- rio-tiler >= 7.0.0
- Shapely >= 2.0
from fastapi import FastAPI
from titiler_covjson.router import covjson_router
app = FastAPI()
app.include_router(covjson_router, prefix="/covjson")See the docs/ directory:
- Design Overview - Architecture and key decisions
- API Definition - Endpoint specifications with examples
- Data Model Reference - CovJSON models via covjson-pydantic
- Modeler/Converter Design - Raster to CovJSON conversion
- Implementation Roadmap - EPIC with 13 stories
- Libraries Analysis - covjson-pydantic & covjson-validator
titiler-covjson/
├── src/titiler_covjson/
│ ├── __init__.py # Package init
│ ├── helpers.py # CRS, unit, dtype mapping utilities
│ ├── input.py # CoverageInput intermediate representation
│ ├── modeler.py # RasterCovJSONModeler (data -> CovJSON)
│ ├── routes.py # FastAPI endpoint definitions
│ └── router.py # TiTiler router extension
├── tests/
├── docs/
├── pyproject.toml
├── LICENSE # MIT
└── README.md
MIT