Closed fwfichtner closed 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
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.
@jonas-eberle did you already start working on that?
@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.
We will try to follow best practices more in the future, also orientate more on what stactools
does, etc. -> #155
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