<pipeline>
  <info>
    <name>Raster reproject elevation</name>
    <pipeline_type>Normal</pipeline_type>
    <parameters>
      <parameter>
        <name>INPUT_RASTER</name>
        <default_value>https://files.geo.so.ch/ch.swisstopo.swissalti3d_2025.dtm/aktuell/ch.swisstopo.swissalti3d_2025.dtm.tif</default_value>
        <description>Local GeoTIFF or public HTTP COG URL</description>
      </parameter>
      <parameter>
        <name>OUTPUT_FILE</name>
        <default_value />
        <description>Local target GeoTIFF; directory must exist</description>
      </parameter>
      <parameter>
        <name>TARGET_CRS</name>
        <default_value>EPSG:2056</default_value>
        <description>Empty keeps source CRS</description>
      </parameter>
      <parameter>
        <name>PIXEL_SIZE_X</name>
        <default_value>1</default_value>
        <description>Positive pixel width in target CRS units</description>
      </parameter>
      <parameter>
        <name>PIXEL_SIZE_Y</name>
        <default_value>1</default_value>
        <description>Positive pixel height in target CRS units</description>
      </parameter>
      <parameter>
        <name>OUTPUT_NODATA</name>
        <default_value />
        <description>Optional sentinel; integer numeric output needs an inherited or explicit sentinel</description>
      </parameter>
    </parameters>
  </info>
  <order>
    <hop>
      <from>One operation</from>
      <to>Reproject raster source</to>
      <enabled>Y</enabled>
    </hop>
    <hop>
      <from>Reproject raster source</from>
      <to>Reproject raster</to>
      <enabled>Y</enabled>
    </hop>
    <hop>
      <from>Reproject raster</from>
      <to>Reproject raster write</to>
      <enabled>Y</enabled>
    </hop>
    <hop>
      <from>Reproject raster write</from>
      <to>Reproject raster remove raster value</to>
      <enabled>Y</enabled>
    </hop>
  </order>
  <transform>
    <name>One operation</name>
    <type>RowGenerator</type>
    <copies>1</copies>
    <distribute>Y</distribute>
    <limit>1</limit>
    <never_ending>N</never_ending>
    <fields>
      <field>
        <name>operation_id</name>
        <type>Integer</type>
        <nullif>1</nullif>
        <length>-1</length>
        <precision>-1</precision>
      </field>
    </fields>
    <GUI>
      <xloc>120</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
  </transform>
  <transform>
    <name>Reproject raster</name>
    <type>SOGIS_RASTER_VALUE_REPROJECT</type>
    <copies>1</copies>
    <distribute>Y</distribute>
    <targetCrs>${TARGET_CRS}</targetCrs>
    <resolutionX>${PIXEL_SIZE_X}</resolutionX>
    <resolutionY>${PIXEL_SIZE_Y}</resolutionY>
    <extentMode>BOUNDING_BOX</extentMode>
    <interpolation>BILINEAR</interpolation>
    <outputType>AUTO</outputType>
    <outputNoData>${OUTPUT_NODATA}</outputNoData>
    <prefix>raster_</prefix>
    <minX>2607400</minX>
    <minY>1228400</minY>
    <maxX>2607500</maxX>
    <maxY>1228500</maxY>
    <GUI>
      <xloc>560</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
    <version>1</version>
    <rasterField>__raster_value_2</rasterField>
  </transform>
  <transform_error_handling />
  <attributes />
  <transform>
    <name>Reproject raster source</name>
    <type>SOGIS_RASTER_READER</type>
    <copies>1</copies>
    <distribute>Y</distribute>
    <version>1</version>
    <rasterField>__raster_value_2</rasterField>
    <GUI>
      <xloc>340</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
    <source>${INPUT_RASTER}</source>
  </transform>
  <transform>
    <name>Reproject raster write</name>
    <type>SOGIS_RASTER_WRITER</type>
    <copies>1</copies>
    <distribute>Y</distribute>
    <version>1</version>
    <rasterField>__raster_value_2</rasterField>
    <GUI>
      <xloc>780</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
    <output>${OUTPUT_FILE}</output>
    <overwrite>N</overwrite>
    <prefix>raster_</prefix>
  </transform>
  <transform>
    <name>Reproject raster remove raster value</name>
    <type>SelectValues</type>
    <copies>1</copies>
    <distribute>Y</distribute>
    <version>1</version>
    <rasterField>__raster_value_2</rasterField>
    <GUI>
      <xloc>1000</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
    <fields>
      <select_unspecified>Y</select_unspecified>
      <remove>
        <name>__raster_value_2</name>
      </remove>
    </fields>
  </transform>
</pipeline>