From 78bbf8ca8d808e0bec08e801e4e9a7e56e9a1e5b Mon Sep 17 00:00:00 2001 From: Emmanuel Mathot Date: Wed, 26 Jun 2024 09:56:54 +0200 Subject: [PATCH] simplified swath descriptiomn --- .vscode/settings.json | 3 ++ README.md | 78 ++++++++++----------------------- examples/sentinel-1-grd-ew.json | 10 +---- examples/sentinel-1-grd-s4.json | 6 +-- examples/sentinel-1-slc-iw.json | 22 ++-------- json-schema/schema.json | 43 ++---------------- 6 files changed, 36 insertions(+), 126 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7709bc6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "jira-plugin.workingProject": "" +} \ No newline at end of file diff --git a/README.md b/README.md index c13f3ce..182d946 100644 --- a/README.md +++ b/README.md @@ -32,23 +32,23 @@ To describe frame start and end times, use the ## Item Properties or Asset Fields -| Field Name | Type | Description | -| --------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| sar:instrument_mode | string | **REQUIRED.** The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, `WV` for "Wave mode" of Sentinel-1 and Envisat ASAR satellites. | -| sar:frequency_band | string | **REQUIRED.** The common name for the frequency band to make it easier to search for bands across instruments. See section "Common Frequency Band Names" for a list of accepted names. | -| sar:center_frequency | number | The center frequency of the instrument, in gigahertz (GHz). | -| sar:polarizations | \[string] | **REQUIRED.** Any combination of polarizations. | -| sar:product_type | string | ***DEPRECATED** in favor of [`product:type`](https://github.com/stac-extensions/product).* The product type, for example `SSC`, `MGD`, or `SGC` | -| sar:resolution_range | number | The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m). | -| sar:resolution_azimuth | number | 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 | number | The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type `GRD`. | -| sar:pixel_spacing_azimuth | number | The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type `GRD`. | -| sar:looks_range | number | Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path. | -| sar:looks_azimuth | number | Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path. | -| sar:looks_equivalent_number | number | The equivalent number of looks (ENL). | -| sar:observation_direction | string | Antenna pointing direction relative to the flight trajectory of the satellite, either `left` or `right`. | -| sar:relative_burst | number | Identification number that uniquely identifies a burst cycle within each repeat cycle. | -| sar:swath | \[[Beam Object](#beam-object)] | Composition of the swath of the SAR acquisition. | +| Field Name | Type | Description | +| --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| sar:instrument_mode | string | **REQUIRED.** The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, `WV` for "Wave mode" of Sentinel-1 and Envisat ASAR satellites. | +| sar:frequency_band | string | **REQUIRED.** The common name for the frequency band to make it easier to search for bands across instruments. See section "Common Frequency Band Names" for a list of accepted names. | +| sar:center_frequency | number | The center frequency of the instrument, in gigahertz (GHz). | +| sar:polarizations | \[string] | **REQUIRED.** Any combination of polarizations. | +| sar:product_type | string | ***DEPRECATED** in favor of [`product:type`](https://github.com/stac-extensions/product).* The product type, for example `SSC`, `MGD`, or `SGC` | +| sar:resolution_range | number | The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m). | +| sar:resolution_azimuth | number | 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 | number | The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type `GRD`. | +| sar:pixel_spacing_azimuth | number | The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type `GRD`. | +| sar:looks_range | number | Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path. | +| sar:looks_azimuth | number | Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path. | +| sar:looks_equivalent_number | number | The equivalent number of looks (ENL). | +| sar:observation_direction | string | Antenna pointing direction relative to the flight trajectory of the satellite, either `left` or `right`. | +| sar:relative_burst | number | Identification number that uniquely identifies a burst cycle within each repeat cycle. | +| sar:beam_ids | \[string] | Composition of the swath of the SAR acquision referencing the beam identifiers. | **Note:** In this specification *range* values are meant to be measured perpendicular to the flight path and *azimuth* values are meant to be measured parallel to the flight path. @@ -65,45 +65,11 @@ for instance for `HH+HV` add both `HH` and `HV`. **Important:** In the `properties` of a STAC Item `sar:polarizations` must be a set with unique elements. In assets `sar:polarizations` can contain duplicate elements and, if possible, the polarizations must appear in the same order as in the file. -### Beam Object - -The beam object is used to describe the subswaths of a SAR acquisition. -According to the instrument mode defined in `sar:instrument_mode`, the `sar:swath` is composed of one or more beams. - -| Field Name | Type | Description | -| -------------- | --------------------- | -------------------------------------------------------------------------------------- | -| id | string | **REQUIRED.** The unique identifier of the beam. It can be the subswath identifier | -| relative_burst | number | Identification number that uniquely identifies a burst cycle within each repeat cycle. | -| polarizations | \[string] | Any combination of polarizations. | - -As every beam is a specific view in the acquisition, the object can also contain additional fields from the [View extension](https://github.com/stac-extensions/view). - -> \[!NOTE] -> If the value of a field repeats for all beams, it is recommended to include it only in the parent scope, i.e. usually in the Item Properties. - -Examples of a `sar:swath` field for sentinel-1 IW mode: - -```json -"sar:relative_burst": 541, -"sar:polarizations": ["VV", "VH"], -"sar:swath": [ - { - "id": "IW1", - "view:off_nadir": 28.3, - "view:incident_angle": 32.1 - }, - { - "id": "IW2", - "view:off_nadir": 33.3, - "view:incident_angle": 37.1 - }, - { - "id": "IW3", - "view:off_nadir": 38.3, - "view:incident_angle": 42.1 - } -] -``` +#### sar:beam_ids + +The `sar:beam_ids` field is used to reference the beam identifiers of the SAR acquisition. According to the mission and the sensor mode, +the beam identifiers can be used to identify the composition of the swath of the SAR acquisition. +The beam identifiers are usually provided in the metadata of the SAR data. ### Common Frequency Band Names diff --git a/examples/sentinel-1-grd-ew.json b/examples/sentinel-1-grd-ew.json index 321adf2..adab1a5 100644 --- a/examples/sentinel-1-grd-ew.json +++ b/examples/sentinel-1-grd-ew.json @@ -28,14 +28,8 @@ "sar:looks_equivalent_number": 2.7, "sar:frequency_band": "C", "sar:center_frequency": 5.405, - "sar:swath": [ - { - "id": "EW", - "polarizations": [ - "HH" - ], - "view:incident_angle": 40.1 - } + "sar:beam_ids": [ + "EW" ], "product:type": "GRD" }, diff --git a/examples/sentinel-1-grd-s4.json b/examples/sentinel-1-grd-s4.json index 6ea7fbe..287c2ca 100644 --- a/examples/sentinel-1-grd-s4.json +++ b/examples/sentinel-1-grd-s4.json @@ -48,10 +48,8 @@ "processing:datetime": "2024-05-31T11:25:04.541000+00:00", "sar:instrument_mode": "SM", "processing:level": "L1", - "sar:swath": [ - { - "id": "S6" - } + "sar:beam_ids": [ + "S6" ], "processing:facility": "Production Service-SERCO", "processing:version": "003.71", diff --git a/examples/sentinel-1-slc-iw.json b/examples/sentinel-1-slc-iw.json index c386138..a17a605 100644 --- a/examples/sentinel-1-slc-iw.json +++ b/examples/sentinel-1-slc-iw.json @@ -40,24 +40,10 @@ "processing:datetime": "2024-06-18T18:24:17.837861+00:00", "sar:instrument_mode": "IW", "processing:level": "L1", - "sar:swath": [ - { - "id": "IW1", - "relative_burst": 541, - "polarizations": [ - "VV", - "VH" - ], - "view:incident_angle": 32.1 - }, - { - "id": "IW2", - "view:incident_angle": 34.1 - }, - { - "id": "IW3", - "view:incident_angle": 36.1 - } + "sar:beam_ids": [ + "IW1", + "IW2", + "IW3" ], "processing:facility": "Production Service-SERCO", "processor:version": "003.80", diff --git a/json-schema/schema.json b/json-schema/schema.json index 0262db7..afeb531 100644 --- a/json-schema/schema.json +++ b/json-schema/schema.json @@ -174,11 +174,11 @@ "right" ] }, - "sar:swath": { - "title": "Swath", + "sar:beam_ids": { + "title": "Beam identifiers", "type": "array", "items": { - "$ref": "#/definitions/beam" + "type": "string" } } }, @@ -189,43 +189,6 @@ }, "additionalProperties": false }, - "beam": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "title": "Beam identification", - "type": "string", - "minLength": 1 - }, - "relative_burst": { - "title": "Relative burst identificator", - "type": "integer", - "minimum": 0 - }, - "polarizations": { - "title": "Polarizations", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/polarizations" - } - } - }, - "additionalProperties": true - }, - { - "$ref": "https://stac-extensions.github.io/view/v1.0.0/schema.json#/definitions/fields", - "additionalProperties": true - }, - { - "required": [ - "id" - ] - } - ] - }, "polarizations": { "type": "string", "enum": [