cars.applications.triangulation.line_of_sight_intersection

this module contains the dense_matching application class.

Module Contents

Classes

LineOfSightIntersection

Triangulation

Functions

compute_points_cloud(→ Dict[str, Tuple[xarray.Dataset, ...)

Compute points clouds from image objects and disparity objects.

class cars.applications.triangulation.line_of_sight_intersection.LineOfSightIntersection(conf=None)

Bases: cars.applications.triangulation.triangulation.Triangulation

Triangulation

check_conf(conf)

Check configuration

Parameters

conf (dict) – configuration to check

Returns

overloaded configuration

Return type

dict

get_geometry_loader()
run(sensor_image_left, sensor_image_right, epipolar_images_left, epipolar_images_right, grid_left, grid_right, epipolar_disparity_map_left, epipolar_disparity_map_right, epsg, orchestrator=None, pair_folder=None, pair_key='PAIR_0', uncorrected_grid_right=None, geoid_path=None, disp_min=0, disp_max=0)

Run Triangulation application.

Created left and right CarsDataset filled with xarray.Dataset, corresponding to 3D points clouds, stored on epipolar geometry grid.

Parameters
  • sensor_image_left (CarsDataset) – tiled sensor left image Dict Must contain keys : “image”, “color”, “geomodel”, “no_data”, “mask”. Paths must be absolutes

  • sensor_image_right (CarsDataset) – tiled sensor right image Dict Must contain keys : “image”, “color”, “geomodel”, “no_data”, “mask”. Paths must be absolutes

  • epipolar_images_left (CarsDataset) – tiled epipolar left image

  • epipolar_images_right (CarsDataset) – tiled epipolar right image

  • grid_left

    left epipolar grid. Grid CarsDataset contains :

    • A single tile stored in [0,0], containing a (N, M, 2) shape array in xarray Dataset

    • Attributes containing: “grid_spacing”, “grid_origin”, “epipolar_size_x”, epipolar_size_y”, “epipolar_origin_x”, “epipolar_origin_y”,”epipolar_spacing_x”, “epipolar_spacing”, “disp_to_alt_ratio”, :type grid_left: CarsDataset

  • grid_right (CarsDataset) –

    right epipolar grid. Grid CarsDataset contains :

    • A single tile stored in [0,0], containing a (N, M, 2) shape

      array in xarray Dataset

    • Attributes containing: “grid_spacing”, “grid_origin”,

      ”epipolar_size_x”, epipolar_size_y”, “epipolar_origin_x”, “epipolar_origin_y”,”epipolar_spacing_x”, “epipolar_spacing”, “disp_to_alt_ratio”,

  • epipolar_disparity_map_left (CarsDataset) –

    tiled left disparity map or sparse matches:

    • if CarsDataset is instance of “arrays”, CarsDataset contains:

      • N x M Delayed tiles Each tile will be a future xarray Dataset containing:

        • data with keys : “disp”, “disp_msk”

        • attrs with keys: profile, window, overlaps

      • attributes containing:”largest_epipolar_region” “opt_epipolar_tile_size”

    • if CarsDataset is instance of “points”, CarsDataset contains:

      • N x M Delayed tiles Each tile will be a future pandas DataFrame containing:

        • data : (L, 4) shape matches

      • attributes containing:”disp_lower_bound”,”disp_upper_bound”, “elevation_delta_lower_bound”,”elevation_delta_upper_bound”

  • epipolar_disparity_map_right (CarsDataset) – tiled right disparity map or sparse matches

  • orchestrator – orchestrator used

  • pair_folder (str) – folder used for current pair

  • pair_key (str) – pair key id

  • uncorrected_grid_right (CarsDataset) – not corrected right epipolar grid used if self.snap_to_img1

  • geoid_path (str) – geoid path

  • disp_min (int) – minimum disparity

  • disp_max (int) – maximum disparity

Returns

left points cloud, right points cloud. Each CarsDataset contains:

  • N x M Delayed tiles Each tile will be a future xarray Dataset containing:

    • data : with keys : “x”, “y”, “z”, “corr_msk” optional: “color”, “msk”,

    • attrs with keys: “margins”, “epi_full_size”, “epsg”

  • attributes containing: “disp_lower_bound”, “disp_upper_bound”, “elevation_delta_lower_bound”,”elevation_delta_upper_bound”

Return type

Tuple(CarsDataset, CarsDataset)

cars.applications.triangulation.line_of_sight_intersection.compute_points_cloud(left_image_object: xarray.Dataset, right_image_object: xarray.Dataset, left_disparity_object: xarray.Dataset, right_disparity_object: xarray.Dataset, input_stereo_cfg: dict, geometry_loader: str, geoid_data: xarray.Dataset = None, snap_to_img1: bool = False, add_msk_info: bool = False, saving_info_left=None, saving_info_right=None) Dict[str, Tuple[xarray.Dataset, xarray.Dataset]]

Compute points clouds from image objects and disparity objects.

Parameters
  • left_image_object

    Left image dataset with :

    • cst.EPI_IMAGE

    • cst.EPI_MSK (if given)

    • cst.EPI_COLOR (for left, if given)

  • right_image_object (xr.Dataset) – Right image

  • left_disparity_object (xr.Dataset) –

    Left disparity map dataset with :

    • cst_disp.MAP

    • cst_disp.VALID

    • cst.EPI_COLOR

  • right_disparity_object (xr.Dataset) –

    Right disparity map dataset (None if use_sec_disp not activated) with :

    • cst_disp.MAP

    • cst_disp.VALID

    • cst.EPI_COLOR

  • input_stereo_cfg (dict) – Configuration for stereo processing

  • geometry_loader (str) – name of geometry loader to use

  • geoid_data (str) – Geoid used for altimetric reference. Defaults to None for using ellipsoid as altimetric reference.

  • snap_to_img1 (bool) – If True, Lines of Sight of img2 are moved so as to cross those of img1

  • add_msk_info (bool) – boolean enabling the addition of the masks’ information in the point clouds final dataset

Returns

Left disparity object, Right disparity object (if exists)

Returned objects are composed of :

  • dataset (None for right object if use_sec_disp not activated) with :

    • cst.X

    • cst.Y

    • cst.Z

    • cst.EPI_COLOR