cars.applications.triangulation.line_of_sight_intersection

this module contains the dense_matching application class.

Module Contents

Classes

LineOfSightIntersection

Triangulation

Functions

triangulation_wrapper(→ Dict[str, ...)

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

run(sensor_image_left, sensor_image_right, epipolar_image, grid_left, grid_right, epipolar_disparity_map, epsg, geometry_plugin, denoising_overload_fun=None, source_pc_names=None, orchestrator=None, pair_folder=None, pair_key='PAIR_0', uncorrected_grid_right=None, geoid_path=None, cloud_id=None, intervals=None)

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_image (CarsDataset) – tiled epipolar left 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 (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”

  • denoising_overload_fun (fun) – function to overload dataset

  • source_pc_names (list[str]) – source pc names

  • 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

  • intervals (None or [str, str]) – Either None or a List of 2 intervals indicators

Returns

points cloud The 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”, “z_inf”, “z_sup”

    • 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.triangulation_wrapper(disparity_object: xarray.Dataset, sensor1, sensor2, geomodel1, geomodel2, grid1, grid2, geometry_plugin, epsg, geoid_data: xarray.Dataset = None, denoising_overload_fun=None, cloud_id=None, intervals=None, saving_info=None) Dict[str, Tuple[xarray.Dataset, xarray.Dataset]]

Compute points clouds from image objects and disparity objects.

Parameters
  • disparity_object (xr.Dataset) – Left disparity map dataset with : - cst_disp.MAP - cst_disp.VALID - cst.EPI_COLOR

  • sensor1 (str) – path to left sensor image

  • sensor2 (str) – path to right sensor image

  • geomodel1 (dict) – path and attributes for left geomodel

  • geomodel2 (dict) – path and attributes for right geomodel

  • grid1 (CarsDataset) – dataset of the reference image grid file

  • grid2 (CarsDataset) – dataset of the secondary image grid file

  • geometry_plugin (AbstractGeometry) – geometry plugin to use

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

  • intervals – Either None or a List of 2 intervals indicators :type intervals: None or [str, str]

  • denoising_overload_fun (fun) – function to overload dataset

Returns

Left disparity object

Returned object is composed of :
  • dataset with :
    • cst.X

    • cst.Y

    • cst.Z

    • cst.EPI_COLOR

    • cst.Z_INF (optional)

    • cst.Z_SUP (optional)