Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Satellite Extension Specification

Satellite Extension

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, geostationary for geosynchronous satellites, or crossing when the acquisition spans a polar crossing.
sat:absolute_orbitintegerThe absolute orbit number at the start of acquisition.
sat:relative_orbitintegerThe relative orbit number at the start of acquisition.
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.
sat:orbit_state_vectorsMap<string, [number]>The state vectors of the satellite 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:acquisition_stationstringThe acquisition station (ground station) where the satellite data was downlinked. Equivalent to eop:acquisition_station in OGC 10-157r4 and OGC 17-003r2.

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. If the acquisition spans a polar crossing (i.e., the satellite transitions between ascending and descending during the acquisition), the value crossing shall be used.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the absolute orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

When the orbit changes during data acquisition (i.e., the acquisition spans multiple orbits), the convention is to use the relative orbit number at the start of the acquisition. This situation can occur, for example, in consolidated altimetry products such as Sentinel-3.

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.

sat:orbit_state_vectors

The state vectors of the satellite at the time of acquisition. The state vectors are a set of parameters that describe the position and velocity of the satellite at a given time. The state vectors are used to compute the position of the satellite at any time during the acquisition. The state vectors are usually provided in the ECI frame. The field is a map where the key is the time of the state vector and the value is an array of 6 elements (optional 9). The first 3 elements are the position of the satellite in meters and the last 3 elements are the velocity of the satellite in meters per second. The optional 3 additional elements are the acceleration of the satellite in meters per second squared.

Example:

{
"sat:orbit_state_vectors": {
"2015-03-05T05:19:40.103Z": [
5082939.4189831074,
1595651.7369050409,
4648033.5588545678,
5173.8779329387489,
-269.5432365485845,
-5550.246440359806
],
"2015-03-05T05:19:45.449Z": [
5110519.0376543682,
1594174.328112772,
4618284.7202579351,
5143.1200754073143,
-283.12343661734587,
-5578.2160610647188
],
"2015-03-05T05:19:50.449Z": [
5136162.3887853986,
1592727.024757518,
4590328.5904560406,
5114.1961953273549,
-295.79384304587683,
-5604.2108611458289
]
}
}

It is recommended that the state vectors are provided in a separate file and referenced as a link with relationship type sat:osv. The file should correspond to the example above.

sat:acquisition_station

The ground station where the satellite data was downlinked. This information is crucial for data lineage and provenance tracking, as it identifies the first point of data reception on Earth. In the context of Earth Observation missions, this corresponds to the eop:acquisitionStation in OGC standards (10-157r4 and 17-003r2). This field can be used for filtering datasets based on the ground station used for downlinking, which can be relevant for certain processing workflows or quality assessments.

Relation types

The following types should be used as applicable rel types in the Link Object.

TypeDescription
sat:osvLink to a file containing the orbit state vectors.

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

About

Satellite related metadata for data collected from satellites.

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors