diff --git a/CHANGES.md b/CHANGES.md index ab71d64..843c791 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,9 @@ (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. +- Added footprint-based subsetting for Sentinel-3 OLCI and SLSTR LST using STAC + metadata, improving performance by avoiding full latitude/longitude grid downloads + during subsetting. ## Changes in 0.2.7 (from 2026-03-27) diff --git a/examples/sentinel_3_analysis.ipynb b/examples/sentinel_3_analysis.ipynb index 3380548..e4efaf9 100644 --- a/examples/sentinel_3_analysis.ipynb +++ b/examples/sentinel_3_analysis.ipynb @@ -66,16 +66,21 @@ }, { "cell_type": "code", - "execution_count": 1, "id": "c67a8abc-36ab-4565-892f-c7bce452c290", - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2026-04-27T10:22:07.171276636Z", + "start_time": "2026-04-27T10:22:04.452183723Z" + } + }, "source": [ "import matplotlib.pyplot as plt\n", "import pyproj\n", "import pystac_client\n", "import xarray as xr" - ] + ], + "outputs": [], + "execution_count": 1 }, { "cell_type": "markdown", @@ -106,10 +111,13 @@ "id": "61aaf5bf32d1b1fb" }, { - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2026-04-27T10:22:07.515673229Z", + "start_time": "2026-04-27T10:22:07.176280109Z" + } + }, "cell_type": "code", - "outputs": [], - "execution_count": null, "source": [ "catalog = pystac_client.Client.open(\"https://stac.core.eopf.eodc.eu\")\n", "items = list(\n", @@ -121,17 +129,34 @@ ")\n", "items" ], - "id": "1642d3ef3ac4e706" + "id": "1642d3ef3ac4e706", + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 2 }, { "cell_type": "code", - "execution_count": 3, "id": "bc0f93c0-6539-4937-b775-d6061b136909", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2026-04-27T10:22:07.581089402Z", + "start_time": "2026-04-27T10:22:07.526825285Z" + } + }, + "source": "item = items[0]", "outputs": [], - "source": [ - "item = items[0]" - ] + "execution_count": 3 }, { "cell_type": "markdown", @@ -147,12 +172,47 @@ }, { "cell_type": "code", - "execution_count": 4, "id": "76045d5f-3085-4bbf-b201-9e45d0f98253", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2026-04-27T10:22:37.024210961Z", + "start_time": "2026-04-27T10:22:07.582992042Z" + } + }, + "source": [ + "ds = xr.open_dataset(\n", + " item.assets[\"product\"].href,\n", + " engine=\"eopf-zarr\",\n", + " chunks={}\n", + ")\n", + "ds" + ], "outputs": [ { "data": { + "text/plain": [ + " Size: 4GB\n", + "Dimensions: (lon: 5157, lat: 4791)\n", + "Coordinates:\n", + " * lon (lon) float64 41kB -4.786 -4.782 -4.778 ... 15.21 15.22 15.22\n", + " * lat (lat) float64 38kB 52.46 52.46 52.46 ... 39.56 39.56 39.55\n", + " spatial_ref int64 8B ...\n", + "Data variables: (12/21)\n", + " oa01_radiance (lat, lon) float64 198MB dask.array\n", + " oa02_radiance (lat, lon) float64 198MB dask.array\n", + " oa03_radiance (lat, lon) float64 198MB dask.array\n", + " oa04_radiance (lat, lon) float64 198MB dask.array\n", + " oa05_radiance (lat, lon) float64 198MB dask.array\n", + " oa06_radiance (lat, lon) float64 198MB dask.array\n", + " ... ...\n", + " oa16_radiance (lat, lon) float64 198MB dask.array\n", + " oa17_radiance (lat, lon) float64 198MB dask.array\n", + " oa18_radiance (lat, lon) float64 198MB dask.array\n", + " oa19_radiance (lat, lon) float64 198MB dask.array\n", + " oa20_radiance (lat, lon) float64 198MB dask.array\n", + " oa21_radiance (lat, lon) float64 198MB dask.array\n", + "Attributes: (9)" + ], "text/html": [ "
\n", "\n", @@ -716,9 +776,9 @@ " oa19_radiance (lat, lon) float64 198MB dask.array<chunksize=(2048, 2048), meta=np.ndarray>\n", " oa20_radiance (lat, lon) float64 198MB dask.array<chunksize=(2048, 2048), meta=np.ndarray>\n", " oa21_radiance (lat, lon) float64 198MB dask.array<chunksize=(2048, 2048), meta=np.ndarray>\n", - "Attributes: (9)