From f308de8b9224f232bb7e7138f55adf6c7019e015 Mon Sep 17 00:00:00 2001 From: konstntokas Date: Tue, 19 May 2026 12:37:26 +0200 Subject: [PATCH 1/4] small bugfix to prevent nan values at edges of bbox --- xarray_eopf/amodes/sentinel1.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/xarray_eopf/amodes/sentinel1.py b/xarray_eopf/amodes/sentinel1.py index 957ad85..cb1b29f 100644 --- a/xarray_eopf/amodes/sentinel1.py +++ b/xarray_eopf/amodes/sentinel1.py @@ -838,7 +838,7 @@ def simulate_acquisition( return out -def compute_dem_area(dem_ecef: xr.DataArray, gm_dem: xr.DataArray) -> xr.DataArray: +def compute_dem_area(dem_ecef: xr.DataArray, gm_dem: GridMapping) -> xr.DataArray: """Compute per-pixel surface area on the DEM in ECEF coordinates. Args: @@ -871,8 +871,16 @@ def compute_dem_area(dem_ecef: xr.DataArray, gm_dem: xr.DataArray) -> xr.DataArr # interpolate DEM to pixel corners chunksizes = {key: val[0] for key, val in dem_ecef.chunksizes.items()} - xyz_c = dem_ecef.interp({x_dim: x_corner}).chunk({x_dim: chunksizes[x_dim]}) - xyz_c = xyz_c.interp({y_dim: y_corner}).chunk(chunksizes) + xyz_c = dem_ecef.interp( + {x_dim: x_corner}, + method="linear", + kwargs={"fill_value": "extrapolate"}, + ).chunk({x_dim: chunksizes[x_dim]}) + xyz_c = xyz_c.interp( + {y_dim: y_corner}, + method="linear", + kwargs={"fill_value": "extrapolate"}, + ).chunk(chunksizes) # compute edge vectors dx = xyz_c.diff(x_dim) @@ -902,7 +910,7 @@ def compute_dem_area(dem_ecef: xr.DataArray, gm_dem: xr.DataArray) -> xr.DataArr def compute_gamma_area( - dem_ecef: xr.DataArray, gm_dem: xr.DataArray, direction: xr.DataArray + dem_ecef: xr.DataArray, gm_dem: GridMapping, direction: xr.DataArray ) -> xr.DataArray: """Compute gamma area by projecting DEM areas onto look direction. From da32b9fce5a4bba3553235456e535b263596e814 Mon Sep 17 00:00:00 2001 From: konstntokas Date: Wed, 3 Jun 2026 08:56:36 +0200 Subject: [PATCH 2/4] prep release --- CHANGES.md | 6 ++++-- xarray_eopf/version.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 634777e..7dd06f5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,8 @@ -## Changes in 0.2.9 (under development) +## Changes in 0.2.9 (from 2026-06-03) -- Add support for Sentinel-1 Level-2 OCN analysis mode. +- Added support for Sentinel-1 Level-2 OCN analysis mode. +- Fixed an issue in Sentinel-1 GRD analysis mode that could produce NaN values along + the edges of the bounding box. ## Changes in 0.2.8 (from 2026-05-08) diff --git a/xarray_eopf/version.py b/xarray_eopf/version.py index c73606e..89412f3 100644 --- a/xarray_eopf/version.py +++ b/xarray_eopf/version.py @@ -2,4 +2,4 @@ # Permissions are hereby granted under the terms of the Apache 2.0 License: # https://opensource.org/license/apache-2-0. -version = "0.2.9.dev0" +version = "0.2.9" From d151532fda6fa6de213cf8452285f51c21995371 Mon Sep 17 00:00:00 2001 From: konstntokas Date: Wed, 3 Jun 2026 09:04:18 +0200 Subject: [PATCH 3/4] updated notebooks --- docs/examples/sentinel_1_analysis.ipynb | 189 +++++++++++----------- examples/sentinel_1_analysis.ipynb | 206 ++++++++++++------------ 2 files changed, 196 insertions(+), 199 deletions(-) diff --git a/docs/examples/sentinel_1_analysis.ipynb b/docs/examples/sentinel_1_analysis.ipynb index 3117867..b618a81 100644 --- a/docs/examples/sentinel_1_analysis.ipynb +++ b/docs/examples/sentinel_1_analysis.ipynb @@ -81,8 +81,8 @@ "id": "c67a8abc-36ab-4565-892f-c7bce452c290", "metadata": { "ExecuteTime": { - "end_time": "2026-05-18T12:55:25.949433301Z", - "start_time": "2026-05-18T12:55:22.100469304Z" + "end_time": "2026-06-03T06:59:48.613045419Z", + "start_time": "2026-06-03T06:59:46.087988861Z" } }, "source": [ @@ -129,8 +129,8 @@ "id": "2be4cb76a3928b72", "metadata": { "ExecuteTime": { - "end_time": "2026-05-18T12:55:26.280041184Z", - "start_time": "2026-05-18T12:55:25.971145008Z" + "end_time": "2026-06-03T06:59:49.397369524Z", + "start_time": "2026-06-03T06:59:48.614703708Z" } }, "source": [ @@ -164,8 +164,8 @@ "id": "840b8162bc14b761", "metadata": { "ExecuteTime": { - "end_time": "2026-05-18T12:55:26.364930670Z", - "start_time": "2026-05-18T12:55:26.304870121Z" + "end_time": "2026-06-03T06:59:49.444787452Z", + "start_time": "2026-06-03T06:59:49.420897566Z" } }, "source": [ @@ -193,8 +193,8 @@ "id": "3e133ceea3f11bdb", "metadata": { "ExecuteTime": { - "end_time": "2026-05-18T12:55:26.439953214Z", - "start_time": "2026-05-18T12:55:26.368160553Z" + "end_time": "2026-06-03T06:59:49.501571865Z", + "start_time": "2026-06-03T06:59:49.447233818Z" } }, "source": [ @@ -213,8 +213,8 @@ "id": "eb5a775a8e8cb7fa", "metadata": { "ExecuteTime": { - "end_time": "2026-05-18T12:55:53.808408639Z", - "start_time": "2026-05-18T12:55:26.450028891Z" + "end_time": "2026-06-03T07:00:17.564923975Z", + "start_time": "2026-06-03T06:59:49.505991617Z" } }, "source": [ @@ -240,8 +240,8 @@ " ground_range (lat, lon) float64 16MB dask.array\n", " spatial_ref int64 8B ...\n", "Data variables:\n", - " gamma0_vv (lat, lon) float64 16MB dask.array\n", " gamma0_vh (lat, lon) float64 16MB dask.array\n", + " gamma0_vv (lat, lon) float64 16MB dask.array\n", "Attributes: (3)" ], "text/html": [ @@ -797,11 +797,11 @@ " ground_range (lat, lon) float64 16MB dask.array<chunksize=(1081, 1801), meta=np.ndarray>\n", " spatial_ref int64 8B ...\n", "Data variables:\n", - " gamma0_vv (lat, lon) float64 16MB dask.array<chunksize=(1081, 1800), meta=np.ndarray>\n", " gamma0_vh (lat, lon) float64 16MB dask.array<chunksize=(1081, 1800), meta=np.ndarray>\n", - "Attributes: (3)