dlr-eoc / ukis-pysat

The ukis-pysat package provides generic classes and functions to query, access and process multi-spectral and SAR satellite images
Apache License 2.0
27 stars 8 forks source link

Evaluate stactools #129

Closed fwfichtner closed 3 years ago

fwfichtner commented 3 years ago

stactools has subpackages which will and might be able to replace some part of what we did in data. We should compare their results with ours and identify problems/directly use stactools, etc.

It is basically a command line tool on top of PySTAC. What might be interesting are the subpackages

shiwakotisurendra commented 3 years ago

I explored through the stactools documentation and references and here is my summary of what i found. stactools is a command line tool for utilizing STAC and is based on Pystac. stactools.core package has methods of copying and merging catalogs in STAC. a) assets in a catalogs can be copied or moved from one subdirectory to another subdirectory . stactools.core.copy.move_all_assets(catalog, asset subdirectory=None, make_hrefs_relative=True, copy=False, ignore_conflicts=False )

b) it can be used to merge the assets from source_item into target_item .The geometry and bounding box of the items are also merged. stactools.core.merge.merge_items(source_item, target_item, move_assets=False, ignore_conflicts=False)

c) it can also be used to modify the layout of the STAC like generating subcatalogs based on item properties or creating subdirectories to organize item properties. stactools.core.layout.layout_catalog(catalog, item_path_template, create_subcatalogs=False, remove_existing_subcatalogs=False, move_assets=False)

d) stac info andstac describe display information about STACs.

e) stactools can provide methods to plug in functionality for different geospatial data sources which are included as stactools-subpackages . eg: stactools-aster , stactools-planet , stactools-sentinel2 , stactools-landsat

jonas-eberle commented 3 years ago

I would recommend the use of stactools especially for creating STAC metadata for specific missions (e.g., Sentinel-2, Landsat). This can ensure that different data providers serve the same set of metadata with the same property names.

I foresee the use of stactools in the DLR HPDA terrabyte infrastructure to create STAC metadata for Sentinel-2, Landsat, Sentinel-1 (does not yet exists for the .SAFE-files from ESA), and hopefully others as well (e.g., MODIS).

By the way: stactools is not only a command line tool. You can use it within Python as well.

fwfichtner commented 3 years ago

@jonas-eberle did you already start working on that?

jonas-eberle commented 3 years ago

@fwfichtner I have used it for Sentinel-2 L2A data (still needs some bug fixing https://github.com/stactools-packages/sentinel2/issues/5). We have also worked towards the creation of STAC for Sentinel-1 (GRD/SLC) data (we have a script nearly ready but not yet put into the stactools structure).

I also plan to extend the Sentinel-2 stactools package to support L1C as well.

fwfichtner commented 3 years ago

We will try to follow best practices more in the future, also orientate more on what stactools does, etc. -> #155