source:
  type: swift
  kwargs:
    username: !env{{OS_USERNAME_DOWNLOAD}}
    password: "!env{{OS_PASSWORD_DOWNLOAD}}"
    tenant_name: "!env{{OS_TENANT_NAME_DOWNLOAD}}"
    tenant_id: "!env{{OS_TENANT_ID_DOWNLOAD}}"
    region_name: "!env{{OS_REGION_NAME_DOWNLOAD}}"
    auth_url: "!env{{OS_AUTH_URL_DOWNLOAD}}"
    auth_version: "!env{{ST_AUTH_VERSION_DOWNLOAD}}"
    user_domain_name: !env{{OS_USER_DOMAIN_NAME_DOWNLOAD}}
# target:
#   type: swift
#   kwargs:
#     auth_version: !env{{ST_AUTH_VERSION}}
#     auth_url: "!env{{OS_AUTH_URL}}"
#     username: "!env{{OS_USERNAME}}"
#     password: "!env{{OS_PASSWORD}}"
#     tenant_name: !env{{OS_TENANT_NAME}}
#     tenant_id: !env{{OS_TENANT_ID}}
#     region_name: !env{{OS_REGION_NAME}}
#     user_domain_name: !env{{OS_USER_DOMAIN_NAME}}
target:
  type: local
  kwargs:
    storage_path: /mnt/data/target

workdir: /mnt/data/workdir
keep_temp: true

# metadata file to look for in downloaded tar/zip file
metadata_glob: "*GSC*.xml"

# extractors for Product type / level
type_extractor:
  # xpath can also be a list of xpaths to be tried one after another
  xpath:
    - /gsc:report/gsc:opt_metadata/gml:using/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:shortName/text()
    - /gsc:report/gsc:sar_metadata/gml:using/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:shortName/text()
  map: # optional mapping from extracted type name to used product type name
    PHR_FUS__3: PH00

level_extractor:
  # xpath can also be a list of xpaths to be tried one after another
  xpath: substring-after(substring-after(/gsc:report/gsc:opt_metadata/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:parentIdentifier/text(), '/'), '/')
  map: # optional mapping


preprocessing:
  defaults:
    output:
      options:
        # WarpOptions (see https://gdal.org/python/osgeo.gdal-module.html#WarpOptions)
        format: COG
        dstSRS: "EPSG:4326"
        dstNodata: 0
        creationOptions:
          - BLOCKSIZE=512
          - COMPRESS=DEFLATE
          - NUM_THREADS=8
          - BIGTIFF=IF_SAFER
          - OVERVIEWS=AUTO
  types:
    KS03:
      nested: true
      data_file_globs:
        - "*.tif"
      additional_file_globs:
        - "*.rpc"
      georeference:
      stack_bands:
        # stack all bands for each scene in the product
        group_by: ".*/(.*)_P..tif"
        sort_by: ".*_P(R|G|B|N).tif"
        order:
          - R
          - G
          - B
          - N




    RS02: # as extracted/translated above
      # whether the package can contain sub-packages of TARs/ZIPs
      nested: true
      # glob selectors to look for source images in the source package
      data_file_globs:
        - "*.TIF"
      additional_file_globs:
        - "*.rpc"

      # a custom preprocessor function to be called on all selected files
      # custom_preprocessor:
      #   path: "path.to.some.module:attribute"
      #   # TODO: specify args/kwargs and pass meaningful parameters

      georeference:
        # georeference each file individually
        # - type: geotransform # one of geotransform, RPC, GCP, world file
        # - type: GCP


      stack_bands:
        # stack all bands for each scene in the product
        group_by: # TODO: figure out a way to get a grouping. e.g: part of the filename using regex?

      output:

      # define a custom postprocessor function to be called on the processed file
      # custom_postprocessor:
      #   path: "path.to.some.module:attribute"
      #   # TODO: specify args/kwargs and pass meaningful parameters

    CS00:
      nested: true
      data_file_globs:
        - "*.h5"

      subdatasets:
        data_file_glob: '*/*/*.h5'
        subdataset_types:
          '//S01/SBI': 'S01_SBI'

      georeference:
        type: corners
        corner_names: ["S01_SBI_Bottom_Left_Geodetic_Coordinates", "S01_SBI_Bottom_Right_Geodetic_Coordinates", "S01_SBI_Top_Left_Geodetic_Coordinates", "S01_SBI_Top_Right_Geodetic_Coordinates"]
        orbit_direction_name: Orbit_Direction
        force_north_up: false
        # gcp_srid:

      calc:
        formulas:
          - inputs:
              A:
                glob: '*.tif'
                band: 1
              B:
                glob: '*.tif'
                band: 2
            data_type: Float32
            formula: sqrt(A.astype(float)*A.astype(float)+B.astype(float)*B.astype(float))
            output_postfix: _proc
            nodata_value: 0
      output:
        options:
          # WarpOptions (see https://gdal.org/python/osgeo.gdal-module.html#WarpOptions)
          format: "COG"
          dstSRS: "EPSG:3857"
          dstNodata: 0
          creationOptions:
            - BLOCKSIZE=512
            - COMPRESS=DEFLATE
            - LEVEL=6
            - OVERVIEWS=AUTO
            - NUM_THREADS=8
            - BIGTIFF=IF_SAFER
            - RESAMPLING=CUBIC
    CS01:
      nested: true
      data_file_globs:
        - "*.h5"

      subdatasets:
        data_file_glob: '*/*.h5'
        subdataset_types:
          '//S01/SBI': 'S01_SBI'

      georeference:
        type: corners

# this configuration is still a stub
