Skip to main content

Extend xarray.open_dataset to accept pystac objects

Project description

xpystac

xpystac provides the glue that allows xarray.open_dataset to accept pystac objects.

The goal is that as long as this library is in your env, you should never need to think about it.

Example

Search collection of COGs:

import pystac_client
import xarray as xr


catalog = pystac_client.Client.open(
    "https://earth-search.aws.element84.com/v1",
)

search = catalog.search(
    intersects=dict(type="Point", coordinates=[-105.78, 35.79]),
    collections=['sentinel-2-l2a'],
    datetime="2022-04-01/2022-05-01",
)

xr.open_dataset(search, engine="stac")

Here are a few examples from the Planetary Computer Docs

import planetary_computer
import pystac_client
import xarray as xr


catalog = pystac_client.Client.open(
    "https://planetarycomputer.microsoft.com/api/stac/v1",
    modifier=planetary_computer.sign_inplace,
)

Read from a reference file:

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

xr.open_dataset(asset)

ref: https://planetarycomputer.microsoft.com/dataset/nasa-nex-gddp-cmip6#Example-Notebook

Read from a zarr file:

collection = catalog.get_collection("daymet-daily-hi")
asset = collection.assets["zarr-abfs"]

xr.open_dataset(asset)

ref: https://planetarycomputer.microsoft.com/docs/quickstarts/reading-zarr-data/

Install

pip install git+https://github.com/stac-utils/xpystac

How it works

When you call xarray.open_dataset(object, engine="stac") this library maps that open call to the correct library. Depending on the type of object that might be a stacking library (either odc-stac or stackstac) or back to xarray.open_dataset itself but with the engine and other options pulled from the pystac object.

Prior Art

This work is inspired by https://github.com/TomAugspurger/staccontainers and the discussion in https://github.com/stac-utils/pystac/issues/846

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpystac-0.1.3.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

xpystac-0.1.3-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file xpystac-0.1.3.tar.gz.

File metadata

  • Download URL: xpystac-0.1.3.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for xpystac-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0fc56bce5280ae455f6b4fa9537062c5dc1f27773b26ebda1aa9063eff7f9416
MD5 fdcd9430a09bb51f7323055d4c57f0e0
BLAKE2b-256 d8d86909467f0af4c8b701447e717f3f9a402b8ba40a1875e8423663751fe8b9

See more details on using hashes here.

File details

Details for the file xpystac-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: xpystac-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for xpystac-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 16ef94911a9109f9c77d622acb6a7f7ae9516dc6e4f0489ac2150a696e754785
MD5 f64e7a1fee620a55034915409f60ac3e
BLAKE2b-256 520646d4236728b9327604d58e9f6ea7a10aad162567562538fbd58bfd96146e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page