Skip to content

stac

This module enables various operations from STAC catalogs.

Spot-6/7 DRS from Dinamis (experimental)

import dinamis_sdk
from stac_client import Client

api = Client.open(
    'https://stacapi-dinamis.apps.okd.crocc.meso.umontpellier.fr',
    modifier=dinamis_sdk.sign_inplace,
)
res = api.search(
    collections=["spot-6-7-drs"],
    bbox=[4.09, 43.99, 5, 44.01],
    datetime=['2020-01-01', '2021-01-01']
)

for item in res.items():
    sc = from_stac(item)
    assert isinstance(sc, Spot67DRSScene)
    print(sc)

Sentinel-2 images from Microsoft planetary computer

import planetary_computer
from stac_client import Client

api = Client.open(
    'https://planetarycomputer.microsoft.com/api/stac/v1',
    modifier=planetary_computer.sign_inplace,
)
res = api.search(
    collections=["sentinel-2-l2a"],
    bbox=[4.99, 43.99, 5, 44.01],
    datetime=['2020-01-01', '2020-01-08']
)

for item in res.items():
    sc = from_stac(item)
    assert isinstance(sc, Sentinel2MPCScene)
    print(sc)

from_stac(item)

Return a Scene object from a STAC item.

Parameters:

Name Type Description Default
item Item

STAC item

required

Returns:

Type Description
Scene

a Scene instance

Source code in scenes/stac.py
def from_stac(item: pystac.Item) -> Scene:
    """
    Return a `Scene` object from a STAC item.

    Args:
        item: STAC item

    Returns:
        a `Scene` instance

    """
    # S2 images from Microsoft Planetary
    assets_paths = _get_assets_paths(
        item=item,
        domains=["microsoft.com", "windows.net"],
        ids_prefixes=["S2A_MSIL2A", "S2B_MSIL2A"]
    )
    if assets_paths:
        return Sentinel2MPCScene(assets_paths=assets_paths)

    # Spot 6/7 images from Dinamis
    assets_paths = _get_assets_paths(
        item=item,
        domains=["dinamis.apps.okd.crocc.meso.umontpellier.fr"],
        ids_prefixes=["SPOT"]
    )
    if assets_paths:
        return Spot67DRSScene(assets_paths=assets_paths)

    raise ValueError("No Scene class for this stac item")