Skip to content

Repository files navigation

MAAP DPS Metadata and Provenance Extension

This extension defines metadata and provenance from the MAAP Data Processing Service (DPS). Version 0.1.0 applies these fields to generated STAC Items. It uses flat, namespaced Item Properties so the fields can be filtered through a STAC API.

Fields

These fields are available in STAC Item properties objects:

Field Name Type Required Description
maap-dps:algorithm_name string Yes Name of the algorithm that produced the Item.
maap-dps:username string Yes Username associated with the DPS submission.
maap-dps:tag string or null Yes Tag associated with the DPS submission.

When the extension is declared in stac_extensions, all three extension fields are required. No optional extension fields are defined in version 0.1.0.

Algorithm version

Items must include processing:version from the Processing extension to record the version of the algorithm that produced the Item. This field is required in addition to the three MAAP DPS fields above. Its definition and validation belong to the Processing extension.

Items must also declare https://stac-extensions.github.io/processing/v1.2.0/schema.json in stac_extensions, as shown in the Item example.

Versioning

Each released schema is published at:

https://maap-project.github.io/maap-dps-stac-extension/v{version}/schema.json

For example, the v0.1.0 schema is available at https://maap-project.github.io/maap-dps-stac-extension/v0.1.0/schema.json.

PySTAC extension

Install this package with a PySTAC version that supports external extension entry points:

uv add "pystac-ext-maap-dps @ git+https://github.com/MAAP-Project/maap-dps-stac-extension.git@v0.1.0"

The wrapper writes processing:version and declares both required schemas:

from pystac.extensions.maap_dps import MaapDpsExtension

MaapDpsExtension.ext(item, add_if_missing=True).apply(
    algorithm_name="example-algorithm",
    processing_version="1.0.0",
    username="example-user",
    tag=None,
)

The algorithm_name, processing_version, and username properties are typed as str; reading a missing or null value raises RequiredPropertyMissing. Only tag accepts and returns None.

The installed package registers itself through PySTAC's pystac.extensions entry-point group.

Contributing

All contributions are subject to the STAC Specification Code of Conduct.

Running tests

Install the Node.js and Python dependencies once with:

npm install
uv sync

Then run the schema tests, Markdown checks, example validation, and PySTAC extension checks with:

npm test
uv run pytest

About

STAC extension for MAAP DPS metadata

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages