Sentinel-3 OLCI L1 EFR Data Access
Demonstrate how to access Sentinel-3 OLCI L1 EFR data in EOPF Zarr format

Table of Contents¶
Run this notebook interactively with all dependencies pre-installed
This notebook contain the most common data access procedures for the Sentinel-3 OLCI L1 EFR EOPF Zarr data collection.
For more examples on how to use the data in different application scenarios, please refer to the EOPF Sample Notebooks available at: https://
Discover Products using STAC¶
Discover Sentinel-3 OLCI L1 EFR products using the EOPF STAC catalog at https://stac.core.eopf.eodc.eu.
The STAC Collection is https://stac.core.eopf.eodc.eu/collections/sentinel-3-olci-l1-efr .
import pystac_client
from datetime import datetime, timedelta
from xcube.core.store import new_data_store
import xarray as xr
xr.set_options(display_expand_attrs=False)<xarray.core.options.set_options at 0x7fa3733d2550>STAC_URL = "https://stac.core.eopf.eodc.eu"
catalog = pystac_client.Client.open(STAC_URL)
# Define area of interest
bbox = [11.2, 45.5, 11.3, 45.6]
# Look for all products starting from the first date until the present
temporal_extent = ["2025-12-01", None]
print("Discovering Sentinel-3 OLCI L1 EFR products from STAC catalog...")
s3_items = list(
catalog.search(
collections=["sentinel-3-olci-l1-efr"],
bbox=bbox,
datetime=temporal_extent,
).items()
)
print(f"Found {len(s3_items)} Sentinel-3 OLCI L1 EFR products")Discovering Sentinel-3 OLCI L1 EFR products from STAC catalog...
Found 44 Sentinel-3 OLCI L1 EFR products
Open a single product with xarray¶
This step will open a Sentinel-3 OLCI L1 EFR product as an Xarray.DataTree object.
stac_item = s3_items[-1]
zarr_url = stac_item.assets["product"].href
ds = xr.open_datatree(zarr_url, engine="zarr")
dsOpen a single product with xarray-eopf¶
This step will open a Sentinel-3 OLCI L1 EFR product as an Xarray.Dataset object.
For the package documentation please visit https://
ds = xr.open_dataset(zarr_url, engine="eopf-zarr")
dsOpen multiple products with xcube-eopf¶
This step will combine all the products into a datacube.
For the package documentation please visit https://
# Define area of interest
bbox = [11.2, 45.5, 11.3, 45.6]
# Temporal extent: today - 10 days to today
today = datetime.utcnow().date()
start_date = today - timedelta(days=10)
temporal_extent = [str(start_date), str(today)]
store = new_data_store("eopf-zarr")
ds = store.open_data(
data_id="sentinel-3-olci-l1-efr",
bbox=bbox,
spatial_res=0.0027,
time_range=temporal_extent,
crs="EPSG:4326",
variables=["oa01_radiance", "oa02_radiance"],
)
ds