cars 1.0.0a2__tar.gz → 1.0.0a4__tar.gz

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.

Files changed (259) hide show
  1. {cars-1.0.0a2 → cars-1.0.0a4}/.gitlab-ci.yml +11 -2
  2. {cars-1.0.0a2 → cars-1.0.0a4}/CONTRIBUTING.md +9 -10
  3. {cars-1.0.0a2 → cars-1.0.0a4}/PKG-INFO +135 -53
  4. cars-1.0.0a4/README.md +196 -0
  5. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/__init__.py +0 -3
  6. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/application.py +14 -6
  7. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/application_template.py +42 -0
  8. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/auxiliary_filling/abstract_auxiliary_filling_app.py +12 -2
  9. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/auxiliary_filling/auxiliary_filling_algo.py +2 -2
  10. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/auxiliary_filling/auxiliary_filling_from_sensors_app.py +95 -46
  11. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/auxiliary_filling/auxiliary_filling_wrappers.py +7 -6
  12. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/abstract_dem_generation_app.py +9 -5
  13. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/dem_generation_algo.py +1 -1
  14. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/dem_generation_wrappers.py +44 -59
  15. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/dichotomic_generation_app.py +9 -6
  16. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/rasterization_app.py +112 -43
  17. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_match_filling/__init__.py +1 -1
  18. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_match_filling/abstract_dense_match_filling_app.py +2 -15
  19. cars-1.0.0a4/cars/applications/dense_match_filling/fill_disp_algo.py +116 -0
  20. cars-1.0.0a4/cars/applications/dense_match_filling/fill_disp_wrappers.py +83 -0
  21. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_match_filling/zero_padding_app.py +10 -5
  22. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/abstract_dense_matching_app.py +2 -1
  23. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/census_mccnn_sgm_app.py +48 -60
  24. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/dense_matching_algo.py +48 -14
  25. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/dense_matching_wrappers.py +11 -3
  26. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/disparity_grid_algo.py +95 -79
  27. cars-1.0.0a4/cars/applications/dense_matching/loaders/config_mapping.json +13 -0
  28. cars-1.0.0a4/cars/applications/dense_matching/loaders/global_land_cover_map.tif +0 -0
  29. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/pandora_loader.py +169 -34
  30. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dsm_filling/border_interpolation_app.py +11 -12
  31. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dsm_filling/bulldozer_filling_app.py +16 -15
  32. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dsm_filling/exogenous_filling_app.py +14 -14
  33. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/abstract_grid_generation_app.py +1 -1
  34. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/epipolar_grid_generation_app.py +4 -2
  35. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/grid_correction_app.py +4 -1
  36. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/grid_generation_algo.py +7 -2
  37. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/ground_truth_reprojection/abstract_ground_truth_reprojection_app.py +1 -1
  38. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/ground_truth_reprojection/direct_localization_app.py +2 -2
  39. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/ground_truth_reprojection/ground_truth_reprojection_algo.py +2 -1
  40. cars-1.0.0a4/cars/applications/point_cloud_fusion/pc_fusion_wrappers.py +0 -0
  41. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/point_cloud_outlier_removal/abstract_outlier_removal_app.py +11 -6
  42. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/point_cloud_outlier_removal/outlier_removal_algo.py +9 -8
  43. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/point_cloud_outlier_removal/small_components_app.py +101 -270
  44. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/point_cloud_outlier_removal/statistical_app.py +120 -277
  45. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/rasterization/abstract_pc_rasterization_app.py +2 -1
  46. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/rasterization/rasterization_algo.py +18 -6
  47. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/rasterization/rasterization_wrappers.py +2 -1
  48. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/rasterization/simple_gaussian_app.py +88 -116
  49. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/resampling/abstract_resampling_app.py +1 -1
  50. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/resampling/bicubic_resampling_app.py +3 -1
  51. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/resampling/resampling_algo.py +60 -53
  52. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/resampling/resampling_wrappers.py +3 -1
  53. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/sparse_matching/abstract_sparse_matching_app.py +1 -1
  54. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/sparse_matching/sift_app.py +5 -25
  55. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/sparse_matching/sparse_matching_algo.py +3 -2
  56. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/sparse_matching/sparse_matching_wrappers.py +1 -1
  57. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/triangulation/abstract_triangulation_app.py +1 -1
  58. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/triangulation/line_of_sight_intersection_app.py +13 -11
  59. cars-1.0.0a4/cars/applications/triangulation/pc_transform.py +552 -0
  60. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/triangulation/triangulation_algo.py +6 -4
  61. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/triangulation/triangulation_wrappers.py +1 -0
  62. {cars-1.0.0a2 → cars-1.0.0a4}/cars/bundleadjustment.py +6 -6
  63. {cars-1.0.0a2 → cars-1.0.0a4}/cars/cars.py +11 -9
  64. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/cars_logging.py +80 -49
  65. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/constants.py +0 -1
  66. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/datasets.py +5 -2
  67. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/geometry/abstract_geometry.py +364 -22
  68. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/geometry/shareloc_geometry.py +112 -82
  69. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/inputs.py +72 -19
  70. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/outputs.py +1 -1
  71. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/preprocessing.py +17 -3
  72. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/projection.py +126 -6
  73. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/tiling.py +10 -3
  74. {cars-1.0.0a2 → cars-1.0.0a4}/cars/data_structures/cars_dataset.py +12 -10
  75. {cars-1.0.0a2 → cars-1.0.0a4}/cars/data_structures/corresponding_tiles_tools.py +0 -103
  76. {cars-1.0.0a2 → cars-1.0.0a4}/cars/data_structures/format_transformation.py +4 -1
  77. {cars-1.0.0a2 → cars-1.0.0a4}/cars/devibrate.py +6 -3
  78. {cars-1.0.0a2 → cars-1.0.0a4}/cars/extractroi.py +20 -21
  79. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/abstract_cluster.py +15 -5
  80. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/abstract_dask_cluster.py +6 -2
  81. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_jobqueue_utils.py +1 -1
  82. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/log_wrapper.py +149 -22
  83. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/multiprocessing_cluster.py +12 -4
  84. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/multiprocessing_profiler.py +2 -2
  85. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/pbs_dask_cluster.py +1 -1
  86. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/sequential_cluster.py +5 -4
  87. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/slurm_dask_cluster.py +1 -1
  88. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/orchestrator.py +15 -4
  89. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/id_generator.py +1 -0
  90. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/saver_registry.py +2 -2
  91. cars-1.0.0a4/cars/pipelines/conf_resolution/conf_final_resolution.json +9 -0
  92. cars-1.0.0a4/cars/pipelines/default/default_pipeline.py +662 -0
  93. cars-1.0.0a4/cars/pipelines/parameters/__init__.py +0 -0
  94. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/advanced_parameters.py +91 -64
  95. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/advanced_parameters_constants.py +6 -5
  96. cars-1.0.0a4/cars/pipelines/parameters/application_parameters.py +71 -0
  97. cars-1.0.0a4/cars/pipelines/parameters/depth_map_inputs.py +0 -0
  98. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/dsm_inputs.py +40 -4
  99. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/output_parameters.py +44 -8
  100. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/sensor_inputs.py +122 -73
  101. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/sensor_inputs_constants.py +0 -2
  102. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/sensor_loaders/__init__.py +4 -3
  103. cars-1.0.0a4/cars/pipelines/parameters/sensor_loaders/basic_classif_loader.py +106 -0
  104. cars-1.0.0a2/cars/pipelines/parameters/sensor_loaders/basic_sensor_loader.py → cars-1.0.0a4/cars/pipelines/parameters/sensor_loaders/basic_image_loader.py +16 -22
  105. cars-1.0.0a4/cars/pipelines/parameters/sensor_loaders/pivot_classif_loader.py +121 -0
  106. cars-1.0.0a2/cars/pipelines/parameters/sensor_loaders/pivot_sensor_loader.py → cars-1.0.0a4/cars/pipelines/parameters/sensor_loaders/pivot_image_loader.py +10 -21
  107. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/sensor_loaders/sensor_loader.py +4 -6
  108. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/sensor_loaders/sensor_loader_template.py +1 -3
  109. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/pipeline_template.py +1 -3
  110. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/unit/unit_pipeline.py +676 -1070
  111. {cars-1.0.0a2 → cars-1.0.0a4}/cars/starter.py +4 -3
  112. {cars-1.0.0a2 → cars-1.0.0a4}/meson.build +1 -5
  113. {cars-1.0.0a2 → cars-1.0.0a4}/pyproject.toml +7 -6
  114. {cars-1.0.0a2 → cars-1.0.0a4}/sonar-project.properties +1 -1
  115. cars-1.0.0a2/README.md +0 -115
  116. cars-1.0.0a2/cars/applications/dense_match_filling/cpp/dense_match_filling_cpp.py +0 -72
  117. cars-1.0.0a2/cars/applications/dense_match_filling/cpp/includes/dense_match_filling.hpp +0 -46
  118. cars-1.0.0a2/cars/applications/dense_match_filling/cpp/meson.build +0 -9
  119. cars-1.0.0a2/cars/applications/dense_match_filling/cpp/src/bindings.cpp +0 -11
  120. cars-1.0.0a2/cars/applications/dense_match_filling/cpp/src/dense_match_filling.cpp +0 -142
  121. cars-1.0.0a2/cars/applications/dense_match_filling/fill_disp_algo.py +0 -457
  122. cars-1.0.0a2/cars/applications/dense_match_filling/fill_disp_wrappers.py +0 -426
  123. cars-1.0.0a2/cars/applications/dense_match_filling/plane_app.py +0 -556
  124. cars-1.0.0a2/cars/applications/hole_detection/__init__.py +0 -30
  125. cars-1.0.0a2/cars/applications/hole_detection/abstract_hole_detection_app.py +0 -125
  126. cars-1.0.0a2/cars/applications/hole_detection/cloud_to_bbox_app.py +0 -346
  127. cars-1.0.0a2/cars/applications/hole_detection/hole_detection_algo.py +0 -144
  128. cars-1.0.0a2/cars/applications/hole_detection/hole_detection_wrappers.py +0 -53
  129. cars-1.0.0a2/cars/applications/point_cloud_denoising/__init__.py +0 -29
  130. cars-1.0.0a2/cars/applications/point_cloud_denoising/abstract_pc_denoising_app.py +0 -273
  131. cars-1.0.0a2/cars/applications/point_cloud_fusion/__init__.py +0 -30
  132. cars-1.0.0a2/cars/applications/point_cloud_fusion/abstract_pc_fusion_app.py +0 -155
  133. cars-1.0.0a2/cars/applications/point_cloud_fusion/cloud_fusion_constants.py +0 -39
  134. cars-1.0.0a2/cars/applications/point_cloud_fusion/mapping_to_terrain_tiles_app.py +0 -658
  135. cars-1.0.0a2/cars/applications/point_cloud_fusion/pc_fusion_algo.py +0 -1339
  136. cars-1.0.0a2/cars/applications/point_cloud_fusion/pc_fusion_wrappers.py +0 -869
  137. cars-1.0.0a2/cars/pipelines/conf_resolution/conf_final_resolution.json +0 -7
  138. cars-1.0.0a2/cars/pipelines/default/default_pipeline.py +0 -1253
  139. cars-1.0.0a2/cars/pipelines/parameters/depth_map_inputs.py +0 -314
  140. cars-1.0.0a2/cars/pipelines/parameters/depth_map_inputs_constants.py +0 -25
  141. {cars-1.0.0a2 → cars-1.0.0a4}/.coveragerc +0 -0
  142. {cars-1.0.0a2 → cars-1.0.0a4}/.dockerignore +0 -0
  143. {cars-1.0.0a2 → cars-1.0.0a4}/.gitattributes +0 -0
  144. {cars-1.0.0a2 → cars-1.0.0a4}/.github/workflows/cars-ci.yml +0 -0
  145. {cars-1.0.0a2 → cars-1.0.0a4}/.gitignore +0 -0
  146. {cars-1.0.0a2 → cars-1.0.0a4}/.gitlab/issue_templates/Bug.md +0 -0
  147. {cars-1.0.0a2 → cars-1.0.0a4}/.gitlab/issue_templates/Proposal.md +0 -0
  148. {cars-1.0.0a2 → cars-1.0.0a4}/.gitlab/issue_templates/Refacto.md +0 -0
  149. {cars-1.0.0a2 → cars-1.0.0a4}/.gitlab/issue_templates/Release.md +0 -0
  150. {cars-1.0.0a2 → cars-1.0.0a4}/.gitlab/merge_request_templates/MR.md +0 -0
  151. {cars-1.0.0a2 → cars-1.0.0a4}/.pre-commit-config.yaml +0 -0
  152. {cars-1.0.0a2 → cars-1.0.0a4}/.pylintrc +0 -0
  153. {cars-1.0.0a2 → cars-1.0.0a4}/.readthedocs.yaml +0 -0
  154. {cars-1.0.0a2 → cars-1.0.0a4}/AUTHORS.md +0 -0
  155. {cars-1.0.0a2 → cars-1.0.0a4}/CHANGELOG.md +0 -0
  156. {cars-1.0.0a2 → cars-1.0.0a4}/Dockerfile +0 -0
  157. {cars-1.0.0a2 → cars-1.0.0a4}/LICENSE +0 -0
  158. {cars-1.0.0a2 → cars-1.0.0a4}/MANIFEST.in +0 -0
  159. {cars-1.0.0a2 → cars-1.0.0a4}/Makefile +0 -0
  160. {cars-1.0.0a2 → cars-1.0.0a4}/NOTICE +0 -0
  161. {cars-1.0.0a2 → cars-1.0.0a4}/cars/__init__.py +0 -0
  162. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/application_constants.py +0 -0
  163. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/auxiliary_filling/__init__.py +0 -0
  164. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/__init__.py +0 -0
  165. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/bulldozer_config/base_config.yaml +0 -0
  166. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dem_generation/dem_generation_constants.py +0 -0
  167. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_match_filling/fill_disp_constants.py +0 -0
  168. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/__init__.py +0 -0
  169. {cars-1.0.0a2/cars/applications/dense_match_filling → cars-1.0.0a4/cars/applications/dense_matching}/cpp/__init__.py +0 -0
  170. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/cpp/dense_matching_cpp.py +0 -0
  171. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/cpp/includes/dense_matching.hpp +0 -0
  172. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/cpp/meson.build +0 -0
  173. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/cpp/src/bindings.cpp +0 -0
  174. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/cpp/src/dense_matching.cpp +0 -0
  175. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/dense_matching_constants.py +0 -0
  176. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/__init__.py +0 -0
  177. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_census_sgm_default.json +0 -0
  178. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_census_sgm_homogeneous.json +0 -0
  179. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_census_sgm_mountain_and_vegetation.json +0 -0
  180. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_census_sgm_shadow.json +0 -0
  181. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_census_sgm_sparse.json +0 -0
  182. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_census_sgm_urban.json +0 -0
  183. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dense_matching/loaders/config_mccnn.json +0 -0
  184. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dsm_filling/__init__.py +0 -0
  185. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dsm_filling/abstract_dsm_filling_app.py +0 -0
  186. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/dsm_filling/bulldozer_config/base_config.yaml +0 -0
  187. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/__init__.py +0 -0
  188. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/grid_generation_constants.py +0 -0
  189. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/grid_generation/transform_grid.py +0 -0
  190. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/ground_truth_reprojection/__init__.py +0 -0
  191. /cars-1.0.0a2/cars/applications/dense_matching/cpp/__init__.py → /cars-1.0.0a4/cars/applications/point_cloud_fusion/abstract_pc_fusion_app.py +0 -0
  192. /cars-1.0.0a2/cars/applications/sparse_matching/pandora_sparse_matching_app.py → /cars-1.0.0a4/cars/applications/point_cloud_fusion/mapping_to_terrain_tiles_app.py +0 -0
  193. /cars-1.0.0a2/cars/pipelines/parameters/__init__.py → /cars-1.0.0a4/cars/applications/point_cloud_fusion/pc_fusion_algo.py +0 -0
  194. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/point_cloud_outlier_removal/__init__.py +0 -0
  195. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/point_cloud_outlier_removal/outlier_removal_constants.py +0 -0
  196. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/rasterization/__init__.py +0 -0
  197. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/rasterization/rasterization_constants.py +0 -0
  198. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/resampling/__init__.py +0 -0
  199. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/resampling/resampling_constants.py +0 -0
  200. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/sparse_matching/__init__.py +0 -0
  201. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/sparse_matching/sparse_matching_constants.py +0 -0
  202. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/triangulation/__init__.py +0 -0
  203. {cars-1.0.0a2 → cars-1.0.0a4}/cars/applications/triangulation/triangulation_constants.py +0 -0
  204. {cars-1.0.0a2 → cars-1.0.0a4}/cars/conf/__init__.py +0 -0
  205. {cars-1.0.0a2 → cars-1.0.0a4}/cars/conf/geoid/egm96.grd +0 -0
  206. {cars-1.0.0a2 → cars-1.0.0a4}/cars/conf/geoid/egm96.grd.hdr +0 -0
  207. {cars-1.0.0a2 → cars-1.0.0a4}/cars/conf/input_parameters.py +0 -0
  208. {cars-1.0.0a2 → cars-1.0.0a4}/cars/conf/mask_cst.py +0 -0
  209. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/__init__.py +0 -0
  210. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/constants_disparity.py +0 -0
  211. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/geometry/__init__.py +0 -0
  212. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/roi_tools.py +0 -0
  213. {cars-1.0.0a2 → cars-1.0.0a4}/cars/core/utils.py +0 -0
  214. {cars-1.0.0a2 → cars-1.0.0a4}/cars/data_structures/__init__.py +0 -0
  215. {cars-1.0.0a2 → cars-1.0.0a4}/cars/data_structures/cars_dict.py +0 -0
  216. {cars-1.0.0a2 → cars-1.0.0a4}/cars/data_structures/dataframe_converter.py +0 -0
  217. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/__init__.py +0 -0
  218. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/achievement_tracker.py +0 -0
  219. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/__init__.py +0 -0
  220. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_cluster_tools.py +0 -0
  221. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/README.md +0 -0
  222. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/dask.yaml +0 -0
  223. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/distributed.yaml +0 -0
  224. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/jobqueue.yaml +0 -0
  225. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/reference_confs/dask-schema.yaml +0 -0
  226. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/reference_confs/dask.yaml +0 -0
  227. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/reference_confs/distributed-schema.yaml +0 -0
  228. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/reference_confs/distributed.yaml +0 -0
  229. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/dask_config/reference_confs/jobqueue.yaml +0 -0
  230. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/local_dask_cluster.py +0 -0
  231. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/__init__.py +0 -0
  232. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/mp_factorizer.py +0 -0
  233. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/mp_objects.py +0 -0
  234. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/mp_tools.py +0 -0
  235. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/cluster/mp_cluster/mp_wrapper.py +0 -0
  236. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/orchestrator_constants.py +0 -0
  237. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/__init__.py +0 -0
  238. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/abstract_registry.py +0 -0
  239. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/compute_registry.py +0 -0
  240. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/replacer_registry.py +0 -0
  241. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/registry/unseen_registry.py +0 -0
  242. {cars-1.0.0a2 → cars-1.0.0a4}/cars/orchestrator/tiles_profiler.py +0 -0
  243. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/__init__.py +0 -0
  244. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/conf_resolution/conf_first_resolution.json +0 -0
  245. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/conf_resolution/conf_intermediate_resolution.json +0 -0
  246. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/default/__init__.py +0 -0
  247. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/dsm_inputs_constants.py +0 -0
  248. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/parameters/output_constants.py +0 -0
  249. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/pipeline.py +0 -0
  250. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/pipeline_constants.py +0 -0
  251. {cars-1.0.0a2 → cars-1.0.0a4}/cars/pipelines/unit/__init__.py +0 -0
  252. {cars-1.0.0a2 → cars-1.0.0a4}/ci/cars-deps-env/Dockerfile +0 -0
  253. {cars-1.0.0a2 → cars-1.0.0a4}/ci/cars-docker-build.yml +0 -0
  254. {cars-1.0.0a2 → cars-1.0.0a4}/ci/cars-no-docker-build.yml +0 -0
  255. {cars-1.0.0a2 → cars-1.0.0a4}/ci/hadolint_RNC_A_B_C_D.yaml +0 -0
  256. {cars-1.0.0a2 → cars-1.0.0a4}/pytest.ini +0 -0
  257. {cars-1.0.0a2 → cars-1.0.0a4}/ref_updating.py +0 -0
  258. {cars-1.0.0a2 → cars-1.0.0a4}/setup.py +0 -0
  259. {cars-1.0.0a2 → cars-1.0.0a4}/version.py +0 -0
@@ -81,6 +81,8 @@ unit-test:
81
81
  paths:
82
82
  - ./pytest-report.xml
83
83
  - ./coverage.xml
84
+ - tests/data/intermediate_data
85
+ when: always
84
86
  expire_in: 1 day
85
87
 
86
88
 
@@ -105,7 +107,7 @@ test-end2end:
105
107
  # Use dedicated runner for end2end tests
106
108
  tags:
107
109
  - ${TEST_RUNNER_TAG}
108
- timeout: 80 minutes
110
+ timeout: 120 minutes
109
111
  extends:
110
112
  - .cars-python-job
111
113
  script:
@@ -116,6 +118,13 @@ test-end2end:
116
118
  - tests/data/intermediate_data
117
119
  when: always
118
120
  expire_in: 1 day
121
+ rules:
122
+ - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
123
+ changes:
124
+ - "tests/test_end2end.py"
125
+ - "cars/**/*"
126
+
127
+ - if: '$CI_COMMIT_REF_NAME == "master"'
119
128
 
120
129
 
121
130
 
@@ -158,4 +167,4 @@ github-sync:
158
167
 
159
168
  variables:
160
169
  BRANCH: "master"
161
- GITHUB_URL: github.com/CNES/cars.git
170
+ GITHUB_URL: github.com/CNES/cars.git
@@ -31,15 +31,15 @@ The Merge Request shall have a short description of the proposed changes. If it
31
31
  Likewise, if you work on a branch (which is recommended), prefix the branch's name by `xx-` in order to link it to the xx issue.
32
32
 
33
33
  CARS Classical workflow is :
34
- * Check Licence and sign [Contributor Licence Agreement](#contribution-license-agreement) (Individual or Corporate)
35
- * Create an issue (or begin from an existing one)
36
- * Create a Merge Request from the issue: a MR is created accordingly with "WIP:", "Closes xx" and associated "xx-name-issue" branch
37
- * CARS hacking code from a local working directory or from the forge (less possibilities) following [Developer manual](./docs/source/developer.rst)
38
- * Git add, commit and push from local working clone directory or from the forge directly
34
+ * Check Licence and sign [Contributor Licence Agreement](#contribution-license-agreement) (Individual or Corporate).
35
+ * Create an issue (or begin from an existing one).
36
+ * Create a Merge Request from the issue: a MR is created accordingly with "WIP:", "Closes xx" and associated "xx-name-issue" branch.
37
+ * CARS hacking code from a local working directory or from the forge (less possibilities) following developer guide from [user guide](https://cars.readthedocs.io/).
38
+ * Git add, commit and push from local working clone directory or from the forge directly.
39
39
  * Follow [Conventional commits](https://www.conventionalcommits.org/) specifications for commit messages
40
- * Beware that quality pre-commit tools are installed in continuous integration with classical quality code tools (see [Developer manual](./docs/source/developer.rst)).
41
- * Launch the [tests](./docs/source/developer.rst) on your modifications (or don't forget to add ones).
42
- * When finished, change your Merge Request name (erase "WIP:" in title ) and ask `@cars` to review the code (see below Merge request acceptation process)
40
+ * Beware that quality pre-commit tools are installed in continuous integration with classical quality code tools (see [user guide](https://cars.readthedocs.io/)).
41
+ * Launch the tests on your modifications (or don't forget to add ones).
42
+ * When finished, change your Merge Request name (erase "WIP:" in title ) and ask `@cars` to review the code (see below Merge request acceptation process).
43
43
 
44
44
 
45
45
  # Contribution license agreement
@@ -66,8 +66,7 @@ file](./AUTHORS.md).
66
66
 
67
67
  The Merge Request will be merged into master after being reviewed by CARS steering committee (core committers) composed of:
68
68
  * David Youssefi (CNES)
69
- * Emmanuelle Sarrazin (CNES)
70
- * Emmanuel Dubois (CNES)
69
+ * Valentine Bellet (CNES)
71
70
 
72
71
  Only the members of this committee can merge into master.
73
72
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cars
3
- Version: 1.0.0a2
3
+ Version: 1.0.0a4
4
4
  Summary: A satellite multi view stereo pipeline
5
5
  Keywords: cars,3D,DEM,pandora,photogrammetry
6
6
  Author-Email: CNES <cars@cnes.fr>
@@ -39,18 +39,19 @@ Requires-Dist: urllib3<2.0,>=1.21.1
39
39
  Requires-Dist: laspy[laszip]
40
40
  Requires-Dist: tbb==2020.3.254
41
41
  Requires-Dist: numba
42
- Requires-Dist: pandora[sgm]==1.7.1a1
42
+ Requires-Dist: pandora[sgm]==1.7.1
43
43
  Requires-Dist: cars-rasterize==0.2.*
44
44
  Requires-Dist: cars-resample==0.1.*
45
45
  Requires-Dist: cars-filter==0.2.*
46
46
  Requires-Dist: vlsift==0.1.*
47
- Requires-Dist: shareloc==0.2.9
47
+ Requires-Dist: shareloc==0.2.10
48
48
  Requires-Dist: bulldozer-dtm==1.1.*
49
49
  Requires-Dist: xdem==0.1.*
50
50
  Requires-Dist: geopandas<=1.0.1
51
51
  Provides-Extra: dev
52
52
  Requires-Dist: pytest; extra == "dev"
53
53
  Requires-Dist: pytest-cov; extra == "dev"
54
+ Requires-Dist: pytest-check; extra == "dev"
54
55
  Requires-Dist: pre-commit; extra == "dev"
55
56
  Requires-Dist: isort>=5.8.0; extra == "dev"
56
57
  Requires-Dist: black>=24.1a1; extra == "dev"
@@ -59,7 +60,7 @@ Requires-Dist: flake8-pyproject; extra == "dev"
59
60
  Requires-Dist: flake8-comprehensions>=3.4.0; extra == "dev"
60
61
  Requires-Dist: flake8-bugbear<24.0.0,>=21.4.3; extra == "dev"
61
62
  Requires-Dist: jupyter_contrib_nbextensions; extra == "dev"
62
- Requires-Dist: pylint<3.0.0,>=2.8.12; extra == "dev"
63
+ Requires-Dist: pylint<4.0.0,>=2.8.12; extra == "dev"
63
64
  Requires-Dist: setuptools_scm; extra == "dev"
64
65
  Requires-Dist: virtualenv; extra == "dev"
65
66
  Requires-Dist: configupdater; extra == "dev"
@@ -75,12 +76,12 @@ Requires-Dist: dash; extra == "dev"
75
76
  Requires-Dist: plotly; extra == "dev"
76
77
  Requires-Dist: build; extra == "dev"
77
78
  Provides-Extra: docs
78
- Requires-Dist: astroid<3.0.0; extra == "docs"
79
+ Requires-Dist: astroid<4.0.0; extra == "docs"
79
80
  Requires-Dist: sphinx; extra == "docs"
80
81
  Requires-Dist: sphinx-rtd-theme; extra == "docs"
81
82
  Requires-Dist: sphinx_autoapi; extra == "docs"
82
83
  Requires-Dist: graphviz; extra == "docs"
83
- Requires-Dist: sphinx_tabs==3.4.0; extra == "docs"
84
+ Requires-Dist: sphinx_tabs; extra == "docs"
84
85
  Requires-Dist: sphinx-copybutton; extra == "docs"
85
86
  Provides-Extra: notebook
86
87
  Requires-Dist: notebook; extra == "notebook"
@@ -95,115 +96,196 @@ Description-Content-Type: text/markdown
95
96
  <div align="center">
96
97
  <a target="_blank" href="https://github.com/CNES/cars">
97
98
  <picture>
98
- <source
99
- srcset="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/picto_dark.png"
100
- media="(prefers-color-scheme: dark)"
101
- />
102
99
  <img
103
- src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/picto_light.png"
100
+ src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/cars_picto.svg"
104
101
  alt="CARS"
105
- width="40%"
102
+ width="50%"
106
103
  />
107
104
  </picture>
108
105
  </a>
109
106
 
110
107
  <h4>CARS, a satellite multi view stereo framework </h4>
111
108
 
112
- [![Python](https://img.shields.io/badge/python-v3.9+-blue.svg)](https://www.python.org/downloads/release/python-390/)
109
+ [![Python](https://img.shields.io/badge/python-v3.10+-blue.svg)](https://www.python.org/downloads/release/python-390/)
113
110
  [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg)](CONTRIBUTING.md)
114
111
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0/)
115
112
  [![Documentation](https://readthedocs.org/projects/cars/badge/?version=latest)](https://cars.readthedocs.io/?badge=latest)
116
113
  [![Github Action](https://github.com/CNES/cars/actions/workflows/cars-ci.yml/badge.svg?branch=master)](https://github.com/CNES/cars/actions)
114
+ [![pypi](https://badge.fury.io/py/cars.svg)](https://pypi.org/project/cars/)
115
+ [![Docker pulls](https://img.shields.io/badge/dynamic/json?formatter=metric&color=blue&label=Docker%20pull&query=%24.pull_count&url=https://hub.docker.com/v2/repositories/cnes/cars)](https://hub.docker.com/r/cnes/cars)
117
116
 
118
117
  <p>
119
118
  <a href="#overview">Overview</a> •
120
119
  <a href="#quick-start">Quick Start</a> •
121
120
  <a href="#documentation">Documentation</a> •
121
+ <a href="#license">License</a> •
122
122
  <a href="#contribution">Contribution</a> •
123
+ <a href="#help">Help</a> •
124
+ <a href="#credits">Credits</a> •
125
+ <a href="#contact">Contact</a> •
123
126
  <a href="#references">References</a>
124
127
  </p>
125
128
  </div>
126
129
 
127
- ## Overview
128
-
129
- From stereo images | CARS produces a Digital Surface Model (DSM)
130
- :-------------------------:|:-------------------------:
131
- <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/animation_sat.gif" alt="drawing" width="100%"/> | <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/overview_dsm_3d.gif" alt="drawing" width="100%"/>
130
+ # 🌐 **Overview**
132
131
 
132
+ <div align="center">
133
+ <table style="display: inline-block;">
134
+ <tr>
135
+ <td align="center">
136
+ <div style="font-size:2em; margin-bottom:10px;"><strong>🎞️ From Stereo Images</strong></div><br>
137
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/animation_sat.gif"
138
+ alt="Stereo images animation" width="95%"><br>
139
+ <em>Input stereo image pairs</em>
140
+ </td>
141
+ <td align="center">
142
+ <div style="font-size:2em; margin-bottom:10px;"><strong>🌍 To Digital Surface Model (DSM)</strong></div><br>
143
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/overview_dsm_3d.gif"
144
+ alt="DSM overview" width="95%"><br>
145
+ <em>Output 3D surface reconstruction</em>
146
+ </td>
147
+ </tr>
148
+ </table>
149
+ </div>
133
150
 
134
151
  **CARS** is an open source 3D tool dedicated to produce **Digital Surface Models** from satellite imaging by photogrammetry.
135
152
  This Multiview Stereo framework is intended for massive DSM production with a robust, performant and modular design.
136
153
 
137
154
  **CARS** is currently under active development and integrated into various projects & missions:
138
155
 
139
- - <a href="https://co3d.cnes.fr/en/co3d-0">CO3D project &nbsp;&nbsp;&nbsp; <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo_co3D_cnes.jpg" height="20"/></a>
140
- - <a href="https://www.ai4geo.eu">AI4GEO project &nbsp;&nbsp;&nbsp; <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-ai4geo.png" height="20"/> </a>
141
- - <a href="https://www.evo-land.eu">Evoland project &nbsp;&nbsp;&nbsp; <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-evoland.png" height="20"/> </a>
156
+ <div align="center">
157
+ <p align="center">
158
+ <a href="https://co3d.cnes.fr/en/co3d-0" target="_blank">
159
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo_co3D_cnes.png"
160
+ alt="CO3D project" height="70">
161
+ </a>
162
+ &nbsp;&nbsp;&nbsp;&nbsp;
163
+ <a href="https://www.ai4geo.eu" target="_blank">
164
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-ai4geo.png"
165
+ alt="AI4GEO project" height="75">
166
+ </a>
167
+ &nbsp;&nbsp;&nbsp;&nbsp;
168
+ <a href="https://www.evo-land.eu" target="_blank">
169
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-evoland.png"
170
+ alt="Evoland project" height="60">
171
+ </a>
172
+ </p>
173
+ </div>
174
+
175
+ <br>
142
176
 
143
177
  Its roadmap and implemented functionalities are evolving regularly depending on specific project requirements.
144
178
 
145
- ## Quick start
179
+ # 🚀 **Quick start**
180
+
181
+
182
+ ### △ On the way to the Pyramids...
183
+ ---
184
+
185
+ You want to build the pyramids by yourself?
186
+
187
+
188
+ <div align="center">
189
+ <table style="display: inline-block;">
190
+ <tr>
191
+ <td align="center">
192
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/dsm.png"
193
+ alt="Dsm" width="400"><br>
194
+ </td>
195
+ <td align="center">
196
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/clr.png"
197
+ alt="Color" width="400"><br>
198
+ </td>
199
+ <td align="center">
200
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/dsm_clr.png"
201
+ alt="Color" width="400"><br>
202
+ </td>
203
+ </tr>
204
+ </table>
205
+ </div>
206
+
207
+ Download our [open licence](https://www.etalab.gouv.fr/licence-ouverte-open-licence) Pleiades [data sample](https://raw.githubusercontent.com/CNES/cars/master/tutorials/data_gizeh.tar.bz2) to give CARS a try!
208
+
146
209
 
147
- ### CARS Docker Image
210
+ ### 🐋 with Docker
211
+ ---
148
212
 
149
- [![Docker Status](http://dockeri.co/image/cnes/cars)](https://hub.docker.com/r/cnes/cars)
213
+ #### 🛠 Installation
150
214
 
151
215
  CARS is available on Docker Hub and can be downloaded by:
152
216
  ``` bash
153
217
  docker pull cnes/cars
154
218
  ```
155
219
 
156
- ### One main pipeline to generate DSM
220
+ #### Run CARS
157
221
 
158
222
  You only need to launch one command:
159
223
 
160
224
  ```
161
- docker run -w /data -v "$(pwd)"/data_gizeh:/data cnes/cars /data/configfile.json
225
+ docker run -w /data -v "$(pwd)"/data_gizeh:/data cnes/cars /data/configfile.yaml
162
226
  ```
163
227
 
164
- with one configuration input file ("configfile.json") located in a "data" folder to be consistent with the previous command lines:
165
- ```
166
- {
167
- "inputs": {
168
- "sensors" : {
169
- "one": {
170
- "image": "img1.tif",
171
- "geomodel": "img1.geom"
172
- },
173
- "two": {
174
- "image": "img2.tif",
175
- "geomodel": "img2.geom"
176
- }
177
- }
178
- },
179
- "output": {
180
- "directory": "outresults"
181
- }
182
- }
228
+ ### 🐍 with pip
229
+ ---
230
+
231
+ #### 🛠 Installation
183
232
 
233
+ CARS can also be downloaded using the pip install command:
234
+
235
+ ``` bash
236
+ pip install cars
184
237
  ```
185
238
 
186
- ### On the way to the Pyramids...
239
+ #### Run CARS
240
+
241
+ Once you moved to the data_gizeh directory:
187
242
 
188
- You want to build the pyramids by yourself? Download our [open licence](https://www.etalab.gouv.fr/licence-ouverte-open-licence) Pleiades [data sample](https://raw.githubusercontent.com/CNES/cars/master/tutorials/data_gizeh.tar.bz2) to give CARS a try!
243
+ ``` bash
244
+ cars configfile.yaml
245
+ ```
189
246
 
190
- ## Documentation
247
+ # 📚 **Documentation**
191
248
 
192
249
  Go to [CARS Main Documentation](https://cars.readthedocs.io/?badge=latest).
193
250
 
251
+ # 📜 **License**
252
+
253
+ CARS is licensed under [Apache License v2.0](https://www.apache.org/licenses/LICENSE-2.0). Please refer to the [LICENSE](https://gitlab.cnes.fr/dali/cars-park/cars/-/blob/1214-mise-a-jour-du-readme-pour-la-nouvelle-version-1-0-0/LICENSE) file for more details.
194
254
 
195
- ## Contribution
255
+ # 🤝 **Contribution**
196
256
 
197
- To do a bug report or a contribution, see the [**Contribution Guide**](https://github.com/CNES/cars/blob/master/CONTRIBUTING.md).
257
+ To do a contribution, see the [Contribution Guide](https://github.com/CNES/cars/blob/master/CONTRIBUTING.md). For project evolution, see [Changelog](https://github.com/CNES/cars/blob/master/CHANGELOG.md).
198
258
 
199
- For project evolution, see [**Changelog**](https://github.com/CNES/cars/blob/master/CHANGELOG.md).
259
+ # 🆘 **Help**
200
260
 
201
- ## Credits
261
+ For issues, questions, or feature requests, please open an issue on our [GitHub Issues](https://github.com/CNES/cars/issues) page or check the [documentation](https://cars.readthedocs.io/en/stable/index.html) for additional resources.
262
+
263
+ You can also ask your questions on the corresponding [slack](https://join.slack.com/t/cars-community/shared_invite/zt-2uw6usog1-~TT~m8BxO9faMXpP7tpz2Q).
264
+
265
+ # ✒️ **Credits**
266
+
267
+ If you use CARS in your research, please cite the following paper:
268
+
269
+ ```
270
+ @INPROCEEDINGS{9324020,
271
+ author={Youssefi, David and Michel, Julien and Sarrazin, Emmanuelle and Buffe, Fabrice and Cournet, Myriam and Delvit, Jean-Marc and L'Helguen, Céline and Melet, Olivier and Emilien, Aurélie and Bosman, Julien},
272
+ booktitle={IGARSS 2020 - 2020 IEEE International Geoscience and Remote Sensing Symposium},
273
+ title={CARS: A Photogrammetry Pipeline Using Dask Graphs to Construct A Global 3D Model},
274
+ year={2020},
275
+ volume={},
276
+ number={},
277
+ pages={453-456},
278
+ keywords={Automobiles;Geometry;Three-dimensional displays;Computational modeling;Estimation;Stereo image processing;Task analysis;Image processing;Photogrammetry;Stereovision;Digital Surface Model;High Performance Computing;Cloud Computing;Dask},
279
+ doi={10.1109/IGARSS39084.2020.9324020}}
280
+ ```
202
281
 
203
282
  See [Authors file](https://github.com/CNES/cars/blob/master/AUTHORS.md)
204
283
 
284
+ # ✉️ **Contact**
285
+
286
+ You can contact us on the following mail adress: cars@cnes.fr
205
287
 
206
- ## References
288
+ # 🔗 **References**
207
289
 
208
290
  - [Youssefi D., Michel, J., Sarrazin, E., Buffe, F., Cournet, M., Delvit, J., L’Helguen, C., Melet, O., Emilien, A., Bosman, J., 2020. Cars: A photogrammetry pipeline using dask graphs to construct a global 3d model. IGARSS - IEEE International Geoscience and Remote Sensing Symposium.](https://ieeexplore.ieee.org/document/9324020)
209
291
  - [Michel, J., Sarrazin, E., Youssefi, D., Cournet, M., Buffe, F., Delvit, J., Emilien, A., Bosman, J., Melet, O., L’Helguen, C., 2020. A new satellite imagery stereo pipeline designed for scalability, robustness and performance. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences.](https://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/V-2-2020/171/2020/)
cars-1.0.0a4/README.md ADDED
@@ -0,0 +1,196 @@
1
+ <div align="center">
2
+ <a target="_blank" href="https://github.com/CNES/cars">
3
+ <picture>
4
+ <img
5
+ src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/cars_picto.svg"
6
+ alt="CARS"
7
+ width="50%"
8
+ />
9
+ </picture>
10
+ </a>
11
+
12
+ <h4>CARS, a satellite multi view stereo framework </h4>
13
+
14
+ [![Python](https://img.shields.io/badge/python-v3.10+-blue.svg)](https://www.python.org/downloads/release/python-390/)
15
+ [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg)](CONTRIBUTING.md)
16
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0/)
17
+ [![Documentation](https://readthedocs.org/projects/cars/badge/?version=latest)](https://cars.readthedocs.io/?badge=latest)
18
+ [![Github Action](https://github.com/CNES/cars/actions/workflows/cars-ci.yml/badge.svg?branch=master)](https://github.com/CNES/cars/actions)
19
+ [![pypi](https://badge.fury.io/py/cars.svg)](https://pypi.org/project/cars/)
20
+ [![Docker pulls](https://img.shields.io/badge/dynamic/json?formatter=metric&color=blue&label=Docker%20pull&query=%24.pull_count&url=https://hub.docker.com/v2/repositories/cnes/cars)](https://hub.docker.com/r/cnes/cars)
21
+
22
+ <p>
23
+ <a href="#overview">Overview</a> •
24
+ <a href="#quick-start">Quick Start</a> •
25
+ <a href="#documentation">Documentation</a> •
26
+ <a href="#license">License</a> •
27
+ <a href="#contribution">Contribution</a> •
28
+ <a href="#help">Help</a> •
29
+ <a href="#credits">Credits</a> •
30
+ <a href="#contact">Contact</a> •
31
+ <a href="#references">References</a>
32
+ </p>
33
+ </div>
34
+
35
+ # 🌐 **Overview**
36
+
37
+ <div align="center">
38
+ <table style="display: inline-block;">
39
+ <tr>
40
+ <td align="center">
41
+ <div style="font-size:2em; margin-bottom:10px;"><strong>🎞️ From Stereo Images</strong></div><br>
42
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/animation_sat.gif"
43
+ alt="Stereo images animation" width="95%"><br>
44
+ <em>Input stereo image pairs</em>
45
+ </td>
46
+ <td align="center">
47
+ <div style="font-size:2em; margin-bottom:10px;"><strong>🌍 To Digital Surface Model (DSM)</strong></div><br>
48
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/overview_dsm_3d.gif"
49
+ alt="DSM overview" width="95%"><br>
50
+ <em>Output 3D surface reconstruction</em>
51
+ </td>
52
+ </tr>
53
+ </table>
54
+ </div>
55
+
56
+ **CARS** is an open source 3D tool dedicated to produce **Digital Surface Models** from satellite imaging by photogrammetry.
57
+ This Multiview Stereo framework is intended for massive DSM production with a robust, performant and modular design.
58
+
59
+ **CARS** is currently under active development and integrated into various projects & missions:
60
+
61
+ <div align="center">
62
+ <p align="center">
63
+ <a href="https://co3d.cnes.fr/en/co3d-0" target="_blank">
64
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo_co3D_cnes.png"
65
+ alt="CO3D project" height="70">
66
+ </a>
67
+ &nbsp;&nbsp;&nbsp;&nbsp;
68
+ <a href="https://www.ai4geo.eu" target="_blank">
69
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-ai4geo.png"
70
+ alt="AI4GEO project" height="75">
71
+ </a>
72
+ &nbsp;&nbsp;&nbsp;&nbsp;
73
+ <a href="https://www.evo-land.eu" target="_blank">
74
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-evoland.png"
75
+ alt="Evoland project" height="60">
76
+ </a>
77
+ </p>
78
+ </div>
79
+
80
+ <br>
81
+
82
+ Its roadmap and implemented functionalities are evolving regularly depending on specific project requirements.
83
+
84
+ # 🚀 **Quick start**
85
+
86
+
87
+ ### △ On the way to the Pyramids...
88
+ ---
89
+
90
+ You want to build the pyramids by yourself?
91
+
92
+
93
+ <div align="center">
94
+ <table style="display: inline-block;">
95
+ <tr>
96
+ <td align="center">
97
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/dsm.png"
98
+ alt="Dsm" width="400"><br>
99
+ </td>
100
+ <td align="center">
101
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/clr.png"
102
+ alt="Color" width="400"><br>
103
+ </td>
104
+ <td align="center">
105
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/dsm_clr.png"
106
+ alt="Color" width="400"><br>
107
+ </td>
108
+ </tr>
109
+ </table>
110
+ </div>
111
+
112
+ Download our [open licence](https://www.etalab.gouv.fr/licence-ouverte-open-licence) Pleiades [data sample](https://raw.githubusercontent.com/CNES/cars/master/tutorials/data_gizeh.tar.bz2) to give CARS a try!
113
+
114
+
115
+ ### 🐋 with Docker
116
+ ---
117
+
118
+ #### 🛠 Installation
119
+
120
+ CARS is available on Docker Hub and can be downloaded by:
121
+ ``` bash
122
+ docker pull cnes/cars
123
+ ```
124
+
125
+ #### ⚙ Run CARS
126
+
127
+ You only need to launch one command:
128
+
129
+ ```
130
+ docker run -w /data -v "$(pwd)"/data_gizeh:/data cnes/cars /data/configfile.yaml
131
+ ```
132
+
133
+ ### 🐍 with pip
134
+ ---
135
+
136
+ #### 🛠 Installation
137
+
138
+ CARS can also be downloaded using the pip install command:
139
+
140
+ ``` bash
141
+ pip install cars
142
+ ```
143
+
144
+ #### ⚙ Run CARS
145
+
146
+ Once you moved to the data_gizeh directory:
147
+
148
+ ``` bash
149
+ cars configfile.yaml
150
+ ```
151
+
152
+ # 📚 **Documentation**
153
+
154
+ Go to [CARS Main Documentation](https://cars.readthedocs.io/?badge=latest).
155
+
156
+ # 📜 **License**
157
+
158
+ CARS is licensed under [Apache License v2.0](https://www.apache.org/licenses/LICENSE-2.0). Please refer to the [LICENSE](https://gitlab.cnes.fr/dali/cars-park/cars/-/blob/1214-mise-a-jour-du-readme-pour-la-nouvelle-version-1-0-0/LICENSE) file for more details.
159
+
160
+ # 🤝 **Contribution**
161
+
162
+ To do a contribution, see the [Contribution Guide](https://github.com/CNES/cars/blob/master/CONTRIBUTING.md). For project evolution, see [Changelog](https://github.com/CNES/cars/blob/master/CHANGELOG.md).
163
+
164
+ # 🆘 **Help**
165
+
166
+ For issues, questions, or feature requests, please open an issue on our [GitHub Issues](https://github.com/CNES/cars/issues) page or check the [documentation](https://cars.readthedocs.io/en/stable/index.html) for additional resources.
167
+
168
+ You can also ask your questions on the corresponding [slack](https://join.slack.com/t/cars-community/shared_invite/zt-2uw6usog1-~TT~m8BxO9faMXpP7tpz2Q).
169
+
170
+ # ✒️ **Credits**
171
+
172
+ If you use CARS in your research, please cite the following paper:
173
+
174
+ ```
175
+ @INPROCEEDINGS{9324020,
176
+ author={Youssefi, David and Michel, Julien and Sarrazin, Emmanuelle and Buffe, Fabrice and Cournet, Myriam and Delvit, Jean-Marc and L'Helguen, Céline and Melet, Olivier and Emilien, Aurélie and Bosman, Julien},
177
+ booktitle={IGARSS 2020 - 2020 IEEE International Geoscience and Remote Sensing Symposium},
178
+ title={CARS: A Photogrammetry Pipeline Using Dask Graphs to Construct A Global 3D Model},
179
+ year={2020},
180
+ volume={},
181
+ number={},
182
+ pages={453-456},
183
+ keywords={Automobiles;Geometry;Three-dimensional displays;Computational modeling;Estimation;Stereo image processing;Task analysis;Image processing;Photogrammetry;Stereovision;Digital Surface Model;High Performance Computing;Cloud Computing;Dask},
184
+ doi={10.1109/IGARSS39084.2020.9324020}}
185
+ ```
186
+
187
+ See [Authors file](https://github.com/CNES/cars/blob/master/AUTHORS.md)
188
+
189
+ # ✉️ **Contact**
190
+
191
+ You can contact us on the following mail adress: cars@cnes.fr
192
+
193
+ # 🔗 **References**
194
+
195
+ - [Youssefi D., Michel, J., Sarrazin, E., Buffe, F., Cournet, M., Delvit, J., L’Helguen, C., Melet, O., Emilien, A., Bosman, J., 2020. Cars: A photogrammetry pipeline using dask graphs to construct a global 3d model. IGARSS - IEEE International Geoscience and Remote Sensing Symposium.](https://ieeexplore.ieee.org/document/9324020)
196
+ - [Michel, J., Sarrazin, E., Youssefi, D., Cournet, M., Buffe, F., Delvit, J., Emilien, A., Bosman, J., Melet, O., L’Helguen, C., 2020. A new satellite imagery stereo pipeline designed for scalability, robustness and performance. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences.](https://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/V-2-2020/171/2020/)
@@ -30,9 +30,6 @@ from . import dense_matching # noqa: F401
30
30
  from . import dsm_filling # noqa: F401
31
31
  from . import grid_generation # noqa: F401
32
32
  from . import ground_truth_reprojection # noqa: F401
33
- from . import hole_detection # noqa: F401
34
- from . import point_cloud_denoising # noqa: F401
35
- from . import point_cloud_fusion # noqa: F401
36
33
  from . import point_cloud_outlier_removal # noqa: F401
37
34
  from . import rasterization # noqa: F401
38
35
  from . import resampling # noqa: F401
@@ -26,6 +26,8 @@ This module contains class application factory.
26
26
  # Standard imports
27
27
  import logging
28
28
 
29
+ from cars.applications.application_template import ScalingApplicationTemplate
30
+
29
31
  # CARS imports
30
32
  from cars.conf.input_parameters import ConfigType
31
33
 
@@ -46,6 +48,7 @@ class Application:
46
48
  cls,
47
49
  app_name: str,
48
50
  cfg: ConfigType = None,
51
+ scaling_coeff: float = 1,
49
52
  ):
50
53
  """
51
54
  Return the instance of application associated with the application
@@ -55,12 +58,14 @@ class Application:
55
58
  :type app_name: str
56
59
  :param cfg: configuration {'matching_cost_method': value}
57
60
  :type cfg: dictionary
61
+ :param scaling_coeff: scaling factor for resolution
62
+ :type scaling_coeff: float
58
63
  """
59
64
 
60
- return cls.create_app(app_name, cfg)
65
+ return cls.create_app(app_name, cfg, scaling_coeff)
61
66
 
62
67
  @classmethod
63
- def create_app(cls, name: str, cfg: ConfigType):
68
+ def create_app(cls, name: str, cfg: ConfigType, scaling_coeff: float = 1):
64
69
  """Factory command to create the application
65
70
  Return the instance of application associated with the application
66
71
  name given as parameter
@@ -69,16 +74,19 @@ class Application:
69
74
  :type app_name: str
70
75
  :param cfg: configuration {'matching_cost_method': value}
71
76
  :type cfg: dictionary
77
+ :param scaling_coeff: scaling factor for resolution
78
+ :type scaling_coeff: float
72
79
  """
73
- app = None
74
-
75
80
  try:
76
81
  app_class = cls.available_applications[name]
77
82
  except KeyError:
78
83
  logging.error("No application named {0} supported".format(name))
79
84
  return None
80
- app = app_class(conf=cfg)
81
- return app
85
+
86
+ if issubclass(app_class, ScalingApplicationTemplate):
87
+ return app_class(scaling_coeff=scaling_coeff, conf=cfg)
88
+
89
+ return app_class(conf=cfg)
82
90
 
83
91
  @classmethod
84
92
  def print_applications(cls):