Skip to content

Commit 64712ae

Browse files
feat: Add SAR swath information
1 parent 5bc2394 commit 64712ae

File tree

3 files changed

+147
-54
lines changed

3 files changed

+147
-54
lines changed

README.md

Lines changed: 83 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,22 @@ To describe frame start and end times, use the
3030

3131
## Item Properties or Asset Fields
3232

33-
| Field Name | Type | Description |
34-
| --------------------------- | --------- | ------------------------------------------------------------ |
35-
| 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. |
36-
| 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. |
37-
| sar:center_frequency | number | The center frequency of the instrument, in gigahertz (GHz). |
38-
| sar:polarizations | \[string] | **REQUIRED.** Any combination of polarizations. |
39-
| 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` |
40-
| 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). |
41-
| 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). |
42-
| 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`. |
43-
| 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`. |
44-
| sar:looks_range | number | Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path. |
45-
| sar:looks_azimuth | number | Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path. |
46-
| sar:looks_equivalent_number | number | The equivalent number of looks (ENL). |
47-
| sar:observation_direction | string | Antenna pointing direction relative to the flight trajectory of the satellite, either `left` or `right`. |
33+
| Field Name | Type | Description |
34+
| --------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
35+
| 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. |
36+
| 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. |
37+
| sar:center_frequency | number | The center frequency of the instrument, in gigahertz (GHz). |
38+
| sar:polarizations | \[string] | **REQUIRED.** Any combination of polarizations. |
39+
| 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` |
40+
| 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). |
41+
| 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). |
42+
| 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`. |
43+
| 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`. |
44+
| sar:looks_range | number | Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path. |
45+
| sar:looks_azimuth | number | Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path. |
46+
| sar:looks_equivalent_number | number | The equivalent number of looks (ENL). |
47+
| sar:observation_direction | string | Antenna pointing direction relative to the flight trajectory of the satellite, either `left` or `right`. |
48+
| sar:swath | \[Beam Object] | Composition of the swath of the SAR acquisition. |
4849

4950
**Note:** In this specification *range* values are meant to be measured perpendicular to the flight path and *azimuth* values
5051
are meant to be measured parallel to the flight path.
@@ -61,36 +62,72 @@ for instance for `HH+HV` add both `HH` and `HV`.
6162
**Important:** In the `properties` of a STAC Item `sar:polarizations` must be a set with unique elements.
6263
In assets `sar:polarizations` can contain duplicate elements and, if possible, the polarizations must appear in the same order as in the file.
6364

