Home

Awesome

Satellite Extension Specification

This document explains the Satellite Extension to the SpatioTemporal Asset Catalog (STAC) specification. It adds metadata related to a satellite that carries an instrument for collecting data. It will often be combined with other extensions that describe the actual data, such as the EO or SAR extensions.

Item Properties

Field NameTypeDescription
sat:platform_international_designatorstringThe International Designator, also known as COSPAR ID, and NSSDCA ID
sat:orbit_statestringThe state of the orbit. Either ascending or descending for polar orbiting satellites, or geostationary for geosynchronous satellites
sat:absolute_orbitintegerThe absolute orbit number at the time of acquisition.
sat:relative_orbitintegerThe relative orbit number at the time of acquisition.
sat:anx_datetimestringThe Ascending Node Crossing (ANX) time, in UTC. It is formatted according to RFC 3339, section 5.6.
sat:orbit_cycleintegerThe number of repeat cycle done by the satellite at the time of the acquisition. Repeat cycle is the time between two successive identical orbits.

At least one of the fields must be specified.

Additional Field Information

sat:platform_international_designator

The International Designator, also known as COSPAR ID, and NSSDCA ID and is an international identifier assigned to artificial objects in space.

sat:orbit_state

Indicates the type and current state of orbit. Satellites are either geosynchronous in which case they have one state: geostationary, or they are sun synchronous (i.e., polar orbiting satellites) in which case they are either ascending or descending. For sun synchronous satellites it is daytime during one of these states, and nighttime during the other.

sat:absolute_orbit

A count of orbits from 1 to the number of orbits made in the total satellite lifecycle. In mission planning and tasking, the absolute orbit may be used as a reference in the non systematic acquisition missions. The resulting Item can be tagged with the absolute orbit and thus searchable as such. In the case of orbital changes during the mission modifying the ground track and thus the repeat cycle and thus the number or relative orbits, the combination of cycle and relative orbit is not sufficient to derive an absolute orbit.

sat:relative_orbit

A count of orbits from 1 to the number of orbits contained in a repeat cycle, where relative orbit 1 starts from a specific reference location of the sub-satellite point (the point on the earth directly below the satellite). It resets to 1 when the sub-satellite point revisits the reference location.

sat:anx_datetime

The UTC time when the satellite crosses the Ascending Node. For geocentric and heliocentric orbits, the ascending node (or north node) is where the orbiting object moves north through the plane of reference. Used to quickly compute orbital parameters without having to download the product. For instance to compute on the fly a baseline between 2 satellite acquisition, to find the best candidate in the archive from a post-disaster event (e.g earthquake) scene acquisition for a DInSAR processing.

sat:orbit_cycle

The repeat cycle of the satellite. The repeat cycle is the number of orbits required for the satellite to return to the same position in its orbit. It is used to determine the relative orbit number. For instance, a satellite with a 16-day repeat cycle will have 16 relative orbits.

Contributing

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.

Running tests

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