s1tiling.libs.otbwrappers.Concatenate

class s1tiling.libs.otbwrappers.Concatenate(cfg: Configuration)[source]

Bases: _ConcatenatorFactory

Abstract factory that prepares steps that run Synthetize as described in Concatenation documentation.

Requires the following information from the configuration object:

  • ram_per_process

Requires the following information from the metadata dictionary

  • input filename

  • output filename

    New methods & Specialized methods

    __init__

    Constructor.

    _update_filename_meta_post_hook

    Make sure the task_name and the basename are updated

    _update_filename_meta_pre_hook

    Hook meant to be overridden to complete product metadata before they are used to produce filenames or tasknames.

    update_image_metadata

    Set concatenation related information that'll get carried around.

    update_out_filename

    This hook will be triggered everytime a new compatible input is added.

    Methods inherited from parent

    complete_meta

    Precompute output basename from the input file(s).

    build_step_output_tmp_filename

    This specialization of StepFactory.build_step_output_tmp_filename() will automatically insert .tmp before the filename extension.

    check_requirements

    This specialization of check_requirements() checks whether the related OTB application can correctly be executed from S1Tiling.

    parameters

    Returns the parameters to use with Synthetize OTB application.

    build_step_output_filename

    Returns the names of typical result files in case their production is required (i.e. not in-memory processing).

    update_filename_meta

    Duplicates, completes, and returns, the meta dictionary with specific information for the current factory regarding tasks analysis.

    output_directory

    Accessor to where output files will be stored in case their production is required (i.e. not in-memory processing).

    rename

    action meant to be registered in an s1tiling.libs.steps.AnyProducerStep.

    create_step

    Instanciates the step related to the current StepFactory, that consumes results from the previous input steps.

    requirement_context

    Returns the requirement context that permits to fix missing requirements.

    set_output_pixel_type

    Permits to have steps force the output pixel data.

    has_several_outputs

    Tells whether this step produces several files

    tmp_directory

    Directory used to store temporary files before they are renamed into their final version.

    Attributes and properties

    appname

    OTB Application property.

    image_description

    Property image_description, used to fill TIFFTAG_IMAGEDESCRIPTION

    name

    Step Name property.

    param_in

    Name of the "in" parameter used by the OTB Application.

    param_out

    Name of the "out" parameter used by the OTB Application.

    ram_per_process

    Property ram_per_process

_update_filename_meta_pre_hook(meta: Dict) Dict[source]

Hook meant to be overridden to complete product metadata before they are used to produce filenames or tasknames.

Called from update_filename_meta()

property appname: str

OTB Application property.

build_step_output_filename(meta: Dict) str | List[str]

Returns the names of typical result files in case their production is required (i.e. not in-memory processing).

This specialization uses gen_output_filename naming policy parameter to build the output filename. See the Available naming policies.

build_step_output_tmp_filename(meta: Dict) str | List[str]

This specialization of StepFactory.build_step_output_tmp_filename() will automatically insert .tmp before the filename extension.

check_requirements() Tuple[str, str] | None

This specialization of check_requirements() checks whether the related OTB application can correctly be executed from S1Tiling.

Returns:

A pair of the message indicating what is required, and some context how to fix it – by default: install OTB!

Returns:

None otherwise.

complete_meta(meta: Dict, all_inputs: List[Dict[str, AbstractStep]]) Dict

Precompute output basename from the input file(s).

In concatenation case, the task_name needs to be overridden to stay unique and common to all inputs.

Also, inject files to remove

create_step(execution_parameters: Dict, previous_steps: List[List[Dict[str, AbstractStep]]]) AbstractStep

Instanciates the step related to the current StepFactory, that consumes results from the previous input steps.

  1. This methods starts by updating metadata information through: complete_meta() on the input metadatas.

  2. Then it updates the GDAL image metadata information that will need to be written in the pipeline output image through update_image_metadata().

  3. Eventually the actual step creation method is executed according to the exact kind of step factory (ExecutableStepFactory, AnyProducerStepFactory, OTBStepFactory) through the variation point _do_create_actual_step().

While this method is not meant to be overridden, for simplity it will be in Store factory.

Note: it’s possible to override this method to return no step (None). In that case, no OTB Application would be registered in the actual Pipeline.

has_several_outputs() bool

Tells whether this step produces several files

property image_description: str | List[str]

Property image_description, used to fill TIFFTAG_IMAGEDESCRIPTION

property name: str

Step Name property.

output_directory(meta: Dict) str

Accessor to where output files will be stored in case their production is required (i.e. not in-memory processing)

This property is built from gen_output_dir construction parameter. Typical values for the parameter are:

  • os.path.join(cfg.output_preprocess, '{tile_name}'), where tile_name is looked into meta parameter

  • None, in that case the result will be the same as tmp_directory(). This case will make sense for steps that don’t produce required products

property param_in: str

Name of the “in” parameter used by the OTB Application. Default is likely to be “in”, while some applications use “io.in”, often “il” for list of files…

property param_out: str

Name of the “out” parameter used by the OTB Application. Default is likely to be “out”, whie some applications use “io.out”.

parameters(meta: Dict) Dict[str, str | int | float | bool | List[str]]

Returns the parameters to use with Synthetize OTB application.

property ram_per_process

Property ram_per_process

static rename(parameters: List[str], dryrun: bool) None

action meant to be registered in an s1tiling.libs.steps.AnyProducerStep. It takes care of renaming a product when there is only orthorectified product and no need for concatenation.

requirement_context() str

Returns the requirement context that permits to fix missing requirements. By default, OTB applications requires… OTB!

set_output_pixel_type(app, meta: Dict) None

Permits to have steps force the output pixel data.

tmp_directory(meta) str

Directory used to store temporary files before they are renamed into their final version.

This property is built from gen_tmp_dir construction parameter. Typical values for the parameter are:

  • os.path.join(cfg.tmpdir, 'S1')

  • os.path.join(cfg.tmpdir, 'S2', '{tile_name}') where tile_name is looked into meta parameter

update_filename_meta(meta: Dict) Dict

Duplicates, completes, and returns, the meta dictionary with specific information for the current factory regarding tasks analysis.

This method is used:

  • while analysing the dependencies to build the task graph – in this use case the relevant information are the file names and paths.

  • and indirectly before instanciating a new Step

Other metadata not filled here:

  • get_task_name() which is deduced from out_filename by default

  • out_extended_filename_complement()

It’s possible to inject some other metadata (that could be used from _get_canonical_input() for instance) thanks to _update_filename_meta_pre_hook().

This method is not meant to be overridden. Instead it implements the template method design pattern, and expects the customization to be done through the specialization of the hooks:

update_image_metadata(meta: Dict, all_inputs: List[Dict[str, AbstractStep]]) None[source]

Set concatenation related information that’ll get carried around.

update_out_filename(meta: Dict, with_task_info: TaskInputInfo) None[source]

This hook will be triggered everytime a new compatible input is added. The effect is quite unique to Concatenate as the name of the output product depends on the number of inputs are their common acquisition date.