Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
## Changes in 0.2.9 (under development)

- Add support for Sentinel-1 Level-2 OCN analysis mode.

## Changes in 0.2.8 (from 2026-05-08)

- Fix package discovery in `pyproject.toml` to ensure only `xarray_eopf`
(and its subpackages) is included in the PyPI wheel.
- Remove the `coarsen.py` module, as it has been moved to [xcube-resampling](https://github.com/xcube-dev/xcube-resampling)
and is no longer used internally.
- Add support for Sentinel-1 GRD analysis mode.
- Add support for Sentinel-1 Level-1 GRD analysis mode.
- Updated year in the headers.
- Added footprint-based subsetting for Sentinel-3 OLCI and SLSTR LST using STAC
metadata, improving performance by avoiding full latitude/longitude grid downloads
Expand Down
2,038 changes: 1,921 additions & 117 deletions docs/examples/sentinel_1_analysis.ipynb

Large diffs are not rendered by default.

76 changes: 67 additions & 9 deletions docs/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,17 @@ Additional parameters specific to each Sentinel mission are described below.

#### Remarks on Specific Sentinel Missions

##### Sentinel-1
Processing workflows differ significantly across Sentinel-1 product types. Therefore,
each product family is documented in its own dedicated section.

> **Note:** Support for SLC products is planned for a future release.

##### Sentinel-1 Level-1 GRD

> Note: Support for Sentinel-1 GRD products in analysis mode is
> currently experimental and undergoing validation. Support for SLC products is
> planned for a future release.
> currently experimental and undergoing validation.

Sentinel-1 GRD data is provided in radar geometry, defined by the coordinates
Sentinel-1 Level-1 GRD data is provided in radar geometry, defined by the coordinates
(`azimuth_time`, `ground_range`). To transform this data into an
**analysis-ready dataset**, the following processing steps are applied:

Expand All @@ -77,17 +81,16 @@ Sentinel-1 GRD data is provided in radar geometry, defined by the coordinates

📖 [D. Small, *Flattening Gamma: Radiometric Terrain Correction for SAR Imagery*](https://ieeexplore.ieee.org/document/5752845)


**Supported Products:**

- [Sentinel-1 GRD](https://stac.browser.user.eopf.eodc.eu/collections/sentinel-1-l1-grd)
- [Sentinel-1 Level-1 GRD](https://stac.browser.user.eopf.eodc.eu/collections/sentinel-1-l1-grd)

**Supported Variables**

- **Polarization bands**:
`vv`, `vh`, `hh`, `hv` *(each GRD product contains only a subset of these bands)*

**Specific Sentinel-1 parameters `**kwargs`:**
**Specific Sentinel-1 Level-1 GRD parameters `**kwargs`:**

- `crs`: Coordinate reference system of the output dataset. Can be provided as a
`str` or a `pyproj.CRS` object. If a string is given, it will be parsed using
Expand All @@ -113,6 +116,61 @@ Examples:

- [Docs – Sentinel-1 Analysis Mode](https://eopf-sample-service.github.io/xarray-eopf/examples/sentinel_1_analysis/)

##### Sentinel-1 Level-2 OCN

Sentinel-1 Level-2 OCN products are geolocated datasets provided on their
**native grid**, where each pixel is associated with an individual
latitude/longitude pair. As a result, the spatial coordinates form a
**2D irregular grid** rather than a regular latitude/longitude raster.

The analysis mode uses the [rectification algorithm from xcube-resampling](https://xcube-dev.github.io/xcube-resampling/guide/#3-rectification)
to transform the irregular grid into a regular spatial grid with 1D latitude and
longitude coordinates.

**Supported Products:**

- [Sentinel-1 Level-2 OCN](https://stac.browser.user.eopf.eodc.eu/collections/sentinel-1-l2-ocn)

**Supported Variables**

- **Wind Variables**:
`wind_speed`, `wind_direction`
- **Auxiliary Variables**:
`inversion_quality`, `wind_quality`, `percentage_bright_points`

**Specific Sentinel-1 Level-2 OCN parameters `**kwargs`:**

- `crs`: Coordinate reference system of the output dataset. Can be provided as a
`str` or a `pyproj.CRS` object. If a string is given, it will be parsed using
[`pyproj.crs.CRS.from_string`](https://pyproj4.github.io/pyproj/dev/api/crs/crs.html#pyproj.crs.CRS.from_string).
If not specified, [EPSG:4326](https://epsg.io/4326) is used.
- `resolution`: Target resolution for all spatial variables expressed in the units
of the specified `crs`. If not specified, the resolution is derived from the data.
- `interp_methods`: for upsampling / interpolating
spatial data variables. Can be a single interpolation method for all
variables or a dictionary mapping variable names or dtypes to
interpolation method. Supported methods include:

- `0` (nearest neighbor)
- `1` (linear / bilinear)
- `"nearest"`
- `"triangular"`
- `"bilinear"`

The default is `0` for integer arrays,
else `1`. For more information view [xcube-resampling Documentation](https://xcube-dev.github.io/xcube-resampling/guide/#spatial-resampling-algorithms).
- `agg_methods`: Optional aggregation methods to be used for downsampling
spatial data variables / bands. Can be a single method for all variables or
a dictionary mapping variable names or dtypes to methods. Supported methods include:
`"center"`, `"count"`, `"first"`, `"last"`, `"max"`, `"mean"`, `"median"`,
`"mode"`, `"min"`, `"prod"`, `"std"`, `"sum"`, and `"var"`.
Defaults to `"center"` for integer arrays, else `"mean"`.
For more information view [xcube-resampling Documentation](https://xcube-dev.github.io/xcube-resampling/guide/#spatial-resampling-algorithms).

Examples:

- [Docs – Sentinel-1 Analysis Mode](https://eopf-sample-service.github.io/xarray-eopf/examples/sentinel_1_analysis/)


##### Sentinel-2

Expand Down Expand Up @@ -253,14 +311,14 @@ for details.
- `"triangular"`
- `"bilinear"`

The default is `0` for integer arrays (e.g. Sentinel-2 L2A SCL),
The default is `0` for integer arrays,
else `1`. For more information view [xcube-resampling Documentation](https://xcube-dev.github.io/xcube-resampling/guide/#spatial-resampling-algorithms).
- `agg_methods`: Optional aggregation methods to be used for downsampling
spatial data variables / bands. Can be a single method for all variables or
a dictionary mapping variable names or dtypes to methods. Supported methods include:
`"center"`, `"count"`, `"first"`, `"last"`, `"max"`, `"mean"`, `"median"`,
`"mode"`, `"min"`, `"prod"`, `"std"`, `"sum"`, and `"var"`.
Defaults to `"center"` for integer arrays (e.g. Sentinel-2 L2A SCL), else `"mean"`.
Defaults to `"center"` for integer arrays, else `"mean"`.
For more information view [xcube-resampling Documentation](https://xcube-dev.github.io/xcube-resampling/guide/#spatial-resampling-algorithms).

The spatial resampling of datasets is performed using [xcube-resampling](https://xcube-dev.github.io/xcube-resampling/).
Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dependencies:
- rioxarray
- s3fs
- xarray >=2024.10
- xcube-resampling >=0.3.2
- xcube-resampling >=0.3.3
- zarr >=2.11, <3
# Development Dependencies - Tools
- black
Expand Down
Loading
Loading