cars 1.0.0a2__cp312-cp312-win_amd64.whl → 1.0.0a4__cp312-cp312-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cars might be problematic. Click here for more details.
- cars/__init__.py +3 -3
- cars/applications/__init__.py +0 -3
- cars/applications/application.py +14 -6
- cars/applications/application_template.py +42 -0
- cars/applications/auxiliary_filling/abstract_auxiliary_filling_app.py +12 -2
- cars/applications/auxiliary_filling/auxiliary_filling_algo.py +2 -2
- cars/applications/auxiliary_filling/auxiliary_filling_from_sensors_app.py +95 -46
- cars/applications/auxiliary_filling/auxiliary_filling_wrappers.py +7 -6
- cars/applications/dem_generation/abstract_dem_generation_app.py +9 -5
- cars/applications/dem_generation/dem_generation_algo.py +1 -1
- cars/applications/dem_generation/dem_generation_wrappers.py +44 -59
- cars/applications/dem_generation/dichotomic_generation_app.py +9 -6
- cars/applications/dem_generation/rasterization_app.py +112 -43
- cars/applications/dense_match_filling/__init__.py +1 -1
- cars/applications/dense_match_filling/abstract_dense_match_filling_app.py +2 -15
- cars/applications/dense_match_filling/fill_disp_algo.py +32 -373
- cars/applications/dense_match_filling/fill_disp_wrappers.py +0 -343
- cars/applications/dense_match_filling/zero_padding_app.py +10 -5
- cars/applications/dense_matching/abstract_dense_matching_app.py +2 -1
- cars/applications/dense_matching/census_mccnn_sgm_app.py +48 -60
- cars/applications/dense_matching/cpp/dense_matching_cpp.cp312-win_amd64.dll.a +0 -0
- cars/applications/dense_matching/cpp/dense_matching_cpp.cp312-win_amd64.pyd +0 -0
- cars/applications/dense_matching/dense_matching_algo.py +48 -14
- cars/applications/dense_matching/dense_matching_wrappers.py +11 -3
- cars/applications/dense_matching/disparity_grid_algo.py +95 -79
- cars/applications/dense_matching/loaders/config_mapping.json +13 -0
- cars/applications/dense_matching/loaders/global_land_cover_map.tif +0 -0
- cars/applications/dense_matching/loaders/pandora_loader.py +169 -34
- cars/applications/dsm_filling/border_interpolation_app.py +11 -12
- cars/applications/dsm_filling/bulldozer_filling_app.py +16 -15
- cars/applications/dsm_filling/exogenous_filling_app.py +14 -14
- cars/applications/grid_generation/abstract_grid_generation_app.py +1 -1
- cars/applications/grid_generation/epipolar_grid_generation_app.py +4 -2
- cars/applications/grid_generation/grid_correction_app.py +4 -1
- cars/applications/grid_generation/grid_generation_algo.py +7 -2
- cars/applications/ground_truth_reprojection/abstract_ground_truth_reprojection_app.py +1 -1
- cars/applications/ground_truth_reprojection/direct_localization_app.py +2 -2
- cars/applications/ground_truth_reprojection/ground_truth_reprojection_algo.py +2 -1
- cars/applications/point_cloud_fusion/abstract_pc_fusion_app.py +0 -155
- cars/applications/point_cloud_fusion/mapping_to_terrain_tiles_app.py +0 -658
- cars/applications/point_cloud_fusion/pc_fusion_algo.py +0 -1339
- cars/applications/point_cloud_fusion/pc_fusion_wrappers.py +0 -869
- cars/applications/point_cloud_outlier_removal/abstract_outlier_removal_app.py +11 -6
- cars/applications/point_cloud_outlier_removal/outlier_removal_algo.py +9 -8
- cars/applications/point_cloud_outlier_removal/small_components_app.py +101 -270
- cars/applications/point_cloud_outlier_removal/statistical_app.py +120 -277
- cars/applications/rasterization/abstract_pc_rasterization_app.py +2 -1
- cars/applications/rasterization/rasterization_algo.py +18 -6
- cars/applications/rasterization/rasterization_wrappers.py +2 -1
- cars/applications/rasterization/simple_gaussian_app.py +88 -116
- cars/applications/resampling/abstract_resampling_app.py +1 -1
- cars/applications/resampling/bicubic_resampling_app.py +3 -1
- cars/applications/resampling/resampling_algo.py +60 -53
- cars/applications/resampling/resampling_wrappers.py +3 -1
- cars/applications/sparse_matching/abstract_sparse_matching_app.py +1 -1
- cars/applications/sparse_matching/sift_app.py +5 -25
- cars/applications/sparse_matching/sparse_matching_algo.py +3 -2
- cars/applications/sparse_matching/sparse_matching_wrappers.py +1 -1
- cars/applications/triangulation/abstract_triangulation_app.py +1 -1
- cars/applications/triangulation/line_of_sight_intersection_app.py +13 -11
- cars/applications/triangulation/pc_transform.py +552 -0
- cars/applications/triangulation/triangulation_algo.py +6 -4
- cars/applications/triangulation/triangulation_wrappers.py +1 -0
- cars/bundleadjustment.py +6 -6
- cars/cars.py +11 -9
- cars/core/cars_logging.py +80 -49
- cars/core/constants.py +0 -1
- cars/core/datasets.py +5 -2
- cars/core/geometry/abstract_geometry.py +364 -22
- cars/core/geometry/shareloc_geometry.py +112 -82
- cars/core/inputs.py +72 -19
- cars/core/outputs.py +1 -1
- cars/core/preprocessing.py +17 -3
- cars/core/projection.py +126 -6
- cars/core/tiling.py +10 -3
- cars/data_structures/cars_dataset.py +12 -10
- cars/data_structures/corresponding_tiles_tools.py +0 -103
- cars/data_structures/format_transformation.py +4 -1
- cars/devibrate.py +6 -3
- cars/extractroi.py +20 -21
- cars/orchestrator/cluster/abstract_cluster.py +15 -5
- cars/orchestrator/cluster/abstract_dask_cluster.py +6 -2
- cars/orchestrator/cluster/dask_jobqueue_utils.py +1 -1
- cars/orchestrator/cluster/log_wrapper.py +149 -22
- cars/orchestrator/cluster/mp_cluster/multiprocessing_cluster.py +12 -4
- cars/orchestrator/cluster/mp_cluster/multiprocessing_profiler.py +2 -2
- cars/orchestrator/cluster/pbs_dask_cluster.py +1 -1
- cars/orchestrator/cluster/sequential_cluster.py +5 -4
- cars/orchestrator/cluster/slurm_dask_cluster.py +1 -1
- cars/orchestrator/orchestrator.py +15 -4
- cars/orchestrator/registry/id_generator.py +1 -0
- cars/orchestrator/registry/saver_registry.py +2 -2
- cars/pipelines/conf_resolution/conf_final_resolution.json +5 -3
- cars/pipelines/default/default_pipeline.py +461 -1052
- cars/pipelines/parameters/advanced_parameters.py +91 -64
- cars/pipelines/parameters/advanced_parameters_constants.py +6 -5
- cars/pipelines/parameters/application_parameters.py +71 -0
- cars/pipelines/parameters/depth_map_inputs.py +0 -314
- cars/pipelines/parameters/dsm_inputs.py +40 -4
- cars/pipelines/parameters/output_parameters.py +44 -8
- cars/pipelines/parameters/sensor_inputs.py +122 -73
- cars/pipelines/parameters/sensor_inputs_constants.py +0 -2
- cars/pipelines/parameters/sensor_loaders/__init__.py +4 -3
- cars/pipelines/parameters/sensor_loaders/basic_classif_loader.py +106 -0
- cars/pipelines/parameters/sensor_loaders/{basic_sensor_loader.py → basic_image_loader.py} +16 -22
- cars/pipelines/parameters/sensor_loaders/pivot_classif_loader.py +121 -0
- cars/pipelines/parameters/sensor_loaders/{pivot_sensor_loader.py → pivot_image_loader.py} +10 -21
- cars/pipelines/parameters/sensor_loaders/sensor_loader.py +4 -6
- cars/pipelines/parameters/sensor_loaders/sensor_loader_template.py +1 -3
- cars/pipelines/pipeline_template.py +1 -3
- cars/pipelines/unit/unit_pipeline.py +676 -1070
- cars/starter.py +4 -3
- cars-1.0.0a4.dist-info/DELVEWHEEL +2 -0
- {cars-1.0.0a2.dist-info → cars-1.0.0a4.dist-info}/METADATA +135 -53
- {cars-1.0.0a2.dist-info → cars-1.0.0a4.dist-info}/RECORD +120 -134
- cars.libs/libgcc_s_seh-1-b2494fcbd4d80cf2c98fdd5261f6d850.dll +0 -0
- cars.libs/libstdc++-6-e9b0d12ae0e9555bbae55e8dfd08c3f7.dll +0 -0
- cars.libs/libwinpthread-1-7882d1b093714ccdfaf4e0789a817792.dll +0 -0
- cars/applications/dense_match_filling/cpp/__init__.py +0 -0
- cars/applications/dense_match_filling/cpp/dense_match_filling_cpp.cp312-win_amd64.dll.a +0 -0
- cars/applications/dense_match_filling/cpp/dense_match_filling_cpp.cp312-win_amd64.pyd +0 -0
- cars/applications/dense_match_filling/cpp/dense_match_filling_cpp.py +0 -72
- cars/applications/dense_match_filling/cpp/includes/dense_match_filling.hpp +0 -46
- cars/applications/dense_match_filling/cpp/meson.build +0 -9
- cars/applications/dense_match_filling/cpp/src/bindings.cpp +0 -11
- cars/applications/dense_match_filling/cpp/src/dense_match_filling.cpp +0 -142
- cars/applications/dense_match_filling/plane_app.py +0 -556
- cars/applications/hole_detection/__init__.py +0 -30
- cars/applications/hole_detection/abstract_hole_detection_app.py +0 -125
- cars/applications/hole_detection/cloud_to_bbox_app.py +0 -346
- cars/applications/hole_detection/hole_detection_algo.py +0 -144
- cars/applications/hole_detection/hole_detection_wrappers.py +0 -53
- cars/applications/point_cloud_denoising/__init__.py +0 -29
- cars/applications/point_cloud_denoising/abstract_pc_denoising_app.py +0 -273
- cars/applications/point_cloud_fusion/__init__.py +0 -30
- cars/applications/point_cloud_fusion/cloud_fusion_constants.py +0 -39
- cars/applications/sparse_matching/pandora_sparse_matching_app.py +0 -0
- cars/pipelines/parameters/depth_map_inputs_constants.py +0 -25
- cars-1.0.0a2.dist-info/DELVEWHEEL +0 -2
- cars.libs/libgcc_s_seh-1-f2b6825d483bdf14050493af93b5997d.dll +0 -0
- cars.libs/libstdc++-6-6b0059df6bc601df5a0f18a5805eea05.dll +0 -0
- cars.libs/libwinpthread-1-e01b8e85fd67c2b861f64d4ccc7df607.dll +0 -0
- {cars-1.0.0a2.dist-info → cars-1.0.0a4.dist-info}/WHEEL +0 -0
- {cars-1.0.0a2.dist-info → cars-1.0.0a4.dist-info}/entry_points.txt +0 -0
|
@@ -159,7 +159,7 @@ class Sift(SparseMatching, short_name=["sift"]):
|
|
|
159
159
|
|
|
160
160
|
# minimum number of matches to continue with
|
|
161
161
|
overloaded_conf["minimum_nb_matches"] = conf.get(
|
|
162
|
-
"minimum_nb_matches",
|
|
162
|
+
"minimum_nb_matches", 90
|
|
163
163
|
)
|
|
164
164
|
|
|
165
165
|
# sifts params
|
|
@@ -224,7 +224,7 @@ class Sift(SparseMatching, short_name=["sift"]):
|
|
|
224
224
|
"sift_matching_threshold": And(float, lambda x: x > 0),
|
|
225
225
|
"sift_n_octave": And(int, lambda x: x > 0),
|
|
226
226
|
"sift_n_scale_per_octave": And(int, lambda x: x > 0),
|
|
227
|
-
"sift_peak_threshold": Or(float,
|
|
227
|
+
"sift_peak_threshold": Or(float, int),
|
|
228
228
|
"sift_edge_threshold": float,
|
|
229
229
|
"sift_magnification": And(float, lambda x: x > 0),
|
|
230
230
|
"sift_window_size": And(int, lambda x: x > 0),
|
|
@@ -430,7 +430,7 @@ class Sift(SparseMatching, short_name=["sift"]):
|
|
|
430
430
|
"""
|
|
431
431
|
self.decimation_factor = value
|
|
432
432
|
|
|
433
|
-
def run(
|
|
433
|
+
def run( # pylint: disable=too-many-positional-arguments
|
|
434
434
|
self,
|
|
435
435
|
epipolar_image_left,
|
|
436
436
|
epipolar_image_right,
|
|
@@ -514,26 +514,6 @@ class Sift(SparseMatching, short_name=["sift"]):
|
|
|
514
514
|
epipolar_disparity_map_left.attributes.update(
|
|
515
515
|
epipolar_image_left.attributes
|
|
516
516
|
)
|
|
517
|
-
# check sift_peak_threshold with image type
|
|
518
|
-
# only if sift_peak_threshold is None
|
|
519
|
-
tmp_sift_peak_threshold = self.sift_peak_threshold
|
|
520
|
-
if not self.sift_peak_threshold:
|
|
521
|
-
logging.info("The sift_peak_threshold is set to auto-mode.")
|
|
522
|
-
# sift_peak_threshold is None or not specified
|
|
523
|
-
# check input type
|
|
524
|
-
if np.issubdtype(
|
|
525
|
-
epipolar_disparity_map_left.attributes["image_type"],
|
|
526
|
-
np.uint8,
|
|
527
|
-
):
|
|
528
|
-
tmp_sift_peak_threshold = 1
|
|
529
|
-
else:
|
|
530
|
-
tmp_sift_peak_threshold = 20
|
|
531
|
-
logging.info(
|
|
532
|
-
"The sift_peak_threshold will be set to {}.".format(
|
|
533
|
-
tmp_sift_peak_threshold
|
|
534
|
-
)
|
|
535
|
-
)
|
|
536
|
-
self.sift_peak_threshold = tmp_sift_peak_threshold
|
|
537
517
|
|
|
538
518
|
# Save disparity maps
|
|
539
519
|
if self.save_intermediate_data:
|
|
@@ -628,7 +608,7 @@ class Sift(SparseMatching, short_name=["sift"]):
|
|
|
628
608
|
matching_threshold=self.sift_matching_threshold,
|
|
629
609
|
n_octave=self.sift_n_octave,
|
|
630
610
|
n_scale_per_octave=self.sift_n_scale_per_octave,
|
|
631
|
-
peak_threshold=
|
|
611
|
+
peak_threshold=self.sift_peak_threshold,
|
|
632
612
|
edge_threshold=self.sift_edge_threshold,
|
|
633
613
|
magnification=self.sift_magnification,
|
|
634
614
|
window_size=self.sift_window_size,
|
|
@@ -647,7 +627,7 @@ class Sift(SparseMatching, short_name=["sift"]):
|
|
|
647
627
|
return epipolar_disparity_map_left, None
|
|
648
628
|
|
|
649
629
|
|
|
650
|
-
def compute_matches_wrapper(
|
|
630
|
+
def compute_matches_wrapper( # pylint: disable=too-many-positional-arguments
|
|
651
631
|
left_image_object: xr.Dataset,
|
|
652
632
|
right_image_object: xr.Dataset,
|
|
653
633
|
used_band="b0",
|
|
@@ -37,7 +37,7 @@ from cars.applications.sparse_matching.sparse_matching_wrappers import (
|
|
|
37
37
|
)
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
def compute_matches(
|
|
40
|
+
def compute_matches( # pylint: disable=too-many-positional-arguments
|
|
41
41
|
left: np.ndarray,
|
|
42
42
|
right: np.ndarray,
|
|
43
43
|
left_mask: np.ndarray = None,
|
|
@@ -191,6 +191,7 @@ def compute_matches(
|
|
|
191
191
|
right_id_offset = left_id
|
|
192
192
|
else:
|
|
193
193
|
right_descr_block = []
|
|
194
|
+
right_id_offset = 0
|
|
194
195
|
else:
|
|
195
196
|
right_descr_block = right_descr
|
|
196
197
|
right_id_offset = 0
|
|
@@ -253,7 +254,7 @@ def compute_matches(
|
|
|
253
254
|
return matches
|
|
254
255
|
|
|
255
256
|
|
|
256
|
-
def dataset_matching(
|
|
257
|
+
def dataset_matching( # pylint: disable=too-many-positional-arguments
|
|
257
258
|
ds1,
|
|
258
259
|
ds2,
|
|
259
260
|
used_band,
|
|
@@ -94,7 +94,7 @@ class Triangulation(ApplicationTemplate, metaclass=ABCMeta):
|
|
|
94
94
|
super().__init__(conf=conf)
|
|
95
95
|
|
|
96
96
|
@abstractmethod
|
|
97
|
-
def run( # noqa: C901
|
|
97
|
+
def run( # pylint: disable=too-many-positional-arguments # noqa: C901
|
|
98
98
|
self,
|
|
99
99
|
sensor_image_left,
|
|
100
100
|
sensor_image_right,
|
|
@@ -39,11 +39,8 @@ from shareloc.geofunctions.rectification_grid import RectificationGrid
|
|
|
39
39
|
import cars.orchestrator.orchestrator as ocht
|
|
40
40
|
from cars.applications import application_constants
|
|
41
41
|
from cars.applications.grid_generation import grid_generation_algo
|
|
42
|
-
from cars.applications.point_cloud_fusion import (
|
|
43
|
-
pc_fusion_algo,
|
|
44
|
-
pc_fusion_wrappers,
|
|
45
|
-
)
|
|
46
42
|
from cars.applications.triangulation import (
|
|
43
|
+
pc_transform,
|
|
47
44
|
triangulation_algo,
|
|
48
45
|
triangulation_constants,
|
|
49
46
|
)
|
|
@@ -58,6 +55,7 @@ from cars.core import constants as cst
|
|
|
58
55
|
from cars.core import inputs, projection, tiling
|
|
59
56
|
from cars.core.utils import safe_makedirs
|
|
60
57
|
from cars.data_structures import cars_dataset
|
|
58
|
+
from cars.orchestrator.cluster.log_wrapper import cars_profile
|
|
61
59
|
from cars.pipelines.parameters import sensor_inputs_constants as sens_cst
|
|
62
60
|
|
|
63
61
|
|
|
@@ -133,6 +131,8 @@ class LineOfSightIntersection(
|
|
|
133
131
|
|
|
134
132
|
return overloaded_conf
|
|
135
133
|
|
|
134
|
+
# pylint: disable=too-many-positional-arguments
|
|
135
|
+
@cars_profile(name="Save triangulation output", interval=0.5)
|
|
136
136
|
def save_triangulation_output( # noqa: C901 function is too complex
|
|
137
137
|
self,
|
|
138
138
|
epipolar_point_cloud,
|
|
@@ -355,7 +355,8 @@ class LineOfSightIntersection(
|
|
|
355
355
|
optional_data=True,
|
|
356
356
|
)
|
|
357
357
|
|
|
358
|
-
|
|
358
|
+
@cars_profile(name="Fill index", interval=0.5)
|
|
359
|
+
def fill_index( # pylint: disable=too-many-positional-arguments
|
|
359
360
|
self,
|
|
360
361
|
save_output_coordinates=True,
|
|
361
362
|
save_output_color=True,
|
|
@@ -466,7 +467,7 @@ class LineOfSightIntersection(
|
|
|
466
467
|
|
|
467
468
|
return csv_pc_dir_name, laz_pc_dir_name
|
|
468
469
|
|
|
469
|
-
def run( # noqa: C901
|
|
470
|
+
def run( # pylint: disable=too-many-positional-arguments # noqa: C901
|
|
470
471
|
self,
|
|
471
472
|
sensor_image_left,
|
|
472
473
|
sensor_image_right,
|
|
@@ -933,7 +934,7 @@ class LineOfSightIntersection(
|
|
|
933
934
|
return epipolar_point_cloud
|
|
934
935
|
|
|
935
936
|
|
|
936
|
-
def triangulation_wrapper(
|
|
937
|
+
def triangulation_wrapper( # pylint: disable=too-many-positional-arguments
|
|
937
938
|
disparity_object: xr.Dataset,
|
|
938
939
|
sensor1,
|
|
939
940
|
sensor2,
|
|
@@ -1154,10 +1155,10 @@ def triangulation_wrapper(
|
|
|
1154
1155
|
flatten_pc_dataset = None
|
|
1155
1156
|
if point_cloud_csv_file_name or point_cloud_laz_file_name:
|
|
1156
1157
|
# Convert epipolar array into point cloud
|
|
1157
|
-
flatten_pc_dataset, cloud_epsg =
|
|
1158
|
-
|
|
1158
|
+
flatten_pc_dataset, cloud_epsg = (
|
|
1159
|
+
pc_transform.depth_map_dataset_to_dataframe(pc_dataset, epsg)
|
|
1159
1160
|
)
|
|
1160
|
-
# Convert to
|
|
1161
|
+
# Convert to wanted epsg
|
|
1161
1162
|
if epsg is not None and cloud_epsg != epsg:
|
|
1162
1163
|
projection.point_cloud_conversion_dataframe(
|
|
1163
1164
|
flatten_pc_dataset, cloud_epsg, epsg
|
|
@@ -1165,7 +1166,7 @@ def triangulation_wrapper(
|
|
|
1165
1166
|
cloud_epsg = epsg
|
|
1166
1167
|
|
|
1167
1168
|
# Fill attributes for LAZ saving
|
|
1168
|
-
color_type =
|
|
1169
|
+
color_type = pc_transform.get_color_type([pc_dataset])
|
|
1169
1170
|
attributes = {
|
|
1170
1171
|
"epsg": cloud_epsg,
|
|
1171
1172
|
"color_type": color_type,
|
|
@@ -1196,6 +1197,7 @@ def triangulation_wrapper(
|
|
|
1196
1197
|
return pc_dataset, flatten_pc_dataset
|
|
1197
1198
|
|
|
1198
1199
|
|
|
1200
|
+
# pylint: disable=too-many-positional-arguments
|
|
1199
1201
|
def triangulation_wrapper_matches(
|
|
1200
1202
|
matches,
|
|
1201
1203
|
sensor1,
|