diff --git a/.gitignore b/.gitignore index 894a44c..6302d0c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ +test-reports/ +docs/source/generated/ +examples/ +*pdf + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/CHANGELOG.md b/CHANGELOG.md index e220e9f..28157f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [v0.4.0] - 2021-XX-XX + +- Switched from sat-stac to pystac dependency (#72) +- CI nightly test against py36 to py39 (#71) + +### Added + +- Tests against python3.8 (#63) + ## [v0.3.0] - 2020-10-01 ### Added diff --git a/README.md b/README.md index 50e4f30..24f861a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Intake-STAC -![CI](https://github.com/pangeo-data/intake-stac/workflows/CI/badge.svg) -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pangeo-data/intake-stac/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fpangeo-data%252Fintake-stac%26urlpath%3Dlab%252Ftree%252Fintake-stac%252Fexamples%26branch%3Dmain) +![CI](https://github.com/intake/intake-stac/workflows/CI/badge.svg) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/intake/intake-stac/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fintake%252Fintake-stac%26urlpath%3Dlab%252Ftree%252Fintake-stac%252Fexamples%26branch%3Dmain) [![PyPI version](https://badge.fury.io/py/intake-stac.svg)](https://badge.fury.io/py/intake-stac) [![Documentation Status](https://readthedocs.org/projects/intake-stac/badge/?version=latest)](https://intake-stac.readthedocs.io/en/latest/?badge=latest) -[![codecov](https://codecov.io/gh/pangeo-data/intake-stac/branch/main/graph/badge.svg)](https://codecov.io/gh/pangeo-data/intake-stac) +[![codecov](https://codecov.io/gh/intake/intake-stac/branch/main/graph/badge.svg)](https://codecov.io/gh/intake/intake-stac) This is an [Intake](https://intake.readthedocs.io/en/latest) data source for [SpatioTemporal Asset Catalogs (STAC)](https://stacspec.org/). The STAC specification provides a common metadata specification, API, and catalog format to describe geospatial assets, so they can more easily indexed and discovered. A 'spatiotemporal asset' is any file that represents information about the earth captured in a certain space and time. @@ -12,7 +12,7 @@ Intake-STAC provides an opinionated way for users to load Assets from STAC catal ## Installation -Intake-STAC has a few [requirements](requirements.txt), such as [Intake](https://intake.readthedocs.io), [intake-xarray](https://intake-xarray.readthedocs.io/) and [sat-stac](https://github.com/sat-utils/sat-stac). Intake-stac can be installed in any of the following ways: +Intake-STAC has a few [requirements](requirements.txt), such as [Intake](https://intake.readthedocs.io), [intake-xarray](https://intake-xarray.readthedocs.io/) and [pystac](https://github.com/stac-utils/pystac). Intake-stac can be installed in any of the following ways: We recommend installing the latest release with `conda`: @@ -26,7 +26,7 @@ Or the latest development version with `pip`: $ pip install git+https://github.com/intake/intake-stac ``` -## Examples +## Quickstart ```python from intake import open_stac_catalog @@ -37,23 +37,24 @@ da = cat['Houston-East-20170831-103f-100d-0f4f-RGB']['thumbnail'].to_dask() da ``` -The [examples/](examples/) directory contains some example Jupyter Notebooks that can be used to test the functionality. +The [examples/](examples/) directory contains several Jupyter Notebooks illustrating common workflows. #### Versions To install a specific versions of intake-stac, specify the version in the install command ```bash -pip install intake-stac==0.3.0 +pip install intake-stac==0.4.0 ``` The table below shows the corresponding versions between intake-stac and STAC: -| intake-stac | STAC | -| ----------- | ----- | -| 0.2.x | 0.6.x | -| 0.3.x | 1.0.x | +| intake-stac | STAC | +| ----------- | ----------- | +| 0.2.x | 0.6.x | +| 0.3.x | 1.0.0-betaX | +| 0.4.x | 1.0.0-betaX | ## About -[intake-stac](https://github.com/pangeo-data/intake-stac) was created as part of the [Pangeo](http://pangeo.io) initiative under support from the NASA-ACCESS program. See the initial [design document](https://hackmd.io/cyJZkjV5TCWTJg1mUAoEVA). +[intake-stac](https://github.com/intake/intake-stac) was created as part of the [Pangeo](http://pangeo.io) initiative under support from the NASA-ACCESS program. See the initial [design document](https://hackmd.io/cyJZkjV5TCWTJg1mUAoEVA). diff --git a/ci/environment-3.7.yml b/ci/environment-3.7.yml index 1ae9cbf..4bbb9cb 100644 --- a/ci/environment-3.7.yml +++ b/ci/environment-3.7.yml @@ -7,7 +7,7 @@ dependencies: - geopandas - intake - intake-xarray + - pystac - pytest-cov - rasterio - - sat-stac - xarray diff --git a/ci/environment-3.8.yml b/ci/environment-3.8.yml index f6e9b0c..4aab824 100644 --- a/ci/environment-3.8.yml +++ b/ci/environment-3.8.yml @@ -7,7 +7,7 @@ dependencies: - geopandas - intake - intake-xarray + - pystac - pytest-cov - rasterio - - sat-stac - xarray diff --git a/ci/environment-3.9.yml b/ci/environment-3.9.yml index 481e203..9bdcdff 100644 --- a/ci/environment-3.9.yml +++ b/ci/environment-3.9.yml @@ -7,7 +7,7 @@ dependencies: - geopandas - intake - intake-xarray + - pystac - pytest-cov - rasterio - - sat-stac - xarray diff --git a/ci/environment-dev.yml b/ci/environment-dev.yml index d301c29..8e42c20 100644 --- a/ci/environment-dev.yml +++ b/ci/environment-dev.yml @@ -29,6 +29,7 @@ dependencies: - pandoc - pip - pre_commit + - pystac - pytest-cov - pytoml - pyyaml @@ -36,7 +37,6 @@ dependencies: - recommonmark - requests - sat-search>=0.3 - - sat-stac - sphinx-copybutton - sphinx_rtd_theme - sphinx>=1.6 diff --git a/ci/environment-docs.yml b/ci/environment-docs.yml index 610cd02..7e1fe91 100644 --- a/ci/environment-docs.yml +++ b/ci/environment-docs.yml @@ -1,7 +1,6 @@ -#readthedocs uses defaults rather than conda-forge name: intake-stac channels: - - defaults + - conda-forge dependencies: - python=3.7 - aiohttp @@ -11,17 +10,17 @@ dependencies: - intake-xarray - ipython - mock + - nbsphinx - numpydoc - pillow - pip + - pystac - pytest-cov - rasterio + - sat-search - scikit-image - sphinx - sphinx_rtd_theme - xarray - pip: - - nbsphinx - - sat-search - - sat-stac - - .. #installs intake-stac from root folder + - ../ #installs intake-stac from root folder diff --git a/ci/environment-gui.yml b/ci/environment-gui.yml index 2579008..e8119d3 100644 --- a/ci/environment-gui.yml +++ b/ci/environment-gui.yml @@ -40,6 +40,7 @@ dependencies: - panel - pip - pre_commit + - pystac - pytest - pytest-cov - pytest-icdiff @@ -49,7 +50,6 @@ dependencies: - recommonmark - requests - sat-search>=0.3 - - sat-stac - scikit-image - sphinx-copybutton - sphinx_rtd_theme diff --git a/ci/environment-unpinned.yml b/ci/environment-unpinned.yml index 66566f8..fb8680c 100644 --- a/ci/environment-unpinned.yml +++ b/ci/environment-unpinned.yml @@ -7,7 +7,7 @@ dependencies: - geopandas - intake - intake-xarray + - pystac - pytest-cov - rasterio - - sat-stac - xarray diff --git a/ci/environment-upstream.yml b/ci/environment-upstream.yml index 23d45f3..b870f67 100644 --- a/ci/environment-upstream.yml +++ b/ci/environment-upstream.yml @@ -8,13 +8,13 @@ dependencies: - intake - intake-xarray - pip + - pystac - pytest-cov - rasterio - - sat-stac - xarray - pip: - git+https://github.com/intake/filesystem_spec.git - - git+https://github.com/sat-utils/sat-stac.git + - git+https://github.com/stac-utils/pystac.git - git+https://github.com/sat-utils/sat-search.git - git+https://github.com/intake/intake.git - git+https://github.com/intake/intake-xarray.git diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst index 91d33c0..2aaa649 100644 --- a/docs/source/tutorial.rst +++ b/docs/source/tutorial.rst @@ -50,17 +50,17 @@ initialization: f'{root_url}/eo/landsat-8-l1/item.json' ) -Intake-Stac uses `sat-stac `_ to parse -STAC objects. You can also pass ``satstac`` objects (e.g. -``satstac.Collection``) directly to the Intake-stac constructors: +Intake-Stac uses `pystac `_ to parse +STAC objects. You can also pass ``pystac`` objects (e.g. +``pystac.Catalog``) directly to the Intake-stac constructors: .. ipython:: python :verbatim: - import satstac + import pystac - col = satstac.Collection.open(f'{root_url}/catalog.json') - collection_cat = intake.open_stac_collection(col) + pystac_cat = pystac.read_file(f'{root_url}/catalog.json') + cat = intake.open_stac_catalog(pystac_cat) Using the catalog ----------------- @@ -132,19 +132,25 @@ using `sat-search`: import satsearch print(satsearch.__version__) + + bbox = [35.48, -3.24, 35.58, -3.14] + dates = '2020-07-01/2020-08-15' URL='https://earth-search.aws.element84.com/v0' - results = satsearch.Search.search( - url=URL, - collections=['landsat-8-l1-c1'], - bbox=[43.16, -11.32, 43.54, -11.96] - ) + results = satsearch.Search.search(url=URL, + collections=['sentinel-s2-l2a-cogs'], + datetime=dates, + bbox=bbox, + sort=['-properties.datetime']) + + # 18 items found items = results.items() - items + print(len(items)) + items.save('single-file-stac.json') In the code section above, `items` is a `satstac.ItemsCollection` object. Intake-stac can turn this object into an Intake catalog: .. ipython:: python - catalog = intake.open_stac_item_collection(items) + catalog = intake.open_stac_item_collection('single-file-stac.json') list(catalog) diff --git a/intake_stac/catalog.py b/intake_stac/catalog.py index 09293c4..8ed746f 100644 --- a/intake_stac/catalog.py +++ b/intake_stac/catalog.py @@ -1,7 +1,7 @@ import os.path import warnings -import satstac +import pystac from intake.catalog import Catalog from intake.catalog.local import LocalCatalogEntry from pkg_resources import get_distribution @@ -50,23 +50,25 @@ def __init__(self, stac_obj, **kwargs): Parameters ---------- - stac_obj: stastac.Thing - A satstac.Thing pointing to a STAC object + stac_obj: stastac.STACObject + A pystac.STACObject pointing to a STAC object kwargs : dict, optional Passed to intake.Catalog.__init__ """ if isinstance(stac_obj, self._stac_cls): self._stac_obj = stac_obj elif isinstance(stac_obj, str): - self._stac_obj = self._stac_cls.open(stac_obj) + self._stac_obj = self._stac_cls.from_file(stac_obj) else: raise ValueError('Expected %s instance, got: %s' % (self._stac_cls, type(stac_obj))) metadata = self._get_metadata(**kwargs.pop('metadata', {})) - try: name = kwargs.pop('name', self._stac_obj.id) except AttributeError: + # Not currently tested. + # ItemCollection does not require an id + # Unclear what the state of ItemCollection is. name = str(type(self._stac_obj)) super().__init__(name=name, metadata=metadata, **kwargs) @@ -83,7 +85,7 @@ def from_url(cls, url, **kwargs): kwargs : dict, optional Passed to intake.Catolog.__init__ """ - stac_obj = cls._stac_cls.open(url) + stac_obj = cls._stac_cls.from_file(url) return cls(stac_obj, **kwargs) def _get_metadata(self, **kwargs): @@ -102,82 +104,92 @@ def serialize(self): class StacCatalog(AbstractStacCatalog): """ - Intake Catalog represeting a STAC Catalog - https://github.com/radiantearth/stac-spec/blob/master/catalog-spec/catalog-spec.md - - A Catalog that references a STAC catalog at some URL - and constructs an intake catalog from it, with opinionated - choices about the drivers that will be used to load the datasets. - In general, the drivers are: - - - netcdf - - rasterio - - xarray_image - - textfiles + Maps Intake Catalog to a STAC Catalog + https://pystac.readthedocs.io/en/latest/api.html?#catalog-spec """ name = 'stac_catalog' - _stac_cls = satstac.Catalog + _stac_cls = pystac.Catalog def _load(self): """ Load the STAC Catalog. """ - subcatalog = None - # load first sublevel catalog(s) - for subcatalog in self._stac_obj.children(): + for subcatalog in self._stac_obj.get_children(): + if isinstance(subcatalog, pystac.Collection): + # Collection subclasses Catalog, so check it first + driver = StacCollection + else: + driver = StacCatalog + self._entries[subcatalog.id] = LocalCatalogEntry( name=subcatalog.id, description=subcatalog.description, - driver=StacCatalog, + driver=driver, # recursive catalog=self, - args={'stac_obj': subcatalog.filename}, + args={'stac_obj': subcatalog.get_self_href()}, ) - if subcatalog is None: - # load items under last catalog - for item in self._stac_obj.items(): - self._entries[item.id] = LocalCatalogEntry( - name=item.id, - description='', - driver=StacItem, - catalog=self, - args={'stac_obj': item}, - ) + for item in self._stac_obj.get_items(): + self._entries[item.id] = LocalCatalogEntry( + name=item.id, + description='', + driver=StacItem, + catalog=self, + args={'stac_obj': item}, + ) def _get_metadata(self, **kwargs): """ Keep copy of all STAC JSON except for links """ - metadata = self._stac_obj._data.copy() + # NOTE: why not links? + metadata = self._stac_obj.to_dict() del metadata['links'] return metadata +class StacCollection(StacCatalog): + """ + Maps Intake Catalog to a STAC Collection + https://pystac.readthedocs.io/en/latest/api.html#collection-spec + + Collections have a number of properties that Catalogs do not, most notably + the spatial and temporal extents. This is currently a placeholder for + future Collection-specific attributes and methods. + """ + + name = 'stac_catalog' + _stac_cls = pystac.Collection + + class StacItemCollection(AbstractStacCatalog): """ - Intake Catalog represeting a STAC ItemCollection + Maps ItemCollection returned from a STAC API to Intake (Sub)Catalog + https://github.com/radiantearth/stac-api-spec/tree/master/fragments/itemcollection + + Note search results often use the single file stac extension: + https://pystac.readthedocs.io/en/latest/api.html?#single-file-stac-extension """ - name = 'stac_item_collection' - _stac_cls = satstac.ItemCollection + name = 'stac_itemcollection' + _stac_cls = pystac.Catalog def _load(self): """ Load the STAC Item Collection. """ - for item in self._stac_obj: - self._entries[item.id] = LocalCatalogEntry( - name=item.id, + if not self._stac_obj.ext.implements('single-file-stac'): + raise ValueError("StacItemCollection requires 'single-file-stac' extension") + for feature in self._stac_obj.ext['single-file-stac'].features: + self._entries[feature.id] = LocalCatalogEntry( + name=feature.id, description='', driver=StacItem, catalog=self, - args={'stac_obj': item}, + args={'stac_obj': feature}, ) - def _get_metadata(self, **kwargs): - return kwargs - def to_geopandas(self, crs=None): """ Load the STAC Item Collection into a geopandas GeoDataFrame @@ -201,63 +213,26 @@ def to_geopandas(self, crs=None): ) if crs is None: - crs = {'init': 'epsg:4326'} - gf = gpd.GeoDataFrame.from_features(self._stac_obj.geojson(), crs=crs) + crs = 'epsg:4326' + gf = gpd.GeoDataFrame.from_features(self._stac_obj.to_dict(), crs=crs) return gf -class StacCollection(AbstractStacCatalog): - """ - Intake Catalog represeting a STAC Collection - https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md - """ - - name = 'stac_collection' - _stac_cls = satstac.Collection - - def _load(self): - """ - Load the STAC Collection. - """ - for item in self._stac_obj.items(): - self._entries[item.id] = LocalCatalogEntry( - name=item.id, - description='', - driver=StacItem, - catalog=self, - args={'stac_obj': item.filename}, - ) - - def _get_metadata(self, **kwargs): - metadata = {} - for attr in [ - 'title', - 'version', - 'keywords', - 'license', - 'providers', - 'extent', - ]: - metadata[attr] = getattr(self._stac_obj, attr, None) - metadata.update(kwargs) - return metadata - - class StacItem(AbstractStacCatalog): """ - Intake Catalog represeting a STAC Item - https://github.com/radiantearth/stac-spec/blob/master/item-spec/item-spec.md + Maps STAC Item to Intake (Sub)Catalog + https://pystac.readthedocs.io/en/latest/api.html#item-spec """ name = 'stac_item' - _stac_cls = satstac.Item + _stac_cls = pystac.Item def _load(self): """ Load the STAC Item. """ for key, value in self._stac_obj.assets.items(): - self._entries[key] = StacEntry(key, value) + self._entries[key] = StacAsset(key, value) def _get_metadata(self, **kwargs): metadata = self._stac_obj.properties.copy() @@ -268,31 +243,31 @@ def _get_metadata(self, **kwargs): def _get_band_info(self): """ - helper function for stack_bands + Return list of band info dictionaries (name, common_name, etc.)... """ - # Try to get band-info at Collection then Item level band_info = [] try: - collection = self._stac_obj.collection() - if 'item-assets' in collection._data.get('stac_extensions'): - for val in collection._data['item_assets'].values(): + # NOTE: ensure we test these scenarios + # FileNotFoundError: [Errno 2] No such file or directory: '/catalog.json' + collection = self._stac_obj.get_collection() + if 'item-assets' in collection.stac_extensions: + for val in collection.ext['item_assets']: if 'eo:bands' in val: band_info.append(val.get('eo:bands')[0]) else: band_info = collection.summaries['eo:bands'] - except KeyError: - for val in self._stac_obj.assets.values(): - if 'eo:bands' in val: - band_info.append(val.get('eo:bands')[0]) + except Exception: + for band in self._stac_obj.ext['eo'].get_bands(): + band_info.append(band.to_dict()) finally: if not band_info: - raise AttributeError( + raise ValueError( 'Unable to parse "eo:bands" information from STAC Collection or Item Assets' ) return band_info - def stack_bands(self, bands): + def stack_bands(self, bands, path_as_pattern=None, concat_dim='band'): """ Stack the listed bands over the ``band`` dimension. @@ -313,20 +288,24 @@ def stack_bands(self, bands): Returns ------- - StacEntry with mapping of Asset names to Xarray bands + StacAsset with mapping of Asset names to Xarray bands - Example + Examples ------- stack = item.stack_bands(['nir','red']) da = stack(chunks=dict(band=1, x=2048, y=2048)).to_dask() - """ - if 'eo' not in self._stac_obj._data['stac_extensions']: - raise AttributeError('STAC Item must implement "eo" extension to use this method') + stack = item.stack_bands(['B4','B5'], path_as_pattern='{band}.TIF') + da = stack(chunks=dict(band=1, x=2048, y=2048)).to_dask() + """ + if 'eo' not in self._stac_obj.stac_extensions: + raise ValueError('STAC Item must implement "eo" extension to use this method') band_info = self._get_band_info() - item = {'concat_dim': 'band', 'urlpath': []} + configDict = {} + metadatas = {} titles = [] + hrefs = [] types = [] assets = self._stac_obj.assets for band in bands: @@ -347,67 +326,71 @@ def stack_bands(self, bands): f'{band} not found in list of eo:bands in collection.' f'Valid values: {sorted(list(set(valid_band_names)))}' ) - - value = assets.get(band) - band_type = value.get('type') - types.append(band_type) - - href = value.get('href') - pattern = href.replace(band, '{band}') - if 'path_as_pattern' not in item: - item['path_as_pattern'] = pattern - elif item['path_as_pattern'] != pattern: - raise ValueError( - f'Stacking failed: {href} does not contain ' - 'band info in a fixed section of the url' - ) - + asset = assets.get(band) + metadatas[band] = asset.to_dict() titles.append(band) - item['urlpath'].append(href) + types.append(asset.media_type) + hrefs.append(asset.href) unique_types = set(types) if len(unique_types) != 1: raise ValueError( f'Stacking failed: bands must have type, multiple found: {unique_types}' ) - else: - item['type'] = types[0] - item['title'] = ', '.join(titles) - return StacEntry('_'.join(bands), item, stacked=True) + configDict['name'] = '_'.join(bands) + configDict['description'] = ', '.join(titles) + configDict['args'] = dict( + chunks={}, concat_dim=concat_dim, path_as_pattern=path_as_pattern, urlpath=hrefs + ) + configDict['metadata'] = metadatas + + return CombinedAssets(configDict) -class StacEntry(LocalCatalogEntry): +class StacAsset(LocalCatalogEntry): """ - A class representing a STAC catalog Entry + Maps 1 STAC Item Asset to 1 Intake Catalog Entry + https://pystac.readthedocs.io/en/latest/api.html#asset """ - def __init__(self, key, item, stacked=False): + name = 'stac_asset' + _stac_cls = pystac.item.Asset + + def __init__(self, key, asset): """ Construct an Intake catalog 'Source' from a STAC Item Asset. + asset = pystac.item.Asset """ - driver = self._get_driver(item) - - default_plot = self._get_plot(item) - if default_plot: - item['plots'] = default_plot + driver = self._get_driver(asset) super().__init__( name=key, - description=item.get('title', key), + description=asset.title, driver=driver, direct_access=True, - args=self._get_args(item, driver, stacked=stacked), - metadata=item, + args=self._get_args(asset, driver), + metadata=self._get_metadata(asset), ) - def _get_plot(self, item): + def _get_metadata(self, asset): + """ + Copy STAC Asset Metadata and setup default plot + """ + metadata = asset.to_dict() + default_plot = self._get_plot(asset) + if default_plot: + metadata['plots'] = default_plot + + return metadata + + def _get_plot(self, asset): """ Default hvplot plot based on Asset mimetype """ - # NOTE: consider geojson, parquet, hdf defaults in future + # NOTE: consider geojson, parquet, hdf defaults in future... default_plot = None - type = item.get('type', None) # also some assets do not have 'type' + type = asset.media_type if type: if type in ['image/jpeg', 'image/jpg', 'image/png']: default_plot = dict( @@ -439,34 +422,58 @@ def _get_plot(self, item): return default_plot - def _get_driver(self, entry): - - entry_type = entry.get('type') + def _get_driver(self, asset): + """ + Assign intake driver for data I/O + """ + entry_type = asset.media_type if entry_type in ['', 'null', None]: - suffix = os.path.splitext(entry['href'])[-1] + suffix = os.path.splitext(asset.media_type)[-1] if suffix in ['.nc', '.h5', '.hdf']: - entry['type'] = 'application/netcdf' + asset.media_type = 'application/netcdf' warnings.warn( - f'STAC Asset "type" missing, assigning {entry_type} based on href suffix {suffix}:\n{entry}' # noqa: E501 + f'STAC Asset "type" missing, assigning {entry_type} based on href suffix {suffix}:\n{asset.media_type}' # noqa: E501 ) else: - entry['type'] = default_type + asset.media_type = default_type warnings.warn( - f'STAC Asset "type" missing, assuming default type={default_type}:\n{entry}' + f'STAC Asset "type" missing, assuming default type={default_type}:\n{asset}' # noqa: E501 ) - entry_type = entry.get('type') - print(entry_type) + entry_type = asset.media_type # if mimetype not registered try rasterio driver driver = drivers.get(entry_type, default_driver) return driver - def _get_args(self, entry, driver, stacked=False): - args = entry if stacked else {'urlpath': entry.get('href')} + def _get_args(self, asset, driver): + """ + Optional keyword arguments to pass to intake driver + """ + args = {'urlpath': asset.href} if driver in ['netcdf', 'rasterio', 'xarray_image']: + # NOTE: force using dask? args.update(chunks={}) return args + + +class CombinedAssets(LocalCatalogEntry): + """ + Maps multiple STAC Item Assets to 1 Intake Catalog Entry + """ + + def __init__(self, configDict): + """ + configDict = intake Entry dictionary from stack_bands() method + """ + super().__init__( + name=configDict['name'], + description=configDict['description'], + driver='rasterio', # stack_bands only relevant to rasterio driver? + direct_access=True, + args=configDict['args'], + metadata=configDict['metadata'], + ) diff --git a/intake_stac/tests/data/1.0.0beta2/earthsearch/readme.md b/intake_stac/tests/data/1.0.0beta2/earthsearch/readme.md new file mode 100644 index 0000000..7aec066 --- /dev/null +++ b/intake_stac/tests/data/1.0.0beta2/earthsearch/readme.md @@ -0,0 +1,30 @@ +Generated with: + +```python +import satsearch +import pystac +import json + +bbox = [35.48, -3.24, 35.58, -3.14] +dates = '2020-07-01/2020-08-15' +URL='https://earth-search.aws.element84.com/v0' +results = satsearch.Search.search(url=URL, + collections=['sentinel-s2-l2a-cogs'], + datetime=dates, + bbox=bbox, + sort=['-properties.datetime']) + +# 18 items found +items = results.items() +print(len(items)) +items.save('single-file-stac.json') + +# validation returns empty list +import json +from pystac.validation import validate_dict +with open('single-file-stac.json') as f: + js = json.load(f) +print(validate_dict(js)) + +cat = pystac.read_file('single-file-stac.json') +``` diff --git a/intake_stac/tests/data/1.0.0beta2/earthsearch/single-file-stac.json b/intake_stac/tests/data/1.0.0beta2/earthsearch/single-file-stac.json new file mode 100644 index 0000000..d5db0cc --- /dev/null +++ b/intake_stac/tests/data/1.0.0beta2/earthsearch/single-file-stac.json @@ -0,0 +1,4018 @@ +{ + "id": "STAC", + "description": "Single file STAC", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["single-file-stac"], + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200814_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.755863403460744, + -2.7110273448887328 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.755863403460744, -2.7110273448887328], + [35.58561393371855, -3.4903485137854644], + [35.53750206413227, -3.703878577458925], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-08-14T08:11:00Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200814T074621_N0214_R135_T36MYB_20200814T103139", + "sentinel:data_coverage": 85.74, + "eo:cloud_cover": 47.78, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-17T19:57:08.648Z", + "updated": "2020-08-17T19:57:08.648Z", + "sentinel:utm_zone": 36 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/8/14/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/14/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/14/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200814_0_L2A" + }, + { + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/8/S2A_36MYB_20200814_0_L2A/S2A_36MYB_20200814_0_L2A.json", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200811_0_L2A", + "bbox": [ + 35.3528545470006, + -3.704390328989478, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.3528545470006, -3.704390328989478], + [35.3871744235407, -3.550087222076425], + [35.57403108911051, -2.7114299346410236], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.3528545470006, -3.704390328989478] + ] + ] + }, + "properties": { + "datetime": "2020-08-11T08:01:05Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200811T073621_N0214_R092_T36MYB_20200811T114649", + "sentinel:data_coverage": 32.62, + "eo:cloud_cover": 12.78, + "sentinel:valid_cloud_cover": true, + "created": "2020-09-19T02:55:16.877Z", + "updated": "2020-09-19T02:55:16.877Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/8/11/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/11/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/11/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200811_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200811_0_L2A/S2A_36MYB_20200811_0_L2A.json", + "type": "application/json" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2A_36MYB_20200811_0_L2A", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200809_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.76700629249285, + -2.7110017811328926 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.76700629249285, -2.7110017811328926], + [35.59534033727834, -3.4950217349500936], + [35.54865807009975, -3.7038464213259266], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-08-09T08:10:57Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200809T074619_N0214_R135_T36MYB_20200809T103816", + "sentinel:data_coverage": 86.85, + "eo:cloud_cover": 77.28, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-18T10:57:54.124Z", + "updated": "2020-08-18T10:57:54.124Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/8/9/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/9/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/9/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200809_0_L2A" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/8/S2B_36MYB_20200809_0_L2A/S2B_36MYB_20200809_0_L2A.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200806_0_L2A", + "bbox": [ + 35.361851558698646, + -3.704366288842677, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.361851558698646, -3.704366288842677], + [35.40381967148886, -3.5125664894255837], + [35.582659278647895, -2.7114114515918657], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.361851558698646, -3.704366288842677] + ] + ] + }, + "properties": { + "datetime": "2020-08-06T08:01:02Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200806T073619_N0214_R092_T36MYB_20200806T113023", + "sentinel:data_coverage": 31.77, + "eo:cloud_cover": 0, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-17T20:39:17.063Z", + "updated": "2020-08-17T20:39:17.063Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/8/6/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/6/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/6/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200806_0_L2A" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/8/S2B_36MYB_20200806_0_L2A/S2B_36MYB_20200806_0_L2A.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200804_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.757300644517535, + -2.7110240533940337 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.757300644517535, -2.7110240533940337], + [35.593185658988496, -3.4635764446186035], + [35.539121505336155, -3.7038739183195086], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-08-04T08:11:00Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200804T074621_N0214_R135_T36MYB_20200804T104333", + "sentinel:data_coverage": 85.89, + "eo:cloud_cover": 75.37, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-17T21:33:14.530Z", + "updated": "2020-08-17T21:33:14.530Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/8/4/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/4/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/4/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200804_0_L2A" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/8/S2A_36MYB_20200804_0_L2A/S2A_36MYB_20200804_0_L2A.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200801_0_L2A", + "bbox": [ + 35.354473584331565, + -3.704386009664254, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.354473584331565, -3.704386009664254], + [35.3944358874427, -3.5225127312927675], + [35.53486937287048, -2.8896897890758986], + [35.574751456777825, -2.7114283938558765], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.354473584331565, -3.704386009664254] + ] + ] + }, + "properties": { + "datetime": "2020-08-01T08:01:05Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200801T073621_N0214_R092_T36MYB_20200801T102406", + "sentinel:data_coverage": 32.57, + "eo:cloud_cover": 62.8, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-18T10:54:09.447Z", + "updated": "2020-08-18T10:54:09.447Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/8/1/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/1/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/8/1/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200801_0_L2A" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/8/S2A_36MYB_20200801_0_L2A/S2A_36MYB_20200801_0_L2A.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200730_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.7687137359457, + -2.7109978548485385 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.7687137359457, -2.7109978548485385], + [35.602303822311306, -3.471108470253178], + [35.5503674728783, -3.703841481678485], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-07-30T08:10:57Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200730T074619_N0214_R135_T36MYB_20200730T111202", + "sentinel:data_coverage": 87.03, + "eo:cloud_cover": 5.89, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-18T09:45:24.058Z", + "updated": "2020-08-18T09:45:24.058Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/30/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/30/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/30/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200730_0_L2A" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/7/S2B_36MYB_20200730_0_L2A/S2B_36MYB_20200730_0_L2A.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200727_0_L2A", + "bbox": [ + 35.364731107030785, + -3.704358575275874, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.364731107030785, -3.704358575275874], + [35.40440599150377, -3.5241264913281642], + [35.58517559334435, -2.711406049575985], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.364731107030785, -3.704358575275874] + ] + ] + }, + "properties": { + "datetime": "2020-07-27T08:01:01Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200727T073619_N0214_R092_T36MYB_20200727T122549", + "sentinel:data_coverage": 31.47, + "eo:cloud_cover": 49.45, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-31T18:24:19.293Z", + "updated": "2020-08-31T18:24:19.293Z", + "sentinel:utm_zone": 36 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/27/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/27/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/27/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200727_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200727_0_L2A/S2B_36MYB_20200727_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2B_36MYB_20200727_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200725_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.759906699226775, + -2.7110180807693265 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.759906699226775, -2.7110180807693265], + [35.58973859625803, -3.4867218329449443], + [35.54119098027402, -3.703867960107399], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-07-25T08:10:59Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32736, + "sentinel:utm_zone": 36, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200725T074621_N0214_R135_T36MYB_20200725T111115", + "sentinel:data_coverage": 86.12, + "eo:cloud_cover": 1.01, + "sentinel:valid_cloud_cover": true, + "created": "2020-08-18T10:54:56.621Z", + "updated": "2020-08-18T10:54:56.621Z" + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/25/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/25/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/25/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200725_0_L2A" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/7/S2A_36MYB_20200725_0_L2A/S2A_36MYB_20200725_0_L2A.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200722_0_L2A", + "bbox": [ + 35.356453603399366, + -3.704380723262607, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.356453603399366, -3.704380723262607], + [35.39652214425136, -3.52401250696652], + [35.57744628705123, -2.7114226260972907], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.356453603399366, -3.704380723262607] + ] + ] + }, + "properties": { + "datetime": "2020-07-22T08:01:04Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 32.26, + "view:off_nadir": 0, + "eo:cloud_cover": 69.73, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200722T073621_N0214_R092_T36MYB_20200722T105841", + "created": "2020-09-19T01:08:35.436Z", + "updated": "2020-09-19T01:08:35.436Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 32.26 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/22/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/22/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/22/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200722_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200722_0_L2A/S2A_36MYB_20200722_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2A_36MYB_20200722_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200720_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.77185877492271, + -2.710990616463335 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.77185877492271, -2.710990616463335], + [35.610236308119404, -3.449883225671188], + [35.5534261567553, -3.7038326347645305], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-07-20T08:10:56Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 87.34, + "view:off_nadir": 0, + "eo:cloud_cover": 14.84, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200720T074619_N0214_R135_T36MYB_20200720T112901", + "created": "2020-09-19T10:48:10.455Z", + "updated": "2020-09-19T10:48:10.455Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 87.34 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/20/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/20/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/20/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200720_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200720_0_L2A/S2B_36MYB_20200720_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2B_36MYB_20200720_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200717_0_L2A", + "bbox": [ + 35.36833009312432, + -3.704348921313967, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.36833009312432, -3.704348921313967], + [35.407819165099255, -3.5245820359904383], + [35.588411026975066, -2.7113990960324563], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.36833009312432, -3.704348921313967] + ] + ] + }, + "properties": { + "datetime": "2020-07-17T08:01:00Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 31.12, + "view:off_nadir": 0, + "eo:cloud_cover": 99.94, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200717T073619_N0214_R092_T36MYB_20200718T133139", + "created": "2020-08-28T01:04:04.443Z", + "updated": "2020-08-28T01:04:04.443Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 31.12 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/17/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/17/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/17/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200717_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200717_0_L2A/S2B_36MYB_20200717_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2B_36MYB_20200717_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2B_36MYB_20200717_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200715_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.762423439929975, + -2.7110123074852157 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.762423439929975, -2.7110123074852157], + [35.58950948158126, -3.500550130276924], + [35.54379972231785, -3.7038604423827857], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-07-15T08:10:59Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 86.39, + "view:off_nadir": 0, + "eo:cloud_cover": 98.19, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200715T074621_N0214_R135_T36MYB_20200715T120435", + "created": "2020-08-27T22:44:05.523Z", + "updated": "2020-08-27T22:44:05.523Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 86.39 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/15/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/15/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/15/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200715_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200715_0_L2A/S2A_36MYB_20200715_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2A_36MYB_20200715_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200712_0_L2A", + "bbox": [ + 35.36185349129008, + -3.7043662836689135, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.36185349129008, -3.7043662836689135], + [35.527401739826665, -2.9456144416642576], + [35.579424700604456, -2.711418387850691], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.36185349129008, -3.7043662836689135] + ] + ] + }, + "properties": { + "datetime": "2020-07-12T08:01:03Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 31.92, + "view:off_nadir": 0, + "eo:cloud_cover": 12.02, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200712T073621_N0214_R092_T36MYB_20200712T110016", + "created": "2020-08-18T09:03:03.858Z", + "updated": "2020-08-18T09:03:03.858Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 31.92 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/12/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/12/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/12/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200712_0_L2A" + }, + { + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/7/S2A_36MYB_20200712_0_L2A/S2A_36MYB_20200712_0_L2A.json", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200710_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.77024131589214, + -2.7109943401109917 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.77024131589214, -2.7109943401109917], + [35.60554409132611, -3.4622467746776224], + [35.55171700875178, -3.7038375795975336], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-07-10T08:10:56Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 87.17, + "view:off_nadir": 0, + "eo:cloud_cover": 10.17, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200710T074619_N0214_R135_T36MYB_20200710T115611", + "created": "2020-08-18T12:01:03.380Z", + "updated": "2020-08-18T12:01:03.380Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 87.17 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/10/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/10/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/10/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200710_0_L2A" + }, + { + "rel": "derived_from", + "href": "s3://cirrus-v0-data-1qm7gekzjucbq/sentinel-s2-l2a/36/M/YB/2020/7/S2B_36MYB_20200710_0_L2A/S2B_36MYB_20200710_0_L2A.json", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2B_36MYB_20200707_0_L2A", + "bbox": [ + 35.363651831328085, + -3.704361467477506, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.363651831328085, -3.704361467477506], + [35.58391733787192, -2.7114087514517324], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.363651831328085, -3.704361467477506] + ] + ] + }, + "properties": { + "datetime": "2020-07-07T08:01:01Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 31.59, + "view:off_nadir": 0, + "eo:cloud_cover": 19.61, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20200707T073619_N0214_R092_T36MYB_20200707T113322", + "created": "2020-09-18T22:19:41.465Z", + "updated": "2020-09-18T22:19:41.465Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 31.59 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/7/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/7/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/7/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2B_36MYB_20200707_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2B_36MYB_20200707_0_L2A/S2B_36MYB_20200707_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2B_36MYB_20200707_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200705_0_L2A", + "bbox": [ + 34.79870551983084, + -3.7056906919566326, + 35.762781954089746, + -2.7110114846428153 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.80044299251402, -3.7056906919566326], + [34.79870551983084, -2.712838434794184], + [35.762781954089746, -2.7110114846428153], + [35.543081537096796, -3.703862512777141], + [34.80044299251402, -3.7056906919566326] + ] + ] + }, + "properties": { + "datetime": "2020-07-05T08:10:58Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "view:off_nadir": 0, + "eo:cloud_cover": 12.46, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200705T074621_N0214_R135_T36MYB_20200705T111345", + "sentinel:data_coverage": 86.27, + "created": "2020-08-27T21:35:09.718Z", + "updated": "2020-08-27T21:35:09.718Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/5/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/5/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/5/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200705_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200705_0_L2A/S2A_36MYB_20200705_0_L2A.json", + "type": "application/json" + }, + { + "title": "Source STAC Item", + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2A_36MYB_20200705_0_L2A", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + }, + { + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "stac_extensions": ["eo", "view", "proj"], + "id": "S2A_36MYB_20200702_0_L2A", + "bbox": [ + 35.356093300381986, + -3.704381685556869, + 35.78841174435426, + -2.7109586089556537 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.356093300381986, -3.704381685556869], + [35.39966829397743, -3.506566766775803], + [35.57726786230264, -2.7114230081670594], + [35.785723330760796, -2.7109586089556537], + [35.78841174435426, -3.7031212858685087], + [35.356093300381986, -3.704381685556869] + ] + ] + }, + "properties": { + "datetime": "2020-07-02T08:01:04Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": ["msi"], + "gsd": 10, + "data_coverage": 32.37, + "view:off_nadir": 0, + "eo:cloud_cover": 55.53, + "proj:epsg": 32736, + "sentinel:latitude_band": "M", + "sentinel:grid_square": "YB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2A_MSIL2A_20200702T073621_N0214_R092_T36MYB_20200702T105954", + "created": "2020-08-27T21:10:40.692Z", + "updated": "2020-08-27T21:10:40.692Z", + "sentinel:valid_cloud_cover": true, + "sentinel:utm_zone": 36, + "sentinel:data_coverage": 32.37 + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/36/M/YB/2020/7/2/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/L2A_PVI.tif", + "proj:shape": [343, 343], + "proj:transform": [320, 0, 699960, 0, -320, 9700000, 0, 0, 1] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/2/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/36/M/YB/2020/7/2/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/TCI.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B01.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B02.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B03.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B04.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B05.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B06.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B07.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B08.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B8A.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B09.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B11.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/B12.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/AOT.tif", + "proj:shape": [1830, 1830], + "proj:transform": [60, 0, 699960, 0, -60, 9700000, 0, 0, 1] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/WVP.tif", + "proj:shape": [10980, 10980], + "proj:transform": [10, 0, 699960, 0, -10, 9700000, 0, 0, 1] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/SCL.tif", + "proj:shape": [5490, 5490], + "proj:transform": [20, 0, 699960, 0, -20, 9700000, 0, 0, 1] + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items/S2A_36MYB_20200702_0_L2A" + }, + { + "rel": "canonical", + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/M/YB/2020/7/S2A_36MYB_20200702_0_L2A/S2A_36MYB_20200702_0_L2A.json", + "type": "application/json" + }, + { + "rel": "derived_from", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items/S2A_36MYB_20200702_0_L2A", + "title": "Source STAC Item", + "type": "application/json" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" } + ] + } + ], + "collections": [ + { + "id": "sentinel-s2-l2a-cogs", + "stac_version": "1.0.0-beta.2", + "description": "Sentinel-2a and Sentinel-2b imagery, processed to Level 2A (Surface Reflectance) and converted to Cloud-Optimized GeoTIFFs", + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs" + }, + { + "rel": "license", + "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice" + }, + { + "rel": "about", + "href": "https://github.com/stac-utils/stac-sentinel" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/v0/" + }, + { "rel": "root", "href": "https://earth-search.aws.element84.com/v0/" }, + { + "rel": "items", + "href": "https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a-cogs/items" + } + ], + "stac_extensions": ["item-assets"], + "title": "Sentinel 2 L2A COGs", + "keywords": ["sentinel", "earth observation", "esa"], + "providers": [ + { + "name": "ESA", + "roles": ["producer"], + "url": "https://earth.esa.int/web/guest/home" + }, + { + "name": "Sinergise", + "roles": ["processor"], + "url": "https://registry.opendata.aws/sentinel-2/" + }, + { + "name": "AWS", + "roles": ["host"], + "url": "http://sentinel-pds.s3-website.eu-central-1.amazonaws.com/" + }, + { + "name": "Element 84", + "roles": ["processor"], + "url": "https://element84.com" + } + ], + "summaries": { + "platform": ["sentinel-2a", "sentinel-2b"], + "constellation": ["sentinel-2"], + "instruments": ["msi"], + "gsd": [10], + "view:off_nadir": [0] + }, + "item_assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "roles": ["thumbnail"] + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["overview"], + "gsd": 10, + "eo:bands": [ + { + "name": "B04", + "common_name": "red", + "center_wavelength": 0.6645, + "full_width_half_max": 0.038 + }, + { + "name": "B03", + "common_name": "green", + "center_wavelength": 0.56, + "full_width_half_max": 0.045 + }, + { + "name": "B02", + "common_name": "blue", + "center_wavelength": 0.4966, + "full_width_half_max": 0.098 + } + ] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "roles": ["metadata"] + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "roles": ["metadata"] + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["overview"], + "gsd": 10, + "eo:bands": [ + { + "name": "B04", + "common_name": "red", + "center_wavelength": 0.6645, + "full_width_half_max": 0.038 + }, + { + "name": "B03", + "common_name": "green", + "center_wavelength": 0.56, + "full_width_half_max": 0.045 + }, + { + "name": "B02", + "common_name": "blue", + "center_wavelength": 0.4966, + "full_width_half_max": 0.098 + } + ] + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 60, + "eo:bands": [ + { + "name": "B01", + "common_name": "coastal", + "center_wavelength": 0.4439, + "full_width_half_max": 0.027 + } + ] + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 10, + "eo:bands": [ + { + "name": "B02", + "common_name": "blue", + "center_wavelength": 0.4966, + "full_width_half_max": 0.098 + } + ] + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 10, + "eo:bands": [ + { + "name": "B03", + "common_name": "green", + "center_wavelength": 0.56, + "full_width_half_max": 0.045 + } + ] + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 10, + "eo:bands": [ + { + "name": "B04", + "common_name": "red", + "center_wavelength": 0.6645, + "full_width_half_max": 0.038 + } + ] + }, + "B05": { + "title": "Band 5", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 20, + "eo:bands": [ + { + "name": "B05", + "center_wavelength": 0.7039, + "full_width_half_max": 0.019 + } + ] + }, + "B06": { + "title": "Band 6", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 20, + "eo:bands": [ + { + "name": "B06", + "center_wavelength": 0.7402, + "full_width_half_max": 0.018 + } + ] + }, + "B07": { + "title": "Band 7", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 20, + "eo:bands": [ + { + "name": "B07", + "center_wavelength": 0.7825, + "full_width_half_max": 0.028 + } + ] + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 10, + "eo:bands": [ + { + "name": "B08", + "common_name": "nir", + "center_wavelength": 0.8351, + "full_width_half_max": 0.145 + } + ] + }, + "B8A": { + "title": "Band 8A", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 20, + "eo:bands": [ + { + "name": "B8A", + "center_wavelength": 0.8648, + "full_width_half_max": 0.033 + } + ] + }, + "B09": { + "title": "Band 9", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 60, + "eo:bands": [ + { + "name": "B09", + "center_wavelength": 0.945, + "full_width_half_max": 0.026 + } + ] + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 20, + "eo:bands": [ + { + "name": "B11", + "common_name": "swir16", + "center_wavelength": 1.6137, + "full_width_half_max": 0.143 + } + ] + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"], + "gsd": 20, + "eo:bands": [ + { + "name": "B12", + "common_name": "swir22", + "center_wavelength": 2.22024, + "full_width_half_max": 0.242 + } + ] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": ["data"] + } + }, + "extent": { + "spatial": { "bbox": [[-180, -90, 180, 90]] }, + "temporal": { "interval": [["2015-06-27T10:25:31.456000Z", null]] } + }, + "license": "proprietary" + } + ], + "links": [] +} diff --git a/intake_stac/tests/items.json b/intake_stac/tests/items.json deleted file mode 100644 index 3569cf2..0000000 --- a/intake_stac/tests/items.json +++ /dev/null @@ -1,533 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "id": "LC81920292019008LGN00", - "collection": "landsat-8-l1", - "bbox": [10.08618, 43.51506, 13.06795, 45.6754], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [10.12604, 45.6754], - [13.06795, 45.60847], - [12.9244, 43.51506], - [10.08618, 43.57731], - [10.12604, 45.6754] - ] - ] - }, - "properties": { - "datetime": "2019-01-08T09:58:37.383486+00:00", - "eo:sun_azimuth": 159.81253587, - "eo:sun_elevation": 20.58119436, - "eo:cloud_cover": 100, - "eo:row": "029", - "eo:column": "192", - "landsat:product_id": "LC08_L1TP_192029_20190108_20190108_01_RT", - "landsat:scene_id": "LC81920292019008LGN00", - "landsat:processing_level": "L1TP", - "landsat:tier": "RT", - "eo:epsg": 32632 - }, - "assets": { - "index": { - "type": "text/html", - "title": "HTML index page", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/index.html" - }, - "thumbnail": { - "title": "Thumbnail image", - "type": "image/jpeg", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_thumb_large.jpg" - }, - "B1": { - "type": "image/x.geotiff", - "eo:bands": [0], - "title": "Band 1 (coastal)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B1.TIF" - }, - "B2": { - "type": "image/x.geotiff", - "eo:bands": [1], - "title": "Band 2 (blue)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B2.TIF" - }, - "B3": { - "type": "image/x.geotiff", - "eo:bands": [2], - "title": "Band 3 (green)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B3.TIF" - }, - "B4": { - "type": "image/x.geotiff", - "eo:bands": [3], - "title": "Band 4 (red)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B4.TIF" - }, - "B5": { - "type": "image/x.geotiff", - "eo:bands": [4], - "title": "Band 5 (nir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B5.TIF" - }, - "B6": { - "type": "image/x.geotiff", - "eo:bands": [5], - "title": "Band 6 (swir16)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B6.TIF" - }, - "B7": { - "type": "image/x.geotiff", - "eo:bands": [6], - "title": "Band 7 (swir22)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B7.TIF" - }, - "B8": { - "type": "image/x.geotiff", - "eo:bands": [7], - "title": "Band 8 (pan)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B8.TIF" - }, - "B9": { - "type": "image/x.geotiff", - "eo:bands": [8], - "title": "Band 9 (cirrus)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B9.TIF" - }, - "B10": { - "type": "image/x.geotiff", - "eo:bands": [9], - "title": "Band 10 (lwir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B10.TIF" - }, - "B11": { - "type": "image/x.geotiff", - "eo:bands": [10], - "title": "Band 11 (lwir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_B11.TIF" - }, - "ANG": { - "title": "Angle coefficients file", - "type": "text/plain", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_ANG.txt" - }, - "MTL": { - "title": "original metadata file", - "type": "text/plain", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_MTL.txt" - }, - "BQA": { - "title": "Band quality data", - "type": "image/x.geotiff", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/029/LC08_L1TP_192029_20190108_20190108_01_RT/LC08_L1TP_192029_20190108_20190108_01_RT_BQA.TIF" - } - }, - "links": [ - { - "rel": "self", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1/items/LC81920292019008LGN00" - }, - { - "rel": "parent", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "collection", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "root", - "href": "https://sat-api-dev.developmentseed.org/stac" - } - ] - }, - { - "type": "Feature", - "id": "LC81920282019008LGN00", - "collection": "landsat-8-l1", - "bbox": [10.56211, 44.93214, 13.63194, 47.10042], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [10.62225, 47.10042], - [13.63194, 47.01814], - [13.46086, 44.93214], - [10.56211, 45.00867], - [10.62225, 47.10042] - ] - ] - }, - "properties": { - "datetime": "2019-01-08T09:58:13.500919+00:00", - "eo:sun_azimuth": 160.38505554, - "eo:sun_elevation": 19.34446022, - "eo:cloud_cover": 99, - "eo:row": "028", - "eo:column": "192", - "landsat:product_id": "LC08_L1TP_192028_20190108_20190108_01_RT", - "landsat:scene_id": "LC81920282019008LGN00", - "landsat:processing_level": "L1TP", - "landsat:tier": "RT", - "eo:epsg": 32632 - }, - "assets": { - "index": { - "type": "text/html", - "title": "HTML index page", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/index.html" - }, - "thumbnail": { - "title": "Thumbnail image", - "type": "image/jpeg", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_thumb_large.jpg" - }, - "B1": { - "type": "image/x.geotiff", - "eo:bands": [0], - "title": "Band 1 (coastal)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B1.TIF" - }, - "B2": { - "type": "image/x.geotiff", - "eo:bands": [1], - "title": "Band 2 (blue)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B2.TIF" - }, - "B3": { - "type": "image/x.geotiff", - "eo:bands": [2], - "title": "Band 3 (green)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B3.TIF" - }, - "B4": { - "type": "image/x.geotiff", - "eo:bands": [3], - "title": "Band 4 (red)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B4.TIF" - }, - "B5": { - "type": "image/x.geotiff", - "eo:bands": [4], - "title": "Band 5 (nir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B5.TIF" - }, - "B6": { - "type": "image/x.geotiff", - "eo:bands": [5], - "title": "Band 6 (swir16)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B6.TIF" - }, - "B7": { - "type": "image/x.geotiff", - "eo:bands": [6], - "title": "Band 7 (swir22)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B7.TIF" - }, - "B8": { - "type": "image/x.geotiff", - "eo:bands": [7], - "title": "Band 8 (pan)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B8.TIF" - }, - "B9": { - "type": "image/x.geotiff", - "eo:bands": [8], - "title": "Band 9 (cirrus)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B9.TIF" - }, - "B10": { - "type": "image/x.geotiff", - "eo:bands": [9], - "title": "Band 10 (lwir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B10.TIF" - }, - "B11": { - "type": "image/x.geotiff", - "eo:bands": [10], - "title": "Band 11 (lwir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_B11.TIF" - }, - "ANG": { - "title": "Angle coefficients file", - "type": "text/plain", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_ANG.txt" - }, - "MTL": { - "title": "original metadata file", - "type": "text/plain", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_MTL.txt" - }, - "BQA": { - "title": "Band quality data", - "type": "image/x.geotiff", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/192/028/LC08_L1TP_192028_20190108_20190108_01_RT/LC08_L1TP_192028_20190108_20190108_01_RT_BQA.TIF" - } - }, - "links": [ - { - "rel": "self", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1/items/LC81920282019008LGN00" - }, - { - "rel": "parent", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "collection", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "root", - "href": "https://sat-api-dev.developmentseed.org/stac" - } - ] - } - ], - "collections": [ - { - "id": "landsat-8-l1", - "title": "Landsat 8 L1", - "description": "Landat 8 imagery radiometrically calibrated and orthorectified using gound points and Digital Elevation Model (DEM) data to correct relief displacement.", - "keywords": ["landsat", "earth observation", "usgs"], - "version": "0.1.0", - "stac_version": "0.6.0", - "extent": { - "spatial": [-180, -90, 180, 90], - "temporal": ["2013-06-01", null] - }, - "providers": [ - { - "name": "USGS", - "roles": ["producer"], - "url": "https://landsat.usgs.gov/" - }, - { - "name": "Planet Labs", - "roles": ["processor"], - "url": "https://github.com/landsat-pds/landsat_ingestor" - }, - { - "name": "AWS", - "roles": ["host"], - "url": "https://landsatonaws.com/" - }, - { - "name": "Development Seed", - "roles": ["processor"], - "url": "https://github.com/sat-utils/sat-api" - } - ], - "license": "PDDL-1.0", - "properties": { - "collection": "landsat-8-l1", - "eo:gsd": 15, - "eo:platform": "landsat-8", - "eo:instrument": "OLI_TIRS", - "eo:off_nadir": 0, - "eo:bands": [ - { - "id": "B1", - "common_name": "coastal", - "gsd": 30, - "center_wavelength": 0.44, - "full_width_half_max": 0.02 - }, - { - "id": "B2", - "common_name": "blue", - "gsd": 30, - "center_wavelength": 0.48, - "full_width_half_max": 0.06 - }, - { - "id": "B3", - "common_name": "green", - "gsd": 30, - "center_wavelength": 0.56, - "full_width_half_max": 0.06 - }, - { - "id": "B4", - "common_name": "red", - "gsd": 30, - "center_wavelength": 0.65, - "full_width_half_max": 0.04 - }, - { - "id": "B5", - "common_name": "nir", - "gsd": 30, - "center_wavelength": 0.86, - "full_width_half_max": 0.03 - }, - { - "id": "B6", - "common_name": "swir16", - "gsd": 30, - "center_wavelength": 1.6, - "full_width_half_max": 0.08 - }, - { - "id": "B7", - "common_name": "swir22", - "gsd": 30, - "center_wavelength": 2.2, - "full_width_half_max": 0.2 - }, - { - "id": "B8", - "common_name": "pan", - "gsd": 15, - "center_wavelength": 0.59, - "full_width_half_max": 0.18 - }, - { - "id": "B9", - "common_name": "cirrus", - "gsd": 30, - "center_wavelength": 1.37, - "full_width_half_max": 0.02 - }, - { - "id": "B10", - "common_name": "lwir11", - "gsd": 100, - "center_wavelength": 10.9, - "full_width_half_max": 0.8 - }, - { - "id": "B11", - "common_name": "lwir12", - "gsd": 100, - "center_wavelength": 12, - "full_width_half_max": 1 - } - ] - }, - "assets": { - "index": { - "type": "text/html", - "title": "HTML index page" - }, - "thumbnail": { - "title": "Thumbnail image", - "type": "image/jpeg" - }, - "B1": { - "type": "image/x.geotiff", - "eo:bands": [0], - "title": "Band 1 (coastal)" - }, - "B2": { - "type": "image/x.geotiff", - "eo:bands": [1], - "title": "Band 2 (blue)" - }, - "B3": { - "type": "image/x.geotiff", - "eo:bands": [2], - "title": "Band 3 (green)" - }, - "B4": { - "type": "image/x.geotiff", - "eo:bands": [3], - "title": "Band 4 (red)" - }, - "B5": { - "type": "image/x.geotiff", - "eo:bands": [4], - "title": "Band 5 (nir)" - }, - "B6": { - "type": "image/x.geotiff", - "eo:bands": [5], - "title": "Band 6 (swir16)" - }, - "B7": { - "type": "image/x.geotiff", - "eo:bands": [6], - "title": "Band 7 (swir22)" - }, - "B8": { - "type": "image/x.geotiff", - "eo:bands": [7], - "title": "Band 8 (pan)" - }, - "B9": { - "type": "image/x.geotiff", - "eo:bands": [8], - "title": "Band 9 (cirrus)" - }, - "B10": { - "type": "image/x.geotiff", - "eo:bands": [9], - "title": "Band 10 (lwir)" - }, - "B11": { - "type": "image/x.geotiff", - "eo:bands": [10], - "title": "Band 11 (lwir)" - }, - "ANG": { - "title": "Angle coefficients file", - "type": "text/plain" - }, - "MTL": { - "title": "original metadata file", - "type": "text/plain" - }, - "BQA": { - "title": "Band quality data", - "type": "image/x.geotiff" - } - }, - "links": [ - { - "rel": "self", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "parent", - "href": "https://sat-api-dev.developmentseed.org/stac" - }, - { - "rel": "root", - "href": "https://sat-api-dev.developmentseed.org/stac" - }, - { - "rel": "items", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1/items" - } - ] - } - ], - "search": { - "endpoint": "https://sat-api.developmentseed.org", - "parameters": { - "intersects": { - "type": "Feature", - "properties": {}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [11.984710693359375, 44.815941348210835], - [12.752380371093748, 44.815941348210835], - [12.752380371093748, 45.67740123855739], - [11.984710693359375, 45.67740123855739], - [11.984710693359375, 44.815941348210835] - ] - ] - } - }, - "query": { - "collection": { - "eq": "landsat-8-l1" - } - } - } - } -} diff --git a/intake_stac/tests/test_catalog.py b/intake_stac/tests/test_catalog.py index b5c65ff..e601612 100644 --- a/intake_stac/tests/test_catalog.py +++ b/intake_stac/tests/test_catalog.py @@ -1,167 +1,181 @@ -import os +import datetime +import os.path import sys import intake +import pystac import pytest -import satstac from intake.catalog import Catalog from intake.catalog.local import LocalCatalogEntry from intake_stac import StacCatalog, StacCollection, StacItem, StacItemCollection -from intake_stac.catalog import StacEntry +from intake_stac.catalog import CombinedAssets, StacAsset +here = os.path.dirname(__file__) -@pytest.fixture(scope='module') -def stac_cat_url(): - return 'https://raw.githubusercontent.com/sat-utils/sat-stac/master/test/catalog/catalog.json' # noqa: E501 +# sat-stac examples +# ----- +sat_stac_repo = 'https://raw.githubusercontent.com/sat-utils/sat-stac/master' +cat_url = f'{sat_stac_repo}/test/catalog/catalog.json' +col_url = f'{sat_stac_repo}/test/catalog/eo/sentinel-2-l1c/catalog.json' +item_url = f'{sat_stac_repo}/test/catalog/eo/landsat-8-l1/item.json' + +# pystac examples +# ----- +pystac_repo = 'https://raw.githubusercontent.com/stac-utils/pystac/develop/tests/data-files' +itemcol_url = ( + f'{pystac_repo}/examples/1.0.0-beta.2/extensions/single-file-stac/examples/example-search.json' +) @pytest.fixture(scope='module') -def stac_cat_obj(stac_cat_url): - return satstac.Catalog.open(stac_cat_url) +def pystac_cat(): + return pystac.Catalog.from_file(cat_url) @pytest.fixture(scope='module') -def stac_collection_obj(): - return satstac.Collection.open( - 'https://raw.githubusercontent.com/sat-utils/sat-stac/master/test/catalog/eo/sentinel-2-l1c/catalog.json' # noqa: E501 - ) +def pystac_col(): + return pystac.Collection.from_file(col_url) @pytest.fixture(scope='module') -def stac_item_collection_obj(): - # TODO: change load -> open, - # see https://github.com/sat-utils/sat-stac/issues/52 - # use github/sat-utils/sat-stac/master/test/items.json - return satstac.ItemCollection.load( - os.path.join(os.path.dirname(__file__), 'items.json') # noqa: E501 - ) +def pystac_item(): + return pystac.Item.from_file(item_url) @pytest.fixture(scope='module') -def stac_item_obj(): - return satstac.Item.open( - 'https://raw.githubusercontent.com/sat-utils/sat-stac/master/test/catalog/eo/landsat-8-l1/item.json' # noqa: E501 - ) +def pystac_itemcol(): + return pystac.read_file(itemcol_url) @pytest.fixture(scope='module') -def cat(stac_cat_url): - return StacCatalog.from_url(stac_cat_url) +def intake_stac_cat(): + return StacCatalog.from_url(cat_url) -def test_init_catalog_from_url(stac_cat_url): - cat = StacCatalog(stac_cat_url) +def test_init_catalog_from_url(): + cat = StacCatalog(cat_url) assert isinstance(cat, intake.catalog.Catalog) assert cat.name == 'stac-catalog' assert cat.discover()['container'] == 'catalog' assert int(cat.metadata['stac_version'][0]) >= 1 - cat = StacCatalog.from_url(stac_cat_url) + cat = StacCatalog.from_url(cat_url) assert isinstance(cat, intake.catalog.Catalog) assert cat.name == 'stac-catalog' assert cat.discover()['container'] == 'catalog' assert int(cat.metadata['stac_version'][0]) >= 1 # test kwargs are passed through - cat = StacCatalog.from_url(stac_cat_url, name='intake-stac-test') + cat = StacCatalog.from_url(cat_url, name='intake-stac-test') assert 'intake-stac-test' == cat.name -def test_init_catalog_from_satstac_obj(stac_cat_obj): - cat = StacCatalog(stac_cat_obj) +def test_init_catalog_from_pystac_obj(pystac_cat): + cat = StacCatalog(pystac_cat) assert isinstance(cat, intake.catalog.Catalog) assert cat.discover()['container'] == 'catalog' assert cat.name == 'stac-catalog' - assert cat.name == stac_cat_obj.id + assert cat.name == pystac_cat.id # test kwargs are passed through - cat = StacCatalog(stac_cat_obj, name='intake-stac-test') + cat = StacCatalog(pystac_cat, name='intake-stac-test') assert 'intake-stac-test' == cat.name -def test_init_catalog_with_wrong_type_raises(stac_cat_obj): +def test_init_catalog_with_wrong_type_raises(pystac_cat): with pytest.raises(ValueError): - StacCollection(stac_cat_obj) + StacCollection(pystac_cat) def test_init_catalog_with_bad_url_raises(): - with pytest.raises(satstac.STACError): - StacCatalog('foo.bar') + # json.decoder.JSONDecodeError or FileNotFoundError + with pytest.raises(Exception): + StacCatalog('https://raw.githubusercontent.com/') -def test_serialize(cat): - cat_str = cat.serialize() +def test_serialize(intake_stac_cat): + cat_str = intake_stac_cat.serialize() assert isinstance(cat_str, str) -def test_cat_entries(cat): - assert list(cat) - assert all([isinstance(v, (LocalCatalogEntry, Catalog)) for _, v in cat.items()]) +def test_cat_entries(intake_stac_cat): + assert list(intake_stac_cat) + assert all([isinstance(v, (LocalCatalogEntry, Catalog)) for _, v in intake_stac_cat.items()]) -def test_cat_name_from_satstac_catalog_id(cat): - assert cat.name == 'stac-catalog' +def test_cat_name_from_pystac_catalog_id(intake_stac_cat): + assert intake_stac_cat.name == 'stac-catalog' -def test_cat_from_collection(stac_collection_obj): - cat = StacCollection(stac_collection_obj) - assert 'S2B_25WFU_20200610_0_L1C' in cat - assert 'B05' in cat.S2B_25WFU_20200610_0_L1C +def test_cat_from_collection(pystac_col): + cat = StacCollection(pystac_col) + subcat_name = 'sentinel-2a-catalog' + item_name = 'S2B_25WFU_20200610_0_L1C' + assert cat.name == pystac_col.id + assert subcat_name in cat + assert item_name in cat[subcat_name] + assert 'B04' in cat[subcat_name][item_name] -def test_cat_from_item_collection(stac_item_collection_obj): - cat = StacItemCollection(stac_item_collection_obj) - assert 'LC81920292019008LGN00' in cat - assert 'B5' in cat.LC81920292019008LGN00 +def test_cat_from_item_collection(pystac_itemcol): + cat = StacItemCollection(pystac_itemcol) + assert 'LC80340332018034LGN00' in cat + assert 'B5' in cat.LC80340332018034LGN00 -def test_cat_from_item(stac_item_obj): - cat = StacItem(stac_item_obj) - # weird, why is this different than the name above? +def test_cat_from_item(pystac_item): + cat = StacItem(pystac_item) assert 'B5' in cat -def test_cat_item_stacking(stac_item_obj): - item = StacItem(stac_item_obj) +def test_cat_item_stacking(pystac_item): + item = StacItem(pystac_item) list_of_bands = ['B1', 'B2'] new_entry = item.stack_bands(list_of_bands) - assert isinstance(new_entry, StacEntry) + assert isinstance(new_entry, CombinedAssets) assert new_entry._description == 'B1, B2' assert new_entry.name == 'B1_B2' new_da = new_entry().to_dask() assert sorted([dim for dim in new_da.dims]) == ['band', 'x', 'y'] - assert (new_da.band == list_of_bands).all() -def test_cat_item_stacking_using_common_name(stac_item_obj): - item = StacItem(stac_item_obj) +def test_cat_item_stacking_using_common_name(pystac_item): + item = StacItem(pystac_item) list_of_bands = ['coastal', 'blue'] new_entry = item.stack_bands(list_of_bands) - assert isinstance(new_entry, StacEntry) + assert isinstance(new_entry, CombinedAssets) assert new_entry._description == 'B1, B2' assert new_entry.name == 'coastal_blue' new_da = new_entry().to_dask() assert sorted([dim for dim in new_da.dims]) == ['band', 'x', 'y'] + + +def test_cat_item_stacking_path_as_pattern(pystac_item): + item = StacItem(pystac_item) + list_of_bands = ['B1', 'B2'] + new_entry = item.stack_bands(list_of_bands, path_as_pattern='{}{band:2}.TIF') + assert isinstance(new_entry, CombinedAssets) + new_da = new_entry().to_dask() assert (new_da.band == ['B1', 'B2']).all() -def test_cat_item_stacking_dims_of_different_type_raises_error(stac_item_obj): - item = StacItem(stac_item_obj) +def test_cat_item_stacking_dims_of_different_type_raises_error(pystac_item): + item = StacItem(pystac_item) list_of_bands = ['B1', 'ANG'] with pytest.raises(ValueError, match=('ANG not found in list of eo:bands in collection')): item.stack_bands(list_of_bands) -def test_cat_item_stacking_dims_with_nonexistent_band_raises_error(stac_item_obj,): # noqa: E501 - item = StacItem(stac_item_obj) +def test_cat_item_stacking_dims_with_nonexistent_band_raises_error(pystac_item,): # noqa: E501 + item = StacItem(pystac_item) list_of_bands = ['B1', 'foo'] with pytest.raises(ValueError, match="'B8', 'B9', 'blue', 'cirrus'"): item.stack_bands(list_of_bands) -def test_cat_item_stacking_dims_of_different_size_regrids(stac_item_obj): - item = StacItem(stac_item_obj) +def test_cat_item_stacking_dims_of_different_size_regrids(pystac_item): + item = StacItem(pystac_item) list_of_bands = ['B1', 'B8'] B1_da = item.B1.to_dask() assert B1_da.shape == (1, 7791, 7651) @@ -171,92 +185,99 @@ def test_cat_item_stacking_dims_of_different_size_regrids(stac_item_obj): new_da = new_entry().to_dask() assert new_da.shape == (2, 15581, 15301) assert sorted([dim for dim in new_da.dims]) == ['band', 'x', 'y'] - assert (new_da.band == list_of_bands).all() -def test_stac_entry_constructor(): +def test_asset_describe(pystac_item): + item = StacItem(pystac_item) key = 'B1' - item = { - 'href': 'https://landsat-pds.s3.amazonaws.com/c1/L8/120/046/LC08_L1GT_120046_20181012_20181012_01_RT/LC08_L1GT_120046_20181012_20181012_01_RT_B1.TIF', # noqa: E501 - 'type': 'image/x.geotiff', - 'eo:bands': [0], - 'title': 'Band 1 (coastal)', - } - - entry = StacEntry(key, item) - - d = entry.describe() + asset = item[key] + d = asset.describe() assert d['name'] == key assert d['container'] == 'xarray' assert d['plugin'] == ['rasterio'] - assert d['args']['urlpath'] == item['href'] - assert d['description'] == item['title'] - assert d['metadata'] == item + assert d['args']['urlpath'] == asset.urlpath + assert d['description'] == asset.description + # NOTE: note sure why asset.metadata has 'catalog_dir' key ? + # assert d['metadata'] == asset.metadata -def test_missing_type(): +def test_asset_missing_type(pystac_item): key = 'B1' - item = { - 'href': 'https://landsat-pds.s3.amazonaws.com/c1/L8/120/046/LC08_L1GT_120046_20181012_20181012_01_RT/LC08_L1GT_120046_20181012_20181012_01_RT_B1.TIF', # noqa: E501 - 'type': '', - } - - entry = StacEntry(key, item) - + asset = pystac_item.assets.get('B1') + asset.media_type = '' + with pytest.warns(Warning, match='STAC Asset'): + entry = StacAsset(key, asset) d = entry.describe() - print(d) + assert d['name'] == key assert d['metadata']['type'] == 'application/rasterio' # default_type assert d['container'] == 'xarray' assert d['plugin'] == ['rasterio'] -def test_unknown_type(): +def test_asset_unknown_type(pystac_item): key = 'B1' - item = { - 'href': 'https://landsat-pds.s3.amazonaws.com/c1/L8/120/046/LC08_L1GT_120046_20181012_20181012_01_RT/LC08_L1GT_120046_20181012_20181012_01_RT_B1.TIF', # noqa: E501 - 'type': 'unrecognized', - } - - entry = StacEntry(key, item) - + asset = pystac_item.assets.get('B1') + asset.media_type = 'unrecognized' + entry = StacAsset(key, asset) d = entry.describe() - print(d) + assert d['name'] == key assert d['metadata']['type'] == 'unrecognized' assert d['container'] == 'xarray' assert d['plugin'] == ['rasterio'] -def test_cat_to_geopandas(stac_item_collection_obj): +def test_cat_to_geopandas(pystac_itemcol): + nfeatures = len(pystac_itemcol.ext['single-file-stac'].features) geopandas = pytest.importorskip('geopandas') - cat = StacItemCollection(stac_item_collection_obj) + cat = StacItemCollection(pystac_itemcol) df = cat.to_geopandas() assert isinstance(df, geopandas.GeoDataFrame) - assert len(df) == len(cat._stac_obj) + assert len(df) == nfeatures assert isinstance(df.geometry, geopandas.GeoSeries) assert isinstance(df.geometry.values, geopandas.array.GeometryArray) assert isinstance(df.geometry.dtype, geopandas.array.GeometryDtype) - assert df.crs == {'init': 'epsg:4326'} + epsg = df.crs.to_epsg() + assert epsg == 4326 @pytest.mark.parametrize('crs', ['IGNF:ETRS89UTM28', 'epsg:26909']) -def test_cat_to_geopandas_crs(crs, stac_item_collection_obj): +def test_cat_to_geopandas_crs(crs, pystac_itemcol): + nfeatures = len(pystac_itemcol.ext['single-file-stac'].features) geopandas = pytest.importorskip('geopandas') - cat = StacItemCollection(stac_item_collection_obj) + cat = StacItemCollection(pystac_itemcol) df = cat.to_geopandas(crs=crs) assert isinstance(df, geopandas.GeoDataFrame) - assert len(df) == len(cat._stac_obj) + assert len(df) == nfeatures assert df.crs == crs -def test_cat_to_missing_geopandas(stac_item_collection_obj, monkeypatch): +def test_cat_to_missing_geopandas(pystac_itemcol, monkeypatch): from unittest import mock with pytest.raises(ImportError): with mock.patch.dict(sys.modules, {'geopandas': None}): - cat = StacItemCollection(stac_item_collection_obj) + cat = StacItemCollection(pystac_itemcol) _ = cat.to_geopandas() + + +def test_load_satsearch_results(pystac_itemcol): + test_file = os.path.join(here, 'data/1.0.0beta2/earthsearch/single-file-stac.json') + catalog = intake.open_stac_item_collection(test_file) + assert isinstance(catalog, StacItemCollection) + assert len(catalog) == 18 + + +def test_collection_of_collection(): + space = pystac.SpatialExtent([[0, 1, 2, 3]]) + time = pystac.TemporalExtent([datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 1)]) + child = pystac.Collection('child', 'child-description', extent=pystac.Extent(space, time)) + parent = pystac.Collection('parent', 'parent-description', extent=pystac.Extent(space, time),) + parent.add_child(child) + + result = StacCollection(parent) + result._load() diff --git a/pyproject.toml b/pyproject.toml index 55a8a00..42b54d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,3 @@ [tool.black] line-length = 80 -target-version = ['py36', 'py37', 'py38'] +target-version = ['py37', 'py38'] diff --git a/requirements.txt b/requirements.txt index 0f1d4c0..8618ee7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ fsspec>=0.8.4 intake>=0.5.1 intake-xarray>=0.4 -sat-stac==0.4.* +pystac>=0.5.* diff --git a/setup.cfg b/setup.cfg index e35c412..9d44cb8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,7 +11,7 @@ select = B,C,E,F,W,T4,B9 [isort] known_first_party=intake_stac -known_third_party=intake,pkg_resources,pytest,satstac,setuptools +known_third_party=intake,pkg_resources,pystac,pytest,setuptools multi_line_output=3 include_trailing_comma=True force_grid_wrap=0