cars.applications.triangulation.triangulation_algo ================================================== .. py:module:: cars.applications.triangulation.triangulation_algo .. autoapi-nested-parse:: Preprocessing module: contains functions used for triangulation Functions --------- .. autoapisummary:: cars.applications.triangulation.triangulation_algo.triangulate cars.applications.triangulation.triangulation_algo.triangulate_matches cars.applications.triangulation.triangulation_algo.triangulate_sparse_matches cars.applications.triangulation.triangulation_algo.compute_point_cloud Module Contents --------------- .. py:function:: triangulate(geometry_plugin, sensor1, sensor2, geomodel1, geomodel2, grid1, grid2, disp_ref: xarray.Dataset, disp_key: str = cst_disp.MAP) -> Dict[str, xarray.Dataset] This function will perform triangulation from a disparity map :param geometry_plugin: geometry plugin to use :type geometry_plugin: AbstractGeometry :param sensor1: path to left sensor image :type sensor1: str :param sensor2: path to right sensor image :type sensor2: str :param geomodel1: path and attributes for left geomodel :type geomodel1: dict :param geomodel2: path and attributes for right geomodel :type geomodel2: dict :param grid1: dataset of the reference image grid file :type grid1: CarsDataset :param grid2: dataset of the secondary image grid file :type grid2: CarsDataset :param disp_ref: left to right disparity map dataset :param im_ref_msk_ds: reference image dataset (image and mask (if indicated by the user) in epipolar geometry) :param disp_key: disparity key in the dataset usually set to cst_disp.MAP, but can be a disparity interval bound :returns: point_cloud as a dictionary of dataset containing: - Array with shape (roi_size_x,roi_size_y,3), with last dimension corresponding to longitude, latitude and elevation - Array with shape (roi_size_x,roi_size_y) with output mask - Array for color (optional): only if color1 is not None The dictionary keys are : - 'ref' to retrieve the dataset built from the left to right disparity map - 'sec' to retrieve the dataset built from the right to left disparity map (if provided in input) .. py:function:: triangulate_matches(geometry_plugin, sensor1, sensor2, geomodel1, geomodel2, grid1, grid2, matches, interpolation_method=None) This function will perform triangulation from sift matches :param geometry_plugin: geometry plugin to use :type geometry_plugin: AbstractGeometry :param sensor1: path to left sensor image :type sensor1: str :param sensor2: path to right sensor image :type sensor2: str :param geomodel1: path and attributes for left geomodel :type geomodel1: dict :param geomodel2: path and attributes for right geomodel :type geomodel2: dict :param grid1: dataset of the reference image grid file :type grid1: CarsDataset :param grid2: dataset of the secondary image grid file :type grid2: CarsDataset :param matches: numpy.array of matches of shape (nb_matches, 4) :type data: numpy.ndarray :returns: point_cloud as a panda DataFrame containing: - Array with shape (nb_matches,1,3), with last dimension corresponding to longitude, latitude and elevation - Array with shape (nb_matches,1) with output mask - cst.X - cst.Y - cst.Z - corr_mask - lon - lat :rtype: pandas.DataFrame .. py:function:: triangulate_sparse_matches(sensor1, sensor2, geomodel1, geomodel2, interpolated_grid_left, interpolated_grid_right, matches, geometry_plugin, epsg) Triangulate matches in a metric system :param sensor_image_right: sensor image right :type sensor_image_right: CarsDataset :param sensor_image_left: sensor image left :type sensor_image_left: CarsDataset :param grid_left: grid left :type grid_left: CarsDataset CarsDataset :param grid_right: corrected grid right :type grid_right: CarsDataset :param interpolated_grid_left: rectification grid left :type interpolated_grid_left: shareloc.rectificationGrid :param interpolated_grid_right: rectification grid right :type interpolated_grid_right: shareloc.rectificationGrid :param matches: matches :type matches: np.ndarray :param geometry_plugin: geometry plugin to use :type geometry_plugin: AbstractGeometry :param srtm_dir: srtm directory :type srtm_dir: str :param default_alt: default altitude :type default_alt: float :param pair_folder: folder used for current pair :type pair_folder: str :param epsg: ground epsg :type epsg: int :return: disp min and disp max :rtype: float, float .. py:function:: compute_point_cloud(geometry_plugin, sensor1, sensor2, geomodel1, geomodel2, grid1, grid2, data: xarray.Dataset, roi_key: str) -> xarray.Dataset Compute point cloud :param geometry_plugin: geometry plugin to use :param sensor1: path to left sensor image :param sensor2: path to right sensor image :param geomodel1: path and attributes for left geomodel :param geomodel2: path and attributes for right geomodel :param grid1: dataset of the reference image grid file :param grid2: dataset of the secondary image grid file :param data: The reference to disparity map dataset :param roi_key: roi of the disparity map key ('roi' if cropped while calling create_disp_dataset, otherwise 'roi_with_margins') :return: the point cloud dataset