sentineltoolbox
sentineltoolbox (stb) is a Python library for manipulating Copernicus Sentinel satellite products.
It provides I/O, conversion, documentation generation, validation and convenience utilities
on top of xarray.DataTree.
Sentinel products are described in the Copernicus Programme documentation.
Stable API
API stability is a core principle of sentineltoolbox: users must be able to upgrade to a newer version without rewriting any code.
All symbols exported by {obj}sentineltoolbox.api and {obj}sentineltoolbox.typedefs are stable. Stability is
All other modules are internal and must not be used directly.
See {doc}overview for the full feature list.
Installation
pip install eopf-cpm>=2.6
pip install sentineltoolbox
For development (editable install):
git clone <repository_url>
pip install -e ".[dev]"
uv
This project can use uv for dependency locking. The lockfile
(uv.lock) resolves optional extras separately when they have incompatible requirements
(see tool.uv.conflicts in pyproject.toml).
Runtime-only install (zarr v3, no eopf — default):
uv sync
Runtime-only with zarr v2 (no eopf). Cannot be combined with dev or zarr-v3:
uv sync --extra zarr-v2
Runtime-only with an explicit zarr v3 pin (same outcome as plain uv sync, no eopf):
uv sync --extra zarr-v3
Full development environment (zarr v3, no eopf, plus linters, tests, docs, etc.):
uv sync --extra dev
With eopf 2.x (>=2.6.0, zarr v2). Use a dedicated environment; this
extra cannot be combined with dev or zarr-v3:
uv sync --extra converter-v2 --no-dev
With eopf 3.x (pre-release, Python 3.13+, zarr v3 compatible). Cannot be combined
with converter-v2:
uv sync --extra converter --prerelease=allow --python 3.13
Optional extras:
| Extra | Purpose |
|---|---|
zarr-v2 |
Pin zarr to v2 without eopf |
zarr-v3 |
Explicitly pin zarr to v3 (included in dev; same as plain uv sync) |
converter-v2 |
eopf 2.x (>=2.6.0) for legacy conversion workflows (includes zarr v2 pin) |
converter |
eopf 3.x for conversion workflows |
cluster-plugin |
Dask cluster integration |
Note — eopf 2.x (
converter-v2) on Python 3.13eopf 2.x pins
rasterio==1.3.10, which has no Python 3.13 wheel and cannot be built from source in practice. Theconverter-v2extra is therefore a priori incompatible with Python 3.13 when usingpip.
uvon Python 3.13: installation works usinguvbecausetool.uv.override-dependenciesinpyproject.tomlrelaxes the rasterio pin to>=1.3.11.
pipon Python 3.11 or 3.12: use theconverter-v2extra directly:pip install ".[converter-v2]"
Quick start
from sentineltoolbox.api import open_datatree, display
xdt = open_datatree("path/to/product.zarr")
display(xdt)
Features
Open products, ADFs and other data files
Open DPR Zarr, JSON, or legacy SAFE/SEN3 data as DataTree or Dataset:
open_datatree,load_datatree— open/load a product asxarray.DataTreeopen_json— open JSONload_metadataload only metadata (very quick) from zarr and replace arrays with 1 element fake arrays.
Generate HTML documentation for products
Create rich interactive HTML summaries of DPR products directly in Jupyter or Sphinx:
display— render aDataTreeas an HTML table with metadata, flags, and structureprint_summary— compact text summary
Convert legacy products
Convert original S2/S3 products (.SAFE, .SEN3) and ADF to DPR Zarr format (.zarr):
- Supported products (via eopf-cpm mappings): S3 OLCI (EFR, ERR, LFR), S3 SLSTR (RBT, FRP, LST), S3 SYNERGY (AOD, SYN, VG1, VGP, VGK, V10), S2 MSI (L1A, L1B, L1C, L2A)
- Supported ADF (internal converters): S3 OLCI, SLSTR, SYNERGY
- CLI:
stb_convert_products,stb_eop_convert_products
Flag operations
Bitwise operations on CF-convention flag arrays:
create_flag_array— create a flag array with a given shape and bit depthupdate_flag— set or clear individual flagsget_flag— extract a boolean mask for a given flag
Parse and generate product file names
ProductFileNameGenerator,AdfFileNameGenerator— build DPR-compliant file names from legacy namesdetect_filename_pattern,filename_generator— detect product and ADF filename patterns (legacy, dpr) and instantiate generators
DataTree utilities
AttributeHandler— set, extract, and fix product attributesDataTreeHandler— high-level wrapper for product metadata and attributes (derived fromAttributeHandler)get_array,get_datatree— type-safe node access (no mypy errors)convert_to_datatree— convertdict,Dataset, orEOProducttoDataTreevalidate_datatree— validate structure, dtypes and attributes against a schemapatch_datatree— apply patches to aDataTree
Check processor inputs
Verify consistency of input products and ADFs before processing:
check_processor_inputs,check_adfs
Filesystem and credentials
Browse local or S3 filesystems transparently:
get_universal_path,get_fsspec_filesystem,get_url_and_credentialsS3BucketCredentials
Sentinel metadata databases
Cached, extensible JSON/TOML databases of product metadata, properties, naming conventions, and namespaces.
Environment and logging
init,init_jupyter_env— set up logging, xarray display, IPython formattersLoggerSuppressor,WarningsSuppressor— context managers for quiet execution
Command Line Tools
stb_convert_products— convert SAFE/SEN3 ADF and products (deprecated) to DPR Zarrstb_eop_convert_products— same using EOPF/CPM mappingsstb_compare_products— compare two products and summarize differencesstb_dump_product— dump product summary
API stability
Only symbols re-exported from sentineltoolbox.api are considered stable.
All other modules are internal and may change without notice.
Documentation
Full documentation: https://DPR-ACR.pages.eopf.copernicus.eu/sentineltoolbox
License
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Copyright
Copyright 2024-2026 ACRI-ST.
Metadata
Release files for sentineltoolbox 0.9.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sentineltoolbox-0.9.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / sentineltoolbox-0.9.2-py3-none-any.whl
| Download URL | sentineltoolbox-0.9.2-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
33e85619de822291e1e67cdfd166391f192ab56ebd66e4accd31d082900cffd7
|
|
BLAKE2b-256 checksum How to use checksums |
9f637e31dca23dc78144ae565a4c838ddfd194dadcb4540ee433a5df5edf2d33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|