Skip to content

Commit dfeab54

Browse files
authored
Add test for reference file as json on planetary computer (#10)
1 parent 24cb4f9 commit dfeab54

File tree

6 files changed

+323
-5
lines changed

6 files changed

+323
-5
lines changed

README.md

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@ 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:
9+
810
```python
9-
from pystac_client import Client
11+
import pystac_client
1012
import xarray as xr
1113

1214

13-
client = Client.open("https://earth-search.aws.element84.com/v0")
15+
catalog = pystac_client.Client.open(
16+
"https://earth-search.aws.element84.com/v0"
17+
)
1418

15-
search = client.search(
19+
search = catalog.search(
1620
intersects=dict(type="Point", coordinates=[-105.78, 35.79]),
1721
collections=['sentinel-s2-l2a-cogs'],
1822
datetime="2020-04-01/2020-05-01",
@@ -21,6 +25,26 @@ search = client.search(
2125
xr.open_dataset(search, engine="stac")
2226
```
2327

28+
Reference file example:
29+
30+
```python
31+
import planetary_computer
32+
import xarray as xr
33+
import pystac_client
34+
35+
36+
catalog = pystac_client.Client.open(
37+
"https://planetarycomputer.microsoft.com/api/stac/v1",
38+
modifier=planetary_computer.sign_inplace,
39+
)
40+
41+
collection = catalog.get_collection("nasa-nex-gddp-cmip6")
42+
asset = collection.assets["ACCESS-CM2.historical"]
43+
44+
xr.open_dataset(asset)
45+
```
46+
47+
2448
## Install
2549

2650
```bash

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+
- aiohttp
1112
- fsspec
1213
- planetary-computer
1314
- pystac-client
Lines changed: 274 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,274 @@
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 14:41:21 GMT
83+
Strict-Transport-Security:
84+
- max-age=15724800; includeSubDomains
85+
Vary:
86+
- Accept-Encoding
87+
X-Azure-Ref:
88+
- 0kUELZAAAAAATcXAcuTQLQp/r1/NbCoVPTU5aMjIxMDYwNjEzMDUzADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
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/nasa-nex-gddp-cmip6
107+
response:
108+
body:
109+
string: !!binary |
110+
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
181+
UbrKQBNkNgW0GLgu1V/ds0Qegu8ZTw==
182+
headers:
183+
Access-Control-Allow-Credentials:
184+
- 'true'
185+
Access-Control-Allow-Origin:
186+
- '*'
187+
Content-Encoding:
188+
- br
189+
Content-Length:
190+
- '4069'
191+
Content-Type:
192+
- application/json
193+
Date:
194+
- Fri, 10 Mar 2023 14:41:21 GMT
195+
Strict-Transport-Security:
196+
- max-age=15724800; includeSubDomains
197+
Vary:
198+
- Accept-Encoding
199+
X-Azure-Ref:
200+
- 0kUELZAAAAAChLP4T1qYvS4/mixJSqKBhTU5aMjIxMDYwNjEzMDUzADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
201+
X-Cache:
202+
- CONFIG_NOCACHE
203+
status:
204+
code: 200
205+
message: OK
206+
- request:
207+
body: null
208+
headers:
209+
Accept:
210+
- '*/*'
211+
Accept-Encoding:
212+
- gzip, deflate, br
213+
Connection:
214+
- keep-alive
215+
User-Agent:
216+
- python-requests/2.28.2
217+
method: GET
218+
uri: https://planetarycomputer.microsoft.com/api/sas/v1/token/nasagddp/nex-gddp-cmip6-references
219+
response:
220+
body:
221+
string: '{"msft:expiry":"2023-03-10T15:26:22Z","token":"st=2023-03-09T14%3A41%3A22Z&se=2023-03-10T15%3A26%3A22Z&sp=rl&sv=2021-06-08&sr=c&skoid=c85c15d6-d1ae-42d4-af60-e2ca0f81359b&sktid=72f988bf-86f1-41af-91ab-2d7cd011db47&skt=2023-03-10T14%3A41%3A21Z&ske=2023-03-17T14%3A41%3A21Z&sks=b&skv=2021-06-08&sig=CLzwCkCFODmCPycaEIvkGOmEsgKy1SR%2BKFB8t055CcI%3D"}'
222+
headers:
223+
Content-Length:
224+
- '347'
225+
Content-Type:
226+
- application/json
227+
Date:
228+
- Fri, 10 Mar 2023 14:41:22 GMT
229+
Request-Context:
230+
- appId=cid-v1:75161b1b-6883-4b66-9410-715040c44427
231+
Strict-Transport-Security:
232+
- max-age=15724800; includeSubDomains
233+
X-Azure-Ref:
234+
- 0kUELZAAAAADYm+fYCwU1Q7linTDfMrVCTU5aMjIxMDYwNjEzMDI3ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
235+
X-Cache:
236+
- CONFIG_NOCACHE
237+
status:
238+
code: 200
239+
message: OK
240+
- request:
241+
body: null
242+
headers:
243+
Accept:
244+
- '*/*'
245+
Accept-Encoding:
246+
- gzip, deflate, br
247+
Connection:
248+
- keep-alive
249+
User-Agent:
250+
- python-requests/2.28.2
251+
method: GET
252+
uri: https://planetarycomputer.microsoft.com/api/sas/v1/token/pcstacitems/items
253+
response:
254+
body:
255+
string: '{"msft:expiry":"2023-03-10T15:26:23Z","token":"st=2023-03-09T14%3A41%3A23Z&se=2023-03-10T15%3A26%3A23Z&sp=rl&sv=2021-06-08&sr=c&skoid=c85c15d6-d1ae-42d4-af60-e2ca0f81359b&sktid=72f988bf-86f1-41af-91ab-2d7cd011db47&skt=2023-03-10T05%3A08%3A48Z&ske=2023-03-17T05%3A08%3A48Z&sks=b&skv=2021-06-08&sig=JENqm24/FVlU0sbnJk4F9f6IYLlGIRmYr1OYGiWW/KE%3D"}'
256+
headers:
257+
Content-Length:
258+
- '345'
259+
Content-Type:
260+
- application/json
261+
Date:
262+
- Fri, 10 Mar 2023 14:41:22 GMT
263+
Request-Context:
264+
- appId=cid-v1:75161b1b-6883-4b66-9410-715040c44427
265+
Strict-Transport-Security:
266+
- max-age=15724800; includeSubDomains
267+
X-Azure-Ref:
268+
- 0kkELZAAAAADPAvNJCHu/Sa0MqBtpJWmDTU5aMjIxMDYwNjE0MDIxADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
269+
X-Cache:
270+
- CONFIG_NOCACHE
271+
status:
272+
code: 200
273+
message: OK
274+
version: 1

tests/conftest.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import planetary_computer
12
import pystac
23
import pystac_client
34
import pytest
@@ -13,7 +14,7 @@
1314

1415
@pytest.fixture(scope="module")
1516
def simple_item() -> pystac.Item:
16-
path = "https://raw.githubusercontent.com/stac-utils/pystac/2.0/tests/data-files/examples/1.0.0/simple-item.json"
17+
path = "https://raw.githubusercontent.com/stac-utils/pystac/v1.7.0/tests/data-files/examples/1.0.0/simple-item.json"
1718
return pystac.Item.from_file(path)
1819

1920

@@ -33,3 +34,14 @@ def simple_search() -> pystac_client.ItemSearch:
3334
collections=["sentinel-s2-l2a-cogs"],
3435
datetime="2020-05-01",
3536
)
37+
38+
39+
@pytest.fixture(scope="module")
40+
def simple_reference_file() -> pystac.Asset:
41+
with vcr.use_cassette("tests/cassettes/fixtures/simple_reference_file.yaml"):
42+
client = pystac_client.Client.open(
43+
STAC_URLS["PLANETARY-COMPUTER"],
44+
modifier=planetary_computer.sign_inplace,
45+
)
46+
collection = client.get_collection("nasa-nex-gddp-cmip6")
47+
return collection.assets["ACCESS-CM2.historical"]

tests/test_core.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,8 @@ def test_to_xarray_with_drop_variables_raises(simple_search):
2121
def test_to_xarray_with_bad_type():
2222
with pytest.raises(TypeError):
2323
to_xarray("foo")
24+
25+
26+
def test_to_xarray_reference_file(simple_reference_file):
27+
ds = to_xarray(simple_reference_file)
28+
assert ds

xpystac/core.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ def _(
3434
def _(obj: pystac.Asset, **kwargs) -> xarray.Dataset:
3535
open_kwargs = obj.extra_fields.get("xarray:open_kwargs", {})
3636

37-
if obj.media_type == pystac.MediaType.JSON and "index" in obj.roles:
37+
if obj.media_type == pystac.MediaType.JSON and {"index", "references"}.intersection(
38+
obj.roles
39+
):
3840
requests = _import_optional_dependency("requests")
3941
fsspec = _import_optional_dependency("fsspec")
4042
r = requests.get(obj.href)

0 commit comments

Comments
 (0)