Skip to content

Commit 05b95f0

Browse files
authored
Add a test and example for zarr (#11)
1 parent dfeab54 commit 05b95f0

File tree

6 files changed

+258
-3
lines changed

6 files changed

+258
-3
lines changed

README.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The goal is that as long as this library is in your env, you should never need t
55

66
## Example
77

8-
Search collection of COGs example:
8+
Search collection of COGs:
99

1010
```python
1111
import pystac_client
@@ -25,25 +25,42 @@ search = catalog.search(
2525
xr.open_dataset(search, engine="stac")
2626
```
2727

28-
Reference file example:
28+
Here are a few examples from the [Planetary Computer Docs](https://planetarycomputer.microsoft.com/docs/overview/about)
29+
2930

3031
```python
3132
import planetary_computer
32-
import xarray as xr
3333
import pystac_client
34+
import xarray as xr
3435

3536

3637
catalog = pystac_client.Client.open(
3738
"https://planetarycomputer.microsoft.com/api/stac/v1",
3839
modifier=planetary_computer.sign_inplace,
3940
)
41+
```
42+
43+
Read from a reference file:
44+
45+
```python
4046

4147
collection = catalog.get_collection("nasa-nex-gddp-cmip6")
4248
asset = collection.assets["ACCESS-CM2.historical"]
4349

4450
xr.open_dataset(asset)
4551
```
52+
ref: https://planetarycomputer.microsoft.com/dataset/nasa-nex-gddp-cmip6#Example-Notebook
4653

54+
Read from a zarr file:
55+
56+
```python
57+
58+
collection = catalog.get_collection("daymet-daily-hi")
59+
asset = collection.assets["zarr-abfs"]
60+
61+
xr.open_dataset(asset)
62+
```
63+
ref: https://planetarycomputer.microsoft.com/docs/quickstarts/reading-zarr-data/
4764

4865
## Install
4966

environment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ dependencies:
88
- pystac
99
- xarray
1010
# optional
11+
- adlfs
1112
- aiohttp
1213
- fsspec
1314
- planetary-computer
Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,217 @@
1+
interactions:
2+
- request:
3+
body: null
4+
headers:
5+
Accept:
6+
- '*/*'
7+
Accept-Encoding:
8+
- gzip, deflate, br
9+
Connection:
10+
- keep-alive
11+
User-Agent:
12+
- python-requests/2.28.2
13+
method: GET
14+
uri: https://planetarycomputer.microsoft.com/api/stac/v1
15+
response:
16+
body:
17+
string: !!binary |
18+
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
69+
S03vOXSrC+SIw6yaVPzyn18A
70+
headers:
71+
Access-Control-Allow-Credentials:
72+
- 'true'
73+
Access-Control-Allow-Origin:
74+
- '*'
75+
Content-Encoding:
76+
- br
77+
Content-Length:
78+
- '2925'
79+
Content-Type:
80+
- application/json
81+
Date:
82+
- Fri, 10 Mar 2023 15:01:33 GMT
83+
Strict-Transport-Security:
84+
- max-age=15724800; includeSubDomains
85+
Vary:
86+
- Accept-Encoding
87+
X-Azure-Ref:
88+
- 0TkYLZAAAAAA+mnRemjJDT5tx8W62wh7OTU5aMjIxMDYwNjE0MDQ5ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
89+
X-Cache:
90+
- CONFIG_NOCACHE
91+
status:
92+
code: 200
93+
message: OK
94+
- request:
95+
body: null
96+
headers:
97+
Accept:
98+
- '*/*'
99+
Accept-Encoding:
100+
- gzip, deflate, br
101+
Connection:
102+
- keep-alive
103+
User-Agent:
104+
- python-requests/2.28.2
105+
method: GET
106+
uri: https://planetarycomputer.microsoft.com/api/stac/v1/collections/daymet-daily-hi
107+
response:
108+
body:
109+
string: !!binary |
110+
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
159+
headers:
160+
Access-Control-Allow-Credentials:
161+
- 'true'
162+
Access-Control-Allow-Origin:
163+
- '*'
164+
Content-Encoding:
165+
- br
166+
Content-Length:
167+
- '2771'
168+
Content-Type:
169+
- application/json
170+
Date:
171+
- Fri, 10 Mar 2023 15:01:34 GMT
172+
Strict-Transport-Security:
173+
- max-age=15724800; includeSubDomains
174+
Vary:
175+
- Accept-Encoding
176+
X-Azure-Ref:
177+
- 0TkYLZAAAAAA9mTCMbEWPRpsnVV+LDuuRTU5aMjIxMDYwNjE0MDQ5ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
178+
X-Cache:
179+
- CONFIG_NOCACHE
180+
status:
181+
code: 200
182+
message: OK
183+
- request:
184+
body: null
185+
headers:
186+
Accept:
187+
- '*/*'
188+
Accept-Encoding:
189+
- gzip, deflate, br
190+
Connection:
191+
- keep-alive
192+
User-Agent:
193+
- python-requests/2.28.2
194+
method: GET
195+
uri: https://planetarycomputer.microsoft.com/api/sas/v1/token/daymeteuwest/daymet-zarr
196+
response:
197+
body:
198+
string: '{"msft:expiry":"2023-03-10T15:46:35Z","token":"st=2023-03-09T15%3A01%3A35Z&se=2023-03-10T15%3A46%3A35Z&sp=rl&sv=2021-06-08&sr=c&skoid=c85c15d6-d1ae-42d4-af60-e2ca0f81359b&sktid=72f988bf-86f1-41af-91ab-2d7cd011db47&skt=2023-03-04T03%3A47%3A09Z&ske=2023-03-11T03%3A47%3A09Z&sks=b&skv=2021-06-08&sig=awHouLOuDvbjcE1YNRnYrTGx7hjrVouJfY4KI/DNzz8%3D"}'
199+
headers:
200+
Content-Length:
201+
- '345'
202+
Content-Type:
203+
- application/json
204+
Date:
205+
- Fri, 10 Mar 2023 15:01:35 GMT
206+
Request-Context:
207+
- appId=cid-v1:75161b1b-6883-4b66-9410-715040c44427
208+
Strict-Transport-Security:
209+
- max-age=15724800; includeSubDomains
210+
X-Azure-Ref:
211+
- 0T0YLZAAAAACOgRrebyhLRLr48Zi9kqy+TU5aMjIxMDYwNjEzMDI5ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
212+
X-Cache:
213+
- CONFIG_NOCACHE
214+
status:
215+
code: 200
216+
message: OK
217+
version: 1

tests/conftest.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,14 @@ def simple_reference_file() -> pystac.Asset:
4545
)
4646
collection = client.get_collection("nasa-nex-gddp-cmip6")
4747
return collection.assets["ACCESS-CM2.historical"]
48+
49+
50+
@pytest.fixture(scope="module")
51+
def simple_zarr() -> pystac.Asset:
52+
with vcr.use_cassette("tests/cassettes/fixtures/simple_zarr.yaml"):
53+
catalog = pystac_client.Client.open(
54+
STAC_URLS["PLANETARY-COMPUTER"],
55+
modifier=planetary_computer.sign_inplace,
56+
)
57+
collection = catalog.get_collection("daymet-daily-hi")
58+
return collection.assets["zarr-abfs"]

tests/test_core.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,8 @@ def test_to_xarray_with_bad_type():
2626
def test_to_xarray_reference_file(simple_reference_file):
2727
ds = to_xarray(simple_reference_file)
2828
assert ds
29+
30+
31+
def test_to_xarray_zarr(simple_zarr):
32+
ds = to_xarray(simple_zarr)
33+
ds

xpystac/core.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ def _(
3434
def _(obj: pystac.Asset, **kwargs) -> xarray.Dataset:
3535
open_kwargs = obj.extra_fields.get("xarray:open_kwargs", {})
3636

37+
storage_options = obj.extra_fields.get("xarray:storage_options", None)
38+
if storage_options:
39+
open_kwargs["storage_options"] = storage_options
40+
3741
if obj.media_type == pystac.MediaType.JSON and {"index", "references"}.intersection(
3842
obj.roles
3943
):

0 commit comments

Comments
 (0)