- Title: Moving Features
- Identifier: https://iaocea.github.io/moving-features/v1.0.0/schema.json
- Field Name Prefix: mf
- Scope: Item
- Extension Maturity Classification: Proposal
- Owner: @keewis
This document explains the Moving Features extension to the SpatioTemporal Asset Catalog (STAC) specification.
The intention of the first version of the specification is to encode a Trajectory object as defined by the OGC Moving Features Encoding Extension – JSON standard. Future versions will aspire to also encode Prism objects.
- Examples:
- Item example: Shows the basic usage of the extension in a STAC Item
- JSON Schema
- Changelog
The fields in the table below can be used in these parts of STAC documents:
- Catalogs
- Collections
- Item Properties (incl. Summaries in Collections)
- Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)
- Links
Field Name | Type | Description |
---|---|---|
datetimes | [string | number] | REQUIRED (trajectory): one timestamp per node in a linestring |
To properly represent trajectories, the geometry
field of a item must have a type of
"LineString"
and the coordinates must describe at least 2 positions.
Once that is the case, the datetimes
property has to be an array with the same number of elements
as the coordinates
property of the geometry. Its values must describe time instants in
monotonic increasing order (without duplicated values) and may be:
- numeric values of milliseconds since 1970-01-01 00:00:00 UTC (unix timestamps)
- strings describing IETF RFC 3339 encoded timestamps
- strings describing ISO8601 encoded timestamps following the Gregorian calendar
Mixing different kinds of timestamp encodings is not allowed.
The datetime
property from the base metadata should be null
, and the start_datetime
and
end_datetime
properties should have the same value as the first and last values from datetimes
.
All contributions are subject to the STAC Specification Code of Conduct. For contributions, please follow the STAC specification contributing guide Instructions for running tests are copied here for convenience.
The same checks that run as checks on PR's are part of the repository and can be run locally to verify that changes are valid.
To run tests locally, you'll need npm
, which is a standard part of any node.js installation.
First you'll need to install everything with npm once. Just navigate to the root of this repository and on your command line run:
npm install
Then to check markdown formatting and test the examples against the JSON schema, you can run:
npm test
This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.
If the tests reveal formatting problems with the examples, you can fix them with:
npm run format-examples