Source code for easystac.planetary.image_collection
import json
import os
import warnings
from pathlib import Path
import planetary_computer as pc
import stackstac
from ..base import BaseImageCollection
warnings.simplefilter("always", UserWarning)
[docs]class ImageCollection(BaseImageCollection):
"""ImageCollection object for Planetary Computer.
This object mimics the Earth Engine filtering methods for ee.ImageCollection class and
makes them available for the Planetary Computer STAC. Items signing is automatically
done.
Parameters
----------
collection: str
Collection name.
Examples
--------
>>> import easystac.planetary as pc
>>> from geojson import Point
>>> pc.Authenticate()
>>> pc.Initialize()
>>> geom = Point([-76.1,4.3])
>>> S2 = (pc.ImageCollection("sentinel-2-l2a")
.filterBounds(geom)
.filterDate("2020-01-01","2021-01-01")
.getInfo(resolution = 10))
"""
[docs] def getInfo(self, **kwargs):
"""Returns all the information from the STAC search.
Parameters
----------
**kwargs
Additional arguments passed to :code:`stackstac.stack()`. Some of them are
:code:`epsg`, :code:`resolution`, and :code:`bbox`.
Returns
-------
xarray.DataArray
Chunked DataArray with Dask.
Examples
--------
>>> import easystac.planetary as pc
>>> from geojson import Point
>>> pc.Authenticate()
>>> pc.Initialize()
>>> geom = Point([-76.1,4.3])
>>> S2 = (pc.ImageCollection("sentinel-2-l2a")
.filterBounds(geom)
.filterDate("2020-01-01","2021-01-01")
.getInfo(resolution = 10))
"""
parameters = None
if "PC_SDK_SUBSCRIPTION_KEY" in os.environ:
parameters = {"subscription-key": os.environ["PC_SDK_SUBSCRIPTION_KEY"]}
search = self._search(
url="https://planetarycomputer.microsoft.com/api/stac/v1",
parameters=parameters,
)
items = [pc.sign(item).to_dict() for item in search.get_items()]
image_collection = stackstac.stack(items, **kwargs)
return image_collection