source:
  type: swift
  kwargs:
    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}'
    auth_version: !env '${ST_AUTH_VERSION}'
    auth_url: !env '${OS_AUTH_URL}'
    user_domain_name: !env '${OS_USER_DOMAIN_NAME}'
    container: testing_preprocessor_stack
target:
  type: swift
  replace: true
  kwargs:
    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}'
    auth_version: !env '${ST_AUTH_VERSION}'
    auth_url: !env '${OS_AUTH_URL}'
    user_domain_name: !env '${OS_USER_DOMAIN_NAME}'
    container: preprocessor_results # change this?
workdir: /tmp
keep_temp: false
metadata_glob: "*GSC*.xml"
type_extractor:
  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()
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(), '/'), '/')
preprocessing:
  defaults:
    move_files: true
    data_file_globs:
      - '*.tif'
      - '*.jp2'
    output:
      options:
        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*"
      stack_bands:
        group_by: ".*/(.*)_P..tif"
        sort_by: ".*_P(R|G|B|N).tif"
        order:
          - R
          - G
          - B
          - N
    MER_RR__2P:
      georeference:
        geotransforms:
          - type: gcp
            tps: true
    RS02:
      nested: true
      data_file_globs:
        - "*imagery_*.tif"
      georeference:
        geotransforms:
          - type: gcp
      calc:
        formulas:
          # complex b1/b2 to b1 uint16 for all 4 polarizations
          - inputs:
              A:
                glob: '*HH.tif'
                band: 1
              B:
                glob: '*HH.tif'
                band: 2
            formula: sqrt(A.astype(float)*A.astype(float)+B.astype(float)*B.astype(float))
            output_postfix: _proc
            nodata_value: 0
            data_type: UInt16
          - inputs:
              A:
                glob: '*HV.tif'
                band: 1
              B:
                glob: '*HV.tif'
                band: 2
            formula: sqrt(A.astype(float)*A.astype(float)+B.astype(float)*B.astype(float))
            output_postfix: _proc
            nodata_value: 0
            data_type: UInt16
          - inputs:
              A:
                glob: '*VH.tif'
                band: 1
              B:
                glob: '*VH.tif'
                band: 2
            formula: sqrt(A.astype(float)*A.astype(float)+B.astype(float)*B.astype(float))
            output_postfix: _proc
            nodata_value: 0
            data_type: UInt16
          - inputs:
              A:
                glob: '*VV.tif'
                band: 1
              B:
                glob: '*VV.tif'
                band: 2
            formula: sqrt(A.astype(float)*A.astype(float)+B.astype(float)*B.astype(float))
            output_postfix: _proc
            nodata_value: 0
            data_type: UInt16
      stack_bands:
        sort_by: ".*_(HH|HV|VH|VV)_proc.tif"
        order:
          - HH
          - HV
          - VH
          - VV