65+
### Beam Object
66+
67+
The `sar:swath` field is an array of objects that describe the composition of the swath of the SAR acquisition.
68+
According to the instrument mode defined in `sar:instrument_mode`, the `sar:swath` is composed of one or more beams.
69+
70+
| Field Name | Type | Description |
71+
| -------------- | --------------------- | -------------------------------------------------------------------------------------- |
72+
| id | string | **REQUIRED.** The unique identifier of the beam. It can be the subswath identifier |
73+
| relative_burst | number | Identification number that uniquely identifies a burst cycle within each repeat cycle. |
74+
| polarizations | \[string] | Any combination of polarizations. |
75+
| view:* | View extension fields | Additional fields from the [View extension](https://github.com/stac-extensions/view) |
76+
77+
> \[!NOTE]
78+
> If the value of a field repeats for all beams, it is recommended to include it only in the first beam.
79+
80+
Example of a `sar:swath` field:
81+
82+
```json
83+
"sar:swath": [
84+
{
85+
"id": "IW1",
86+
"relative_burst": 541,
87+
"polarizations": ["VV", "VH"],
88+
"view:incident_angle": 32.0
89+
},
90+
{
91+
"id": "IW2",
92+
"view:incident_angle": 34.0
93+
},
94+
{
95+
"id": "IW3",
96+
"view:incident_angle": 36.0
97+
}
98+
]
99+
```
100+
64101
### Common Frequency Band Names
65102

66103
The `sar:frequency_band` is the name that is commonly used to refer to that band's spectral
67104
properties. The table below shows the common name based on the wavelength and frequency ranges for several SAR satellites.
68105

69-
| Common Name | Wavelength Range (cm) | Frequency Range (GHz) | Satellites |
70-
| ----------- | --------------------- | --------------------- | ---------- |
71-
| P | 30 - 120 | 0.25 - 1 | |
72-
| L | 15 - 30 | 1 - 2 | ALOS, JERS, NISAR, SOACOM |
73-
| S | 7.5 - 15 | 2 - 4 | HJ-1C |
74-
| C | 3.8 - 7.5 | 4 - 8 | EnviSat, ERS, Radarsat, Risat-1, Sentinel-1 |
106+
| Common Name | Wavelength Range (cm) | Frequency Range (GHz) | Satellites |
107+
| ----------- | --------------------- | --------------------- | -------------------------------------------------- |
108+
| P | 30 - 120 | 0.25 - 1 | |
109+
| L | 15 - 30 | 1 - 2 | ALOS, JERS, NISAR, SOACOM |
110+
| S | 7.5 - 15 | 2 - 4 | HJ-1C |
111+
| C | 3.8 - 7.5 | 4 - 8 | EnviSat, ERS, Radarsat, Risat-1, Sentinel-1 |
75112
| X | 2.4 - 3.8 | 8 - 12.5 | Cosmo-SkyMed, TerraSAR-X, TanDEM-X, PAZ, KOMPSat-5 |
76-
| Ku | 1.7 - 2.4 | 12.5 - 18 | |
77-
| K | 1.1 - 1.7 | 18 - 26.5 | |
78-
| Ka | 0.75 - 1.1 | 26.5 - 40 | |
113+
| Ku | 1.7 - 2.4 | 12.5 - 18 | |
114+
| K | 1.1 - 1.7 | 18 - 26.5 | |
115+
| Ka | 0.75 - 1.1 | 26.5 - 40 | |
79116

80117
### Product type
81118

82119
The product type for SAR data defines the type of processed data contained in the assets.
83120
A list of suggestions for [`product:type`](https://github.com/stac-extensions/product) include:
84121

85-
| product:type | Type | Description |
86-
| ------------ | --------- | ----------- |
87-
| SSC | complex | Single-look Slant-range Complex image (standard SLC) |
88-
| MGD | amplitude | Multilooked Ground-range Detected image |
89-
| GRD | amplitude | Multilooked Ground-range Detected image (used by Sentinel-1) |
90-
| GEC | amplitude | Geocoded Ellipsoid Corrected image |
91-
| GTC | amplitude | Geocoded Terrain Corrected image |
92-
| RTC | amplitude | Geocoded Radiometrically Terrain Corrected image |
93-
| SGC | complex | Single-look Ground projected Complex image |
122+
| product:type | Type | Description |
123+
| ------------ | --------- | --------------------------------------------------------------- |
124+
| SSC | complex | Single-look Slant-range Complex image (standard SLC) |
125+
| MGD | amplitude | Multilooked Ground-range Detected image |
126+
| GRD | amplitude | Multilooked Ground-range Detected image (used by Sentinel-1) |
127+
| GEC | amplitude | Geocoded Ellipsoid Corrected image |
128+
| GTC | amplitude | Geocoded Terrain Corrected image |
129+
| RTC | amplitude | Geocoded Radiometrically Terrain Corrected image |
130+
| SGC | complex | Single-look Ground projected Complex image |
94131
| SLC | complex | Single-look Ground projected Complex image (used by Sentinel-1) |
95132

96133
This can vary by data provider, who all may use slightly different names.
@@ -113,19 +150,19 @@ to provide clients with more information about the assets in an item. The follow
113150
This list should not be considered definitive, and implementors are welcome to use other asset roles. If consensus and tooling consolidates around
114151
these role names then they will be specified in the future as more standard than just 'best practices'.
115152

116-
| Role Name | Description |
117-
| --------- | ---------------------------------------------------------------------- |
118-
| local-incidence-angle | Points to the local incidence angle file. |
119-
| ellipsoid-incidence-angle | Points to the ellipsoid incidence angle file. |
120-
| noise-power | Points to the noise power file. |
121-
| amplitude | Points to the intensity file with focused SAR data that has been ground range detected (e.g. GRD). |
122-
| magnitude | Points to the intensity file where data are represented as complex numbers containing amplitude and phase information (e.g SLC). |
123-
| sigma0 | Points to the radar backscatter file where data is referenced in ground surface. It is often derived from an `amplitude` or a `magnitude` role asset. |
124-
| beta0 | Points to the radar backscatter file where data is referenced in the slant range plane and is radiometrically calibrated. It is often derived from an `amplitude` or a `magnitude` role asset. |
125-
| gamma0 | Points to the radar backscatter file where data is referenced in the plane perpendicular to the line of sight. It is often derived from an `amplitude` or a `magnitude` role asset. |
126-
| date-offset | Points to the date-offset file. |
127-
| covmat | Points to the Points to the Normalized Polarimetric Radar Covariance Matrix (CovMat) file. |
128-
| prd | Points to the Polarimetric Radar Decomposition (PRD) file. |
153+
| Role Name | Description |
154+
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
155+
| local-incidence-angle | Points to the local incidence angle file. |
156+
| ellipsoid-incidence-angle | Points to the ellipsoid incidence angle file. |
157+
| noise-power | Points to the noise power file. |
158+
| amplitude | Points to the intensity file with focused SAR data that has been ground range detected (e.g. GRD). |
159+
| magnitude | Points to the intensity file where data are represented as complex numbers containing amplitude and phase information (e.g SLC). |
160+
| sigma0 | Points to the radar backscatter file where data is referenced in ground surface. It is often derived from an `amplitude` or a `magnitude` role asset. |
161+
| beta0 | Points to the radar backscatter file where data is referenced in the slant range plane and is radiometrically calibrated. It is often derived from an `amplitude` or a `magnitude` role asset. |
162+
| gamma0 | Points to the radar backscatter file where data is referenced in the plane perpendicular to the line of sight. It is often derived from an `amplitude` or a `magnitude` role asset. |
163+
| date-offset | Points to the date-offset file. |
164+
| covmat | Points to the Points to the Normalized Polarimetric Radar Covariance Matrix (CovMat) file. |
165+
| prd | Points to the Polarimetric Radar Decomposition (PRD) file. |
129166

130167
## Contributing
131168

examples/sentinel-1.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@
2828
"sar:looks_equivalent_number": 2.7,
2929
"sar:frequency_band": "C",
3030
"sar:center_frequency": 5.405,
31+
"sar:swath": [
32+
{
33+
"id": "EW",
34+
"polarizations": [
35+
"HH"
36+
],
37+
"view:incident_angle": 40.1
38+
}
39+
],
3140
"product:type": "GRD"
3241
},
3342
"geometry": {

json-schema/schema.json

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,7 @@
118118
"type": "array",
119119
"minItems": 1,
120120
"items": {
121-
"type": "string",
122-
"enum": [
123-
"HH",
124-
"VV",
125-
"HV",
126-
"VH"
127-
]
121+
"$ref": "#/definitions/polarizations"
128122
}
129123
},
130124
"sar:product_type": {
@@ -179,6 +173,13 @@
179173
"left",
180174
"right"
181175
]
176+
},
177+
"sar:swath": {
178+
"title": "Swath",
179+
"type": "array",
180+
"items": {
181+
"$ref": "#/definitions/beam"
182+
}
182183
}
183184
},
184185
"patternProperties": {
@@ -187,6 +188,52 @@
187188
}
188189
},
189190
"additionalProperties": false
191+
},
192+
"beam": {
193+
"anyOf": [
194+
{
195+
"type": "object",
196+
"properties": {
197+
"id": {
198+
"title": "Beam identification",
199+
"type": "string",
200+
"minLength": 1
201+
},
202+
"relative_burst": {
203+
"title": "Relative burst identificator",
204+
"type": "integer",
205+
"minimum": 0
206+
},
207+
"polarizations": {
208+
"title": "Polarizations",
209+
"type": "array",
210+
"minItems": 1,
211+
"items": {
212+
"$ref": "#/definitions/polarizations"
213+
}
214+
}
215+
},
216+
"additionalProperties": true
217+
},
218+
{
219+
"$ref": "https://stac-extensions.github.io/view/v1.0.0/schema.json#/definitions/fields",
220+
"additionalProperties": true
221+
},
222+
{
223+
"required": [
224+
"id"
225+
]
226+
}
227+
]
228+
},
229+
"polarizations": {
230+
"type": "string",
231+
"enum": [
232+
"HH",
233+
"VV",
234+
"HV",
235+
"VH"
236+
]
190237
}
191238
}
192-
}
239+
}

0 commit comments

Comments
 (0)