From 138a336e12ac136f3e1ed8def2cca0327e92ba37 Mon Sep 17 00:00:00 2001 From: Emmanuel Mathot Date: Mon, 11 Mar 2024 21:28:08 +0100 Subject: [PATCH] Update STAC extension URLs and fix typo in package.json scripts --- README.md | 35 ++++++++++++++++++++++++++++------- examples/item-epos.json | 36 ++++++++++++++++++++---------------- examples/item.json | 26 ++++++++++++++++---------- json-schema/schema.json | 26 ++++++++++++++++++++------ package.json | 4 ++-- 5 files changed, 86 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index a9346fc..eb81ebd 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,13 @@ This document explains the InSAR Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification. -Interferometric synthetic aperture radar, abbreviated InSAR (or deprecated IfSAR), is a radar technique used in geodesy and remote sensing. This geodetic method uses two or more synthetic aperture radar (SAR) images to generate maps of surface deformation or digital elevation, using differences in the phase of the waves returning to the satellite or aircraft. The technique can potentially measure millimetre-scale changes in deformation over spans of days to years. It has applications for geophysical monitoring of natural hazards, for example earthquakes, volcanoes and landslides, and in structural engineering, in particular monitoring of subsidence and structural stability. +Interferometric synthetic aperture radar, abbreviated InSAR (or deprecated IfSAR), +is a radar technique used in geodesy and remote sensing. +This geodetic method uses two or more synthetic aperture radar (SAR) images to generate maps of surface deformation or digital elevation, +using differences in the phase of the waves returning to the satellite or aircraft. +The technique can potentially measure millimetre-scale changes in deformation over spans of days to years. +It has applications for geophysical monitoring of natural hazards, for example earthquakes, volcanoes and landslides, +and in structural engineering, in particular monitoring of subsidence and structural stability. The extension is primarly intented to describe **products** of InSAR processing, typically interferograms and related products. @@ -28,7 +34,7 @@ The extension is primarly intented to describe **products** of InSAR processing, | insar:height_of_ambiguity | number | This height of ambiguity is the 2 π interferometric phase cycle scaled with the perpendicular baseline between both satellites. The smaller the height of ambiguity is, the lower is the influence of errors caused by the instrument or the different decorrelation effects. | | insar:reference_datetime | string | Date of reference acquisition, in UTC. It is formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). | | insar:secondary_datetime | string | Date of secondary acquisition, in UTC. It is formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). | -| insar:processsing_dem | string | String representing the Digital Elevation Model used for processing the input data. A list is proposed in the [DEMs section](#digital-elevation-models-dems) | +| insar:processing_dem | string | String representing the Digital Elevation Model used for processing the input data. A list is proposed in the [DEMs section](#digital-elevation-models-dems) | | insar:geocoding_dem | string | String representing the Digital Elevation Model used for geocoding the product. A list is proposed in the [DEMs section](#digital-elevation-models-dems) | ## Best Practices @@ -45,10 +51,10 @@ It is higly recommended to use the following fields to describe the InSAR produc | [sar:looks_range](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path | | [sar:looks_azimuth](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path. | | [sar:observation_direction](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | Antenna pointing direction relative to the flight trajectory of the satellite, either left or right. | -| [sar:pixel_spacing_range ](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). | -| [sar:pixel_spacing_azimuth ](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m) | -| [sar:resolution_range ](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m). | -| [sar:resolution_azimuth ](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m). | +| [sar:pixel_spacing_range](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). | +| [sar:pixel_spacing_azimuth](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m) | +| [sar:resolution_range](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m). | +| [sar:resolution_azimuth](https://github.com/stac-extensions/sar/#item-properties-or-asset-fields) | The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m). | | [processing:level](https://github.com/stac-extensions/processing#suggested-processing-levels) | `L3` level is recommended since InSAR is a composite product. | | [processing:lineage](https://github.com/stac-extensions/processing#item-properties-and-collection-provider-fields) | Describe InSAR specific technique. For instance, `Geocoded Unwrapped Interferogram TOPSAR` | | [processing:software](https://github.com/stac-extensions/processing#item-properties-and-collection-provider-fields) | Software used for InSAR processing. For instance `{"ESA SNAP Toolbox": "8.0"}, {"SNAPHU": "1.4.2"}` | @@ -68,7 +74,7 @@ these role names then they will be specified in the future as more standard than | Role Name | Description | | ---------------- | ------------------------------------------------------- | -| coherence | 2D Coherence [0-1] from filtered interferogram | +| coherence | 2D Coherence \[0-1\] from filtered interferogram | | phase | 2D Filtered wrapped interferogram geocoded in radians | | unwrapped_phase | 2D Filtered unwrapped interferogram geocoded in radians | | los_displacement | 2D Displacement in the satellite line of sight (LOS) | @@ -101,6 +107,21 @@ The following types should be used as applicable `rel` types in the | reference | This link points to the reference input product STAC Item | | secondary | This link points to the secondary input product STAC Item | +### Links roles + +It is possible to use [Links Roles](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-roles) +to provide clients with more information about the linked item in an item or a collection. +The following list includes a shared vocabulary for InSAR assets. +This list should not be considered definitive, and implementors are welcome to use other asset roles. If consensus and tooling consolidates around +these role names then they will be specified in the future as more standard than just 'best practices'. + +| Role Name | Description | +| --------- | ------------------------------------------------------------------------- | +| event | Item is related to an event (e.g. earthquake, volcano eruption) | +| coesismic | Item is related to a coesismic event or data results (e.g. interferogram) | +| post | Item is related to a post event or data results (e.g. interferogram) | +| pre | Item is related to a pre event or data results (e.g. interferogram) | + ## Contributing All contributions are subject to the diff --git a/examples/item-epos.json b/examples/item-epos.json index 647ad76..3a6206e 100644 --- a/examples/item-epos.json +++ b/examples/item-epos.json @@ -2,12 +2,12 @@ "stac_version": "1.0.0", "stac_extensions": [ "https://stac-extensions.github.io/insar/v1.0.0/schema.json", - "https://stac-extensions.github.io/sar/v1.1.0/schema.json", - "https://stac-extensions.github.io/sat/v1.1.0/schema.json", + "https://stac-extensions.github.io/sar/v1.0.0/schema.json", + "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/processing/v1.1.0/schema.json", - "https://stac-extensions.github.io/view/v1.1.0/schema.json", + "https://stac-extensions.github.io/view/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json", - "https://stac-extensions.github.io/scientific/v1.1.0/schema.json" + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json" ], "type": "Feature", "id": "InU_CNRIREA_20200814_20200820_ECJT", @@ -46,21 +46,25 @@ }, "properties": { "created": "2020-08-31T07:24:01Z", - "date_time": "2020-08-14T21:30:32Z", + "datetime": "2020-08-14T21:30:32Z", "start_datetime": "2020-08-14T21:30:39.872810Z", "end_datetime": "2020-08-20T21:30:17.536197Z", "processing:level": "L3", "processing:lineage": "Parallel SBAS Interferometry Chain", - "processing:sftware": { + "processing:software": { "CNR-IREA P-SBAS": "28" }, - "proj:epsg": "4326", + "proj:epsg": 4326, "sat:orbit_state": "descending", - "sat:relative_orbit": "82", + "sat:relative_orbit": 82, + "sar:product_type": "InU", "sar:instrument_mode": "IW", - "sar:polarizations": "VV", + "sar:frequency_band": "C", + "sar:polarizations": [ + "VV" + ], "sar:looks_range": 20, - "sar:looks_azimuth" : 5, + "sar:looks_azimuth": 5, "sar:observation_direction": "right", "sar:resolution_range": 73, "sar:resolution_azimuth": 73, @@ -74,15 +78,15 @@ "citation": "SBAS-DInSAR Parallel Processing for Deformation Time-Series Computation" } ], - "view:azimuth": "-11.0", - "view:incidence_angle": "30.0", - "insar:height_of_ambiguity": -1.27421945559537858E+03, + "view:azimuth": 11, + "view:incidence_angle": 30, + "insar:height_of_ambiguity": -1274.2194555953786, "insar:temporal_baseline": 12, - "insar:perpendicular_baseline": 1.21935032939007009E+01, + "insar:perpendicular_baseline": 12.1935032939007, "insar:reference_datetime": "2022-03-15T07:57:41Z", "insar:secondary_datetime": "2022-03-27T07:58:06Z", - "insar:processsing_dem": "SRTM1", - "insar:geocoding_dem": "SRTM1", + "insar:processing_dem": "SRTM1", + "insar:geocoding_dem": "SRTM1" }, "links": [ { diff --git a/examples/item.json b/examples/item.json index baf5783..7303261 100644 --- a/examples/item.json +++ b/examples/item.json @@ -2,8 +2,9 @@ "stac_version": "1.0.0", "stac_extensions": [ "https://stac-extensions.github.io/insar/v1.0.0/schema.json", - "https://stac-extensions.github.io/sar/v1.1.0/schema.json", - "https://stac-extensions.github.io/sat/v1.1.0/schema.json", + "https://stac-extensions.github.io/sar/v1.0.0/schema.json", + "https://stac-extensions.github.io/sat/v1.0.0/schema.json", + "https://stac-extensions.github.io/view/v1.0.0/schema.json", "https://stac-extensions.github.io/processing/v1.1.0/schema.json" ], "type": "Feature", @@ -42,21 +43,26 @@ ] }, "properties": { - "date_time": "2022-03-21T07:57:45.000Z", - "sar:polarizations": "VV", + "datetime": "2022-03-21T07:57:45.000Z", + "sar:polarizations": [ + "VV" + ], + "sar:instrument_mode": "IW", + "sar:frequency_band": "C", + "sar:product_type": "GUNW", "processing:level": "L3", "processing:lineage": "Geocoded Unwrapped Interferogram TOPSAR", - "processing:sftware": { + "processing:software": { "ESA SNAP Toolbox": "8.0", "SNAPHU": "1.4.2" }, "sat:orbit_state": "descending", - "sat:relative_orbit": "82", - "view:azimuth": "-11.0", - "view:incidence_angle": "30.0", - "insar:height_of_ambiguity": -1.27421945559537858E+03, + "sat:relative_orbit": 82, + "view:azimuth": 11, + "view:incidence_angle": 30, + "insar:height_of_ambiguity": -1274.2194555953786, "insar:temporal_baseline": 12, - "insar:perpendicular_baseline": 1.21935032939007009E+01, + "insar:perpendicular_baseline": 12.1935032939007, "insar:reference_datetime": "2022-03-15T07:57:41Z", "insar:secondary_datetime": "2022-03-27T07:58:06Z" }, diff --git a/json-schema/schema.json b/json-schema/schema.json index 993561a..31fab80 100644 --- a/json-schema/schema.json +++ b/json-schema/schema.json @@ -46,6 +46,16 @@ "required": [ "insar:secondary_datetime" ] + }, + { + "required": [ + "insar:processing_dem" + ] + }, + { + "required": [ + "insar:geocoding_dem" + ] } ] }, @@ -118,15 +128,13 @@ "type": "object", "properties": { "insar:perpendicular_baseline": { - "type": "string" + "type": "number" }, "insar:temporal_baseline": { - "type": "integer", - "minimum": 1 + "type": "number" }, "insar:height_of_ambiguity": { - "type": "integer", - "minimum": 1 + "type": "number" } , "insar:reference_datetime": { "type": "string", @@ -135,10 +143,16 @@ "insar:secondary_datetime": { "type": "string", "format": "date-time" + }, + "insar:processing_dem": { + "type": "string" + }, + "insar:geocoding_dem": { + "type": "string" } }, "patternProperties": { - "^(?!sat:)": { + "^(?!insar:)": { "$comment": "Do not allow unspecified fields prefixed with insar:" } }, diff --git a/package.json b/package.json index 46d280a..8c53ce4 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "scripts": { "test": "npm run check-markdown && npm run check-examples", "check-markdown": "remark . -f -r .github/remark.yaml", - "check-examples": "stac-node-validator . --lint --verbose --schemaMap https://stac-extensions.github.io/template/v1.0.0/schema.json=./json-schema/schema.json", - "format-examples": "stac-node-validator . --format --schemaMap https://stac-extensions.github.io/template/v1.0.0/schema.json=./json-schema/schema.json" + "check-examples": "stac-node-validator . --lint --verbose --schemaMap https://stac-extensions.github.io/insar/v1.0.0/schema.json=./json-schema/schema.json", + "format-examples": "stac-node-validator . --format --schemaMap https://stac-extensions.github.io/insar/v1.0.0/schema.json=./json-schema/schema.json" }, "dependencies": { "remark-cli": "^8.0.0",