Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- The fields can be used in Provider Objects in Item Properties and Assets
- The JSON Schema validates the fields in Collection summaries
- Relation type `source_for` for forward provenance (inverse of `derived_from`)
- `processing:datastrip_id` to identify the part of a datatake that the ground segment processed as one unit

### Changed

Expand Down
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ and therefore are shared across all items, it is recommended adding the fields t
- Examples:
- [Item example](examples/item.json): Shows the basic usage of the extension in a STAC Item
- [Collection example](examples/collection.json): Shows the basic usage of the extension in a STAC Collection
- [Sentinel-2 Item example](examples/item-sentinel-2.json): Shows the datastrip identifier in a STAC Item
- [JSON Schema](json-schema/schema.json)
- [Changelog](./CHANGELOG.md)

Expand All @@ -44,6 +45,7 @@ The fields in the table below can be used in these parts of STAC documents:
| processing:datetime | string | Processing date and time of the corresponding data formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6), in UTC. |
| processing:version | string | The version of the primary processing software or processing chain that produced the data. For example, this could be the processing baseline for the Sentinel missions. |
| processing:software | Map<string, string> | A dictionary with name/version for key/value describing one or more applications or libraries that were involved during the production of the data for provenance purposes. |
| processing:datastrip_id | string | The identifier of the datastrip, i.e. the part of a datatake that the ground segment processed as one unit. See [Datastrip ID](#datastrip-id) for details. |

In more detail, the following restrictions apply:

Expand Down Expand Up @@ -93,6 +95,29 @@ In Item Properties:
If you need more information, you could also link to such files via the relation type `processing-software`.
- `version` is usually not used in the context of processing and describes the version of the metadata.

### Datastrip ID

A datatake is one continuous acquisition by an instrument in one mode.
Some ground segments don't process a datatake as a whole.
Instead, they process parts of it independently, e.g. the parts that different ground stations received.
Sentinel-2 calls such a part a *datastrip*, and Landsat 7 calls it a *subinterval*.
`processing:datastrip_id` gives the identifier of the datastrip that the data was produced from.

The value is an opaque string.
Use the identifier as given by the provider and don't change its format.
Some providers assign new datastrip identifiers for each processing level or processing run.
Thus Items of the same acquisition at different processing levels may have different values.

For the identifier of the datatake itself, use `instrument:datatake_id` from the
[Instruments extension](https://github.com/stac-extensions/instruments).
If the ground segment processes the datatake as a whole, don't provide `processing:datastrip_id`.
Note that some providers (e.g. Airbus for Pléiades) use the term *data strip* for the whole acquisition.
Such identifiers are datatake identifiers and should be provided in `instrument:datatake_id` instead.

If the data of an Item comes from more than one datastrip, don't provide this field in the Item properties.
Instead, provide it in the Assets if each Asset comes from a single datastrip.
Comment thread
m-mohr marked this conversation as resolved.
Collections should not summarize this field.

### Linking the Items

In Items that declare this processing extension, it is recommended to add one or more
Expand Down
64 changes: 64 additions & 0 deletions examples/item-sentinel-2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"stac_version": "1.1.0",
"stac_extensions": [
"https://stac-extensions.github.io/processing/v1.2.0/schema.json"
],
"type": "Feature",
"id": "S2A_MSIL2A_20250626T101701_R065_T32UQU_20250626T142217",
"bbox": [
11.667,
47.72,
12.586,
48.721
],
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
11.667,
47.72
],
[
12.586,
47.72
],
[
12.586,
48.721
],
[
11.667,
48.721
],
[
11.667,
47.72
]
]
]
},
"properties": {
"datetime": "2025-06-26T10:17:01.024Z",
"constellation": "sentinel-2",
"platform": "sentinel-2a",
"instruments": [
"msi"
],
"processing:level": "L2",
Comment thread
m-mohr marked this conversation as resolved.
"processing:version": "05.11",
"processing:datetime": "2025-06-26T14:22:17Z",
"processing:datastrip_id": "S2A_OPER_MSI_L2A_DS_2APS_20250626T142217_S20250626T102649_N05.11"
},
"links": [
{
"href": "https://example.com/examples/item-sentinel-2.json",
"rel": "self"
}
],
"assets": {
"data": {
"href": "https://example.com/examples/file.xyz"
}
}
}
17 changes: 17 additions & 0 deletions json-schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,14 @@
}
]
},
"processing:datastrip_id": {
"title": "Datastrip ID",
"type": "string",
"minLength": 1,
"examples": [
"S2A_OPER_MSI_L2A_DS_2APS_20250626T142217_S20250626T102649_N05.11"
]
},
"fields": {
"$comment": "Don't require fields here as they would be required in all places where the fields are referenced.",
"type": "object",
Expand All @@ -179,6 +187,9 @@
},
"processing:software": {
"$ref": "#/definitions/processing:software"
},
"processing:datastrip_id": {
"$ref": "#/definitions/processing:datastrip_id"
}
},
"patternProperties": {
Expand Down Expand Up @@ -275,6 +286,12 @@
"items": {
"$ref": "#/definitions/processing:software"
}
},
"processing:datastrip_id": {
"type": ["array", "object"],
"items": {
"$ref": "#/definitions/processing:datastrip_id"
}
}
},
"patternProperties": {
Expand Down
Loading