You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
named `eopf` to xcube. The data store is used to access ESA EOPF data products as an
11
+
`xcube-eopf` is a Python package and [xcube plugin](https://xcube.readthedocs.io/en/latest/plugins.html) that adds a [data store](https://xcube.readthedocs.io/en/latest/api.html#data-store-framework)
12
+
named `eopf-zarr` to xcube. The data store is used to access ESA EOPF data products as an
7
13
analysis-ready datacube (ARDC).
8
14
15
+
## Features
16
+
17
+
> **IMPORTANT**
18
+
> `xcube-eopf` is currently under active development.
19
+
> Some features may be partially implemented or still in progress.
20
+
21
+
The EOPF xcube data store is designed to provide analysis-ready data cubes from the
22
+
EOPF Sentinel Zarr samples for Sentinel-1, Sentinel-2, and Sentinel-3 missions. The
23
+
main features are summarized below. A more in depth documentation is given in the
24
+
[User Guide](guide.md).
25
+
26
+
Currently, support is focused on **Sentinel-2** products.
27
+
28
+
29
+
### Sentinel-1
30
+
31
+
Support for Sentinel-1 will be added in an upcoming release.
32
+
33
+
34
+
### Sentinel-2
35
+
36
+
The current implementation supports two Sentinel-2 product levels, available as
spatial_res=10/111320, # meters to degrees (approx.)
71
+
crs="EPSG:4326",
72
+
variables=["b02", "b03", "b04", "scl"],
73
+
)
74
+
```
75
+
76
+
### Sentinel-3
77
+
78
+
Support for Sentinel-3 products will be added in an upcoming release.
79
+
80
+
81
+
82
+
## Usage
83
+
84
+
The `xcube-eopf` package can be installed from PyPI (`pip install xcube-eopf`)
85
+
or conda-forge (`conda install -c conda-forge xcube-eopf`).
86
+
After installation, you are ready to go and use the `"eopf-zarr"` argument to initiate
87
+
a xcube EOPF data store.
88
+
89
+
```python
90
+
from xcube.core.store import new_data_store
91
+
92
+
store = new_data_store("eopf-zarr")
93
+
ds = store.open_data(
94
+
data_id="sentinel-2-l2a",
95
+
bbox=[9.7, 53.4, 10.3, 53.7],
96
+
time_range=["2025-05-01", "2025-05-07"],
97
+
spatial_res=10/111320, # meters converted to degrees (approx.)
98
+
crs="EPSG:4326",
99
+
variables=["b02", "b03", "b04", "scl"],
100
+
)
101
+
```
9
102
10
103
## Development
11
104
@@ -30,6 +123,17 @@ mamba activate xcube-eopf
30
123
pip install -ve .
31
124
pytest
32
125
```
126
+
By default, this will run all unit tests. To run integration tests, use:
127
+
128
+
```shell
129
+
pytest integration
130
+
```
131
+
132
+
To run tests and generate a coverage report, use:
133
+
134
+
```shell
135
+
pytest --cov xcube_eopf --cov-report html tests
136
+
```
33
137
34
138
### Some notes on the strategy of unit-testing
35
139
@@ -47,7 +151,6 @@ wants to write cassettes which are not saved already, `--record-mode once` can b
47
151
[pytest-recording](https://pypi.org/project/pytest-recording/) supports all records modes given by [VCR.py](https://vcrpy.readthedocs.io/en/latest/usage.html#record-modes).
48
152
After recording the cassettes, testing can be performed as usual.
0 commit comments