cars.applications.dense_matching.basic_dense_matching_app
This module contains the implementation of a tiled Dense matching application
Classes
Implementation of a tiled Dense matching application, with support for |
Functions
|
Matching application wrapper. |
Module Contents
- class cars.applications.dense_matching.basic_dense_matching_app.BasicDenseMatchingApplication(conf=None)[source]
Bases:
cars.applications.dense_matching.abstract_dense_matching_app.AbstractDenseMatchingApplicationImplementation of a tiled Dense matching application, with support for dense matching methods
- schema
- orchestrator = None
- min_epi_tile_size = 300
- max_epi_tile_size = 1500
- epipolar_tile_margin_in_percent = 60
- min_elevation_offset = None
- max_elevation_offset = None
- disp_min_threshold = None
- disp_max_threshold = None
- save_intermediate_data
- use_global_disp_range = False
- local_disp_grid_step = 10
- disp_range_propagation_filter_size = 50
- epi_disp_grid_tile_size = 800
- required_bands = ['b0']
- property loader
- check_conf(conf)[source]
Merge user configuration with default values and validate schema. Extra keys in conf are preserved and ignored during schema validation.
- get_optimal_tile_size(disp_range_grid, max_ram_per_worker)[source]
Get the optimal tile size to use during dense matching.
- Parameters:
disp_range_grid – minimum and maximum disparity grid
max_ram_per_worker – maximum ram per worker
- Returns:
optimal tile size
- get_required_bands()[source]
Get bands required by this application
- Returns:
required bands for left and right image
- Return type:
dict
- get_performance_map_parameters()[source]
Get parameter linked to performance, that will be used in triangulation
- Returns:
parameters to use
- Type:
dict
- get_margins_fun(grid_left, disp_range_grid)[source]
Get Margins function that generates margins needed by matching method, to use during resampling
- Parameters:
grid_left – left epipolar grid
disp_range_grid – minimum and maximum disparity grid
- Returns:
function that generates margin for given roi
- generate_disparity_grids(sensor_image_right, grid_right, geom_plugin_with_dem_and_geoid, dmin=None, dmax=None, dem_min=None, dem_max=None, pair_folder=None, orchestrator=None)
Generate disparity grids min and max, with given step
global mode: uses dmin and dmax local mode: uses dems
- Parameters:
sensor_image_right (dict) – sensor image right
grid_right (dict) – right epipolar grid
geom_plugin_with_dem_and_geoid (GeometryPlugin) – geometry plugin with dem mean used to generate epipolar grids
dmin (float) – minimum disparity
dmax (float) – maximum disparity
dem_min (str) – path to minimum dem
dem_max (str) – path to maximum dem
pair_folder (str) – folder used for current pair
orchestrator (Orchestrator) – orchestrator
:return disparity grid range, containing grid min and max :rtype: CarsDataset
- run(epipolar_images_left, epipolar_images_right, local_tile_optimal_size_fun, orchestrator=None, pair_folder=None, pair_key='PAIR_0', disp_range_grid=None, compute_disparity_masks=False, margins_to_keep=0, texture_bands=None, classif_bands_to_mask=None)[source]
Run Matching application.
Create CarsDataset filled with xarray.Dataset, corresponding to epipolar disparities, on the same geometry than epipolar_images_left.
- Parameters:
epipolar_images_left (CarsDataset) –
tiled left epipolar CarsDataset contains:
N x M Delayed tiles. Each tile will be a future xarray Dataset containing:
data with keys : “im”, “msk”, “texture”
attrs with keys: “margins” with “disp_min” and “disp_max” “transform”, “crs”, “valid_pixels”, “no_data_mask”, “no_data_img”
- attributes containing:
”largest_epipolar_region”,”opt_epipolar_tile_size”
epipolar_images_right (CarsDataset) –
tiled right epipolar CarsDataset contains:
N x M Delayed tiles. Each tile will be a future xarray Dataset containing:
data with keys : “im”, “msk”, “texture”
- attrs with keys: “margins” with “disp_min” and “disp_max”
”transform”, “crs”, “valid_pixels”, “no_data_mask”, “no_data_img”
- attributes containing:
”largest_epipolar_region”,”opt_epipolar_tile_size”
local_tile_optimal_size_fun (func) – function to compute local optimal tile size
orchestrator – orchestrator used
pair_folder (str) – folder used for current pair
pair_key (str) – pair id
disp_range_grid (dict) – minimum and maximum disparity grid
disp_to_alt_ratio (float) – disp to alti ratio used for performance map
margins_to_keep (int) – margin to keep after dense matching
texture_bands (list) – indices of bands from epipolar_images_left used for output texture
- Returns:
disparity map: The 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”,
”disp_min_tiling”, “disp_max_tiling”
- Return type:
- cars.applications.dense_matching.basic_dense_matching_app.basic_dense_matching_wrapper(dense_matching_method, left_image_object: xarray.Dataset, right_image_object: xarray.Dataset, disp_range_grid, saving_info=None, compute_disparity_masks=False, crop_with_range=None, left_overlaps=None, margins_to_keep=0, texture_bands=None, classif_bands_to_mask=None)[source]
Matching application wrapper.
Create CarsDataset filled with xarray.Dataset, corresponding to epipolar disparities, on the same geometry than left_image_object.
- Parameters:
left_image_object (CarsDataset) –
tiled left epipolar CarsDataset contains:
N x M Delayed tiles. Each tile will be a future xarray Dataset containing:
data with keys : “im”, “msk”, “texture”
attrs with keys: “margins” with “disp_min” and “disp_max” “transform”, “crs”, “valid_pixels”, “no_data_mask”, “no_data_img”
- attributes containing:
”largest_epipolar_region”,”opt_epipolar_tile_size”
right_image_object (CarsDataset) –
tiled right epipolar CarsDataset contains:
N x M Delayed tiles. Each tile will be a future xarray Dataset containing:
data with keys : “im”, “msk”, “texture”
- attrs with keys: “margins” with “disp_min” and “disp_max”
”transform”, “crs”, “valid_pixels”, “no_data_mask”, “no_data_img”
- attributes containing:
”largest_epipolar_region”,”opt_epipolar_tile_size”
disp_range_grid (CarsDict) – minimum and maximum disparity grid
saving_info (dict) – information required to save output data
compute_disparity_masks (bool) – activate computation of disparity masks
crop_with_range (int) – crop disparity map using provided disparity range
left_overlaps (dict) – overlaps associated to left image tiles
margins_to_keep (int) – margin to keep after dense matching
texture_bands (list) – indices of bands from epipolar_images_left used for output texture
classif_bands_to_mask (list of str / int) – bands from classif to mask
- Returns:
Left to right disparity dataset Returned dataset is composed of :
cst_disp.MAP
cst_disp.VALID
cst.EPI_TEXTURE