pandora2d.check_configuration ============================= .. py:module:: pandora2d.check_configuration .. autoapi-nested-parse:: This module contains functions allowing to check the configuration given to Pandora2d pipeline. Attributes ---------- .. autoapisummary:: pandora2d.check_configuration.input_configuration_schema pandora2d.check_configuration.disparity_schema pandora2d.check_configuration.segment_mode_configuration_schema pandora2d.check_configuration.roi_configuration_schema pandora2d.check_configuration.expert_mode_profiling_schema pandora2d.check_configuration.output_configuration_schema Functions --------- .. autoapisummary:: pandora2d.check_configuration.check_datasets pandora2d.check_configuration.check_conf pandora2d.check_configuration.get_section_config pandora2d.check_configuration.update_global_conf pandora2d.check_configuration.check_segment_mode_section pandora2d.check_configuration.check_pipeline_section pandora2d.check_configuration.check_subpix_value_with_dichotomy pandora2d.check_configuration.check_matching_cost_method_with_ambiguity pandora2d.check_configuration.check_window_size_limit pandora2d.check_configuration.check_output_section pandora2d.check_configuration.check_expert_mode_section pandora2d.check_configuration.check_input_section pandora2d.check_configuration.check_disparity pandora2d.check_configuration.check_disparity_grids pandora2d.check_configuration.load_attributes pandora2d.check_configuration.check_step_from_attributes pandora2d.check_configuration.check_disparity_grids_from_directory_within_image pandora2d.check_configuration.update_roi_from_disparity_grid pandora2d.check_configuration.get_dictionary_from_init_grid pandora2d.check_configuration.check_disparity_ranges_are_inside_image pandora2d.check_configuration.check_roi_section pandora2d.check_configuration.check_roi_coherence pandora2d.check_configuration.check_right_nodata_condition pandora2d.check_configuration.build_default_short_configuration_input pandora2d.check_configuration.build_default_segment_mode_configuration Module Contents --------------- .. py:function:: check_datasets(left: xarray.Dataset, right: xarray.Dataset) -> None Check that left and right datasets are correct :param left: dataset :param right: dataset :raises ValueError: If required disparities are missing or dataset shapes differ. .. py:function:: check_conf(user_cfg: dict, pandora2d_machine: pandora2d.state_machine.Pandora2DMachine) -> dict Validate and complete the user configuration. :param user_cfg: user configuration dictionary :param pandora2d_machine: Pandora2DMachine instance :return: global configuration .. py:function:: get_section_config(user_cfg: dict[str, dict], key: str) -> dict[str, dict] Get the section configuration from key :param user_cfg: user configuration dictionary :param key: section name :return cfg: configuration section dictionary or empty dict .. py:function:: update_global_conf(global_cfg: dict[str, dict], completed_cfg: dict[str, dict]) -> None Update global_cfg with completed_cfg :param global_cfg: configuration to be updated :param completed_cfg: configuration used for the update .. py:function:: check_segment_mode_section(user_cfg: dict[str, dict]) -> None Complete and check if the segment mode dictionary is correct :param user_cfg: user configuration dictionary .. py:function:: check_pipeline_section(user_cfg: dict[str, dict], pandora2d_machine: pandora2d.state_machine.Pandora2DMachine) -> None Check if the pipeline is correct by - Checking the sequence of steps according to the machine transitions - Checking parameters, define in dictionary, of each Pandora step :param user_cfg: user configuration dictionary :param pandora2d_machine: Pandora2DMachine instance :raises KeyError: If the pipeline section is missing .. py:function:: check_subpix_value_with_dichotomy(refinement_method: str, subpix: int) -> None Check if we have a subpix value of 1 with a dichotomy refinement method, in which case we return a warning to prevent aliasing. :param refinement_method: refinement method in user configuration :param subpix: subpix value in user configuration .. py:function:: check_matching_cost_method_with_ambiguity(matching_cost_method: str) -> None Check the correlation method used in relation to ambiguity :param matching_cost_method: matching_cost method in user configuration .. py:function:: check_window_size_limit(user_cfg: dict) -> None Check that matching_cost window_size does not exceed left image dimensions. Expected call order within check_conf: after check_pipeline_section (completed matching_cost including window_size) and check_input_section (left image path). :param user_cfg: user configuration dictionary :raises ValueError: if window_size is larger than image rows or columns .. py:function:: check_output_section(user_cfg: dict[str, dict]) -> None Validate the given output section. :param user_cfg: user configuration dictionary .. py:function:: check_expert_mode_section(user_cfg: dict[str, dict]) -> None Check if expert mode section is correct :param user_cfg: user configuration dictionary .. py:function:: check_input_section(user_cfg: dict[str, dict], estimation_config: dict = None) -> None Complete and check if the input is correct :param user_cfg: user configuration dictionary :param estimation_config: get estimation config if in user_config :raises KeyError: If the input section is missing or incompatible with estimation mode .. py:function:: check_disparity(image_metadata: xarray.Dataset, input_cfg: dict, user_cfg: dict) -> None All checks on disparity :param image_metadata: left image metadata :param input_cfg: input configuration with default value :param user_cfg: user configuration dictionary :raises AttributeError: If disparity definitions or grids are invalid :raises ValueError: If disparity ranges are inconsistent with the image .. py:function:: check_disparity_grids(image_metadata: xarray.Dataset, disparity_row_reader: rasterio.io.DatasetReader, disparity_col_reader: rasterio.io.DatasetReader, row_path: pathlib.Path, user_cfg: dict) -> None Check that disparity grids contains two bands and are the same size as the input image :param image_metadata: left image metadata :param disparity_row_reader: row disparity raster reader :param disparity_col_reaser: col disparity raster reader :param row_path: disparity file or directory path :param user_cfg: user configuration dictionary :raises AttributeError: If grid dimensions, bands, or attributes are invalid .. py:function:: load_attributes(disparity_directory: pathlib.Path) -> dict Load attributes from json file in disparity directory. :param disparity_directory: directory where to find attributes' file. :return: attributes dictionary .. py:function:: check_step_from_attributes(attributes: dict, expected_step_value: list[int]) -> None Validate that the initial disparity attributes match the pipeline configuration. :param attributes: dictionary grid attributes :param expected_step_value: expected step values. :raises AttributeError: If the steps do not match. .. py:function:: check_disparity_grids_from_directory_within_image(attributes: dict, disparity_row_reader: rasterio.io.DatasetReader, image_metadata: xarray.Dataset) -> dict | None Check that disparity grids lie within image boundaries. :param attributes: dictionary grid attributes :param disparity_row_reader: row disparity raster reader :param image_metadata: left image metadata :return: ROI dictionary if grids define a sub-area, otherwise None :raises AttributeError: If disparity grids exceed image boundaries .. py:function:: update_roi_from_disparity_grid(row_min: int, row_max: int, col_min: int, col_max: int) -> dict Construct ROI from input disparity grids when there are smaller than image, :param row_min: minimum row index :param row_max: maximum row index (exclusive) :param col_min: minimum col index :param col_max: maximum col index (exclusive) :return: ROI dictionary .. py:function:: get_dictionary_from_init_grid(disparity_reader: rasterio.io.DatasetReader, disp_range: int) -> dict Get correct dictionaries to give as input of check_disparity_ranges_are_inside_image method from initial disparity grids. :param disparity_reader: disparity grid reader :param disp_range: range of exploration :return: a disparity dictionary to give to check_disparity_ranges_are_inside_image() method :raises ValueError: If the disparity grid is full on invalid values .. py:function:: check_disparity_ranges_are_inside_image(image_metadata: xarray.Dataset, row_disparity: dict, col_disparity: dict) -> None Raise an error if disparity ranges are out of image. :param image_metadata: left image metadata :param row_disparity: row disparity configuration :param col_disparity: column disparity configuration :raises ValueError: If ranges exceed image bounds .. py:function:: check_roi_section(user_cfg: dict[str, dict]) -> None Complete and check if roi section is correct :param user_cfg: user configuration dictionary .. py:function:: check_roi_coherence(roi_cfg: dict) -> None Check that the first ROI coords are lower than the last. :param roi_cfg: user configuration for ROI :raises ValueError: If first coordinate is greater than last .. py:function:: check_right_nodata_condition(cfg_input: dict, cfg_pipeline: dict) -> None Check that only int is accepted for nodata of right image when matching_cost_method is sad or ssd. :param cfg_input: inputs section of configuration :param cfg_pipeline: pipeline section of configuration :raises ValueError: If nodata type is invalid .. py:function:: build_default_short_configuration_input() -> dict Default configuration input .. py:function:: build_default_segment_mode_configuration() -> dict Default segment mode .. py:data:: input_configuration_schema .. py:data:: disparity_schema .. py:data:: segment_mode_configuration_schema .. py:data:: roi_configuration_schema .. py:data:: expert_mode_profiling_schema .. py:data:: output_configuration_schema