Skip to content

un-fao/fao-stac-extensions

FAO STAC Extensions

CI License: Apache-2.0

Umbrella repository for STAC extensions authored and maintained by the Food and Agriculture Organization of the United Nations (FAO).

Why this exists

FAO publishes geospatial data through two parallel catalogs:

  • data.apps.fao.org/catalog — a CKAN-backed catalog that exposes rich ISO 19115-1 metadata for every dataset (lineage, constraints, maintenance frequency, contacts, citation, ISO topic categories…).
  • the FAO geospatial STAC catalog (in review at data.review.fao.org/geospatial/search/stac/, prod at data.apps.fao.org/geospatial/search/stac/) — an OGC API / STAC catalog that exposes the same datasets as Collections and Items with raster / vector / datacube content.

The two catalogs describe the same datasets but use different metadata shapes, and historically users had to consult both. The work in this repository merges the ISO catalog content into the STAC catalog without information loss, so a single STAC API call returns the full ISO 19115-1 metadata alongside the geospatial content. Doing the merge via two community-shareable STAC extensions (rather than ad-hoc private fields) means other catalogs facing the same merge problem can adopt the same vocabulary.

Each extension lives under extensions/ and follows the official STAC extension template (README, JSON Schema, examples, CHANGELOG). The umbrella repo also hosts a Python reference implementation under reference-implementation/ covering all extensions.

Extensions

Extension Field prefix Status Schema URL Description
fao fao Custom — org-specific, permanent (v0.2.0) https://raw.githubusercontent.com/un-fao/fao-stac-extensions/v0.2.0/extensions/fao/json-schema/schema.json FAO platform-specific fields applicable to both raster and vector products published by the FAO Agro-Informatics Platform. Not a candidate for the stac-extensions/ org.
iso-to-stac iso Proposal — initial field set (v0.2.0); candidate for community acceptance https://raw.githubusercontent.com/un-fao/fao-stac-extensions/v0.2.0/extensions/iso-to-stac/json-schema/schema.json (interim) Canonical mapping between ISO 19115-2 and STAC, plus the FAO ISO 19115-1 profile. Adds iso:* fields only where no existing extension covers the ISO concept.

Repository Layout

fao-stac-extensions/
├── extensions/
│   ├── fao/                    # The fao extension (template-shaped)
│   └── iso-to-stac/            # The iso-to-stac extension (template-shaped)
├── reference-implementation/   # Pip-installable Python package
├── docs/drafts/                # Submission drafts (community + OGC)
├── README.md
├── CHANGELOG.md
└── LICENSE                     # Apache-2.0

Standardization Pathway

The two extensions follow different paths.

iso-to-stac — community-bound

Mirrors the sibling ogc-dimensions FAO proposal:

Phase Artifact
Proposal Schema + README + examples land in this repo
Pilot Live deployment on the FAO Agro-Informatics Platform emits the extension URL
Candidate PR to the stac-extensions/ org index
Stable After at least one external implementer adopts

Coordination with the OGC Metadata SWG (ISO TC 211 liaison) runs in parallel — there is no existing STAC ↔ ISO 19115 mapping extension, which is the gap this fills. On acceptance the $id URL moves from https://raw.githubusercontent.com/un-fao/fao-stac-extensions/... to https://stac-extensions.github.io/iso-to-stac/....

fao — permanent custom extension

The fao extension is intentionally org-specific (workspace, product identifiers, FAO product-type classifier) and is not a candidate for the stac-extensions/ org. Its schema is served directly from this repository, version-pinned to the release tag, in perpetuity. This matches STAC's guidance that extensions of strictly local interest to one publisher remain custom rather than being submitted to the community index.

Running Tests

The same checks that run in CI can be run locally. You'll need Node.js (for the JSON Schema and Markdown linters) and Python 3.11+ (for the reference implementation).

# Schema + Markdown linting (both extensions)
npm install
npm test

# Reference implementation
cd reference-implementation
pip install -e .
pytest

License

Apache-2.0. See LICENSE.

Copyright FAO, Viale delle Terme di Caracalla, 00100 Rome, Italy. Contact: copyright@fao.orghttp://fao.org/contact-us/terms/en/.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages