cars 1.0.0rc2__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.

Files changed (225) hide show
  1. cars/__init__.py +86 -0
  2. cars/applications/__init__.py +40 -0
  3. cars/applications/application.py +117 -0
  4. cars/applications/application_constants.py +29 -0
  5. cars/applications/application_template.py +146 -0
  6. cars/applications/auxiliary_filling/__init__.py +29 -0
  7. cars/applications/auxiliary_filling/abstract_auxiliary_filling_app.py +105 -0
  8. cars/applications/auxiliary_filling/auxiliary_filling_algo.py +475 -0
  9. cars/applications/auxiliary_filling/auxiliary_filling_from_sensors_app.py +632 -0
  10. cars/applications/auxiliary_filling/auxiliary_filling_wrappers.py +90 -0
  11. cars/applications/dem_generation/__init__.py +30 -0
  12. cars/applications/dem_generation/abstract_dem_generation_app.py +116 -0
  13. cars/applications/dem_generation/bulldozer_config/base_config.yaml +42 -0
  14. cars/applications/dem_generation/bulldozer_dem_app.py +641 -0
  15. cars/applications/dem_generation/bulldozer_memory.py +55 -0
  16. cars/applications/dem_generation/dem_generation_algo.py +107 -0
  17. cars/applications/dem_generation/dem_generation_constants.py +32 -0
  18. cars/applications/dem_generation/dem_generation_wrappers.py +323 -0
  19. cars/applications/dense_match_filling/__init__.py +30 -0
  20. cars/applications/dense_match_filling/abstract_dense_match_filling_app.py +242 -0
  21. cars/applications/dense_match_filling/fill_disp_algo.py +113 -0
  22. cars/applications/dense_match_filling/fill_disp_constants.py +39 -0
  23. cars/applications/dense_match_filling/fill_disp_wrappers.py +83 -0
  24. cars/applications/dense_match_filling/zero_padding_app.py +302 -0
  25. cars/applications/dense_matching/__init__.py +30 -0
  26. cars/applications/dense_matching/abstract_dense_matching_app.py +261 -0
  27. cars/applications/dense_matching/census_mccnn_sgm_app.py +1461 -0
  28. cars/applications/dense_matching/cpp/__init__.py +0 -0
  29. cars/applications/dense_matching/cpp/dense_matching_cpp.cp312-win_amd64.dll.a +0 -0
  30. cars/applications/dense_matching/cpp/dense_matching_cpp.cp312-win_amd64.pyd +0 -0
  31. cars/applications/dense_matching/cpp/dense_matching_cpp.py +94 -0
  32. cars/applications/dense_matching/cpp/includes/dense_matching.hpp +58 -0
  33. cars/applications/dense_matching/cpp/meson.build +9 -0
  34. cars/applications/dense_matching/cpp/src/bindings.cpp +13 -0
  35. cars/applications/dense_matching/cpp/src/dense_matching.cpp +207 -0
  36. cars/applications/dense_matching/dense_matching_algo.py +401 -0
  37. cars/applications/dense_matching/dense_matching_constants.py +89 -0
  38. cars/applications/dense_matching/dense_matching_wrappers.py +951 -0
  39. cars/applications/dense_matching/disparity_grid_algo.py +597 -0
  40. cars/applications/dense_matching/loaders/__init__.py +23 -0
  41. cars/applications/dense_matching/loaders/config_census_sgm_default.json +31 -0
  42. cars/applications/dense_matching/loaders/config_census_sgm_homogeneous.json +30 -0
  43. cars/applications/dense_matching/loaders/config_census_sgm_mountain_and_vegetation.json +30 -0
  44. cars/applications/dense_matching/loaders/config_census_sgm_shadow.json +30 -0
  45. cars/applications/dense_matching/loaders/config_census_sgm_sparse.json +36 -0
  46. cars/applications/dense_matching/loaders/config_census_sgm_urban.json +30 -0
  47. cars/applications/dense_matching/loaders/config_mapping.json +13 -0
  48. cars/applications/dense_matching/loaders/config_mccnn.json +28 -0
  49. cars/applications/dense_matching/loaders/global_land_cover_map.tif +0 -0
  50. cars/applications/dense_matching/loaders/pandora_loader.py +593 -0
  51. cars/applications/dsm_filling/__init__.py +32 -0
  52. cars/applications/dsm_filling/abstract_dsm_filling_app.py +101 -0
  53. cars/applications/dsm_filling/border_interpolation_app.py +278 -0
  54. cars/applications/dsm_filling/bulldozer_config/base_config.yaml +44 -0
  55. cars/applications/dsm_filling/bulldozer_filling_app.py +288 -0
  56. cars/applications/dsm_filling/exogenous_filling_app.py +341 -0
  57. cars/applications/dsm_merging/__init__.py +28 -0
  58. cars/applications/dsm_merging/abstract_dsm_merging_app.py +101 -0
  59. cars/applications/dsm_merging/weighted_fusion_app.py +639 -0
  60. cars/applications/grid_correction/__init__.py +30 -0
  61. cars/applications/grid_correction/abstract_grid_correction_app.py +103 -0
  62. cars/applications/grid_correction/grid_correction_app.py +557 -0
  63. cars/applications/grid_generation/__init__.py +30 -0
  64. cars/applications/grid_generation/abstract_grid_generation_app.py +142 -0
  65. cars/applications/grid_generation/epipolar_grid_generation_app.py +327 -0
  66. cars/applications/grid_generation/grid_generation_algo.py +388 -0
  67. cars/applications/grid_generation/grid_generation_constants.py +46 -0
  68. cars/applications/grid_generation/transform_grid.py +88 -0
  69. cars/applications/ground_truth_reprojection/__init__.py +30 -0
  70. cars/applications/ground_truth_reprojection/abstract_ground_truth_reprojection_app.py +137 -0
  71. cars/applications/ground_truth_reprojection/direct_localization_app.py +629 -0
  72. cars/applications/ground_truth_reprojection/ground_truth_reprojection_algo.py +275 -0
  73. cars/applications/point_cloud_outlier_removal/__init__.py +30 -0
  74. cars/applications/point_cloud_outlier_removal/abstract_outlier_removal_app.py +385 -0
  75. cars/applications/point_cloud_outlier_removal/outlier_removal_algo.py +392 -0
  76. cars/applications/point_cloud_outlier_removal/outlier_removal_constants.py +43 -0
  77. cars/applications/point_cloud_outlier_removal/small_components_app.py +522 -0
  78. cars/applications/point_cloud_outlier_removal/statistical_app.py +528 -0
  79. cars/applications/rasterization/__init__.py +30 -0
  80. cars/applications/rasterization/abstract_pc_rasterization_app.py +183 -0
  81. cars/applications/rasterization/rasterization_algo.py +534 -0
  82. cars/applications/rasterization/rasterization_constants.py +38 -0
  83. cars/applications/rasterization/rasterization_wrappers.py +639 -0
  84. cars/applications/rasterization/simple_gaussian_app.py +1152 -0
  85. cars/applications/resampling/__init__.py +28 -0
  86. cars/applications/resampling/abstract_resampling_app.py +187 -0
  87. cars/applications/resampling/bicubic_resampling_app.py +760 -0
  88. cars/applications/resampling/resampling_algo.py +590 -0
  89. cars/applications/resampling/resampling_constants.py +36 -0
  90. cars/applications/resampling/resampling_wrappers.py +309 -0
  91. cars/applications/sensors_subsampling/__init__.py +32 -0
  92. cars/applications/sensors_subsampling/abstract_subsampling_app.py +109 -0
  93. cars/applications/sensors_subsampling/rasterio_subsampling_app.py +420 -0
  94. cars/applications/sensors_subsampling/subsampling_algo.py +108 -0
  95. cars/applications/sparse_matching/__init__.py +30 -0
  96. cars/applications/sparse_matching/abstract_sparse_matching_app.py +599 -0
  97. cars/applications/sparse_matching/sift_app.py +724 -0
  98. cars/applications/sparse_matching/sparse_matching_algo.py +360 -0
  99. cars/applications/sparse_matching/sparse_matching_constants.py +66 -0
  100. cars/applications/sparse_matching/sparse_matching_wrappers.py +282 -0
  101. cars/applications/triangulation/__init__.py +32 -0
  102. cars/applications/triangulation/abstract_triangulation_app.py +227 -0
  103. cars/applications/triangulation/line_of_sight_intersection_app.py +1243 -0
  104. cars/applications/triangulation/pc_transform.py +552 -0
  105. cars/applications/triangulation/triangulation_algo.py +371 -0
  106. cars/applications/triangulation/triangulation_constants.py +38 -0
  107. cars/applications/triangulation/triangulation_wrappers.py +259 -0
  108. cars/bundleadjustment.py +750 -0
  109. cars/cars.py +179 -0
  110. cars/conf/__init__.py +23 -0
  111. cars/conf/geoid/egm96.grd +0 -0
  112. cars/conf/geoid/egm96.grd.hdr +15 -0
  113. cars/conf/input_parameters.py +156 -0
  114. cars/conf/mask_cst.py +35 -0
  115. cars/core/__init__.py +23 -0
  116. cars/core/cars_logging.py +402 -0
  117. cars/core/constants.py +191 -0
  118. cars/core/constants_disparity.py +50 -0
  119. cars/core/datasets.py +140 -0
  120. cars/core/geometry/__init__.py +27 -0
  121. cars/core/geometry/abstract_geometry.py +1119 -0
  122. cars/core/geometry/shareloc_geometry.py +598 -0
  123. cars/core/inputs.py +568 -0
  124. cars/core/outputs.py +176 -0
  125. cars/core/preprocessing.py +722 -0
  126. cars/core/projection.py +843 -0
  127. cars/core/roi_tools.py +215 -0
  128. cars/core/tiling.py +774 -0
  129. cars/core/utils.py +164 -0
  130. cars/data_structures/__init__.py +23 -0
  131. cars/data_structures/cars_dataset.py +1544 -0
  132. cars/data_structures/cars_dict.py +74 -0
  133. cars/data_structures/corresponding_tiles_tools.py +186 -0
  134. cars/data_structures/dataframe_converter.py +185 -0
  135. cars/data_structures/format_transformation.py +297 -0
  136. cars/devibrate.py +689 -0
  137. cars/extractroi.py +264 -0
  138. cars/orchestrator/__init__.py +23 -0
  139. cars/orchestrator/achievement_tracker.py +125 -0
  140. cars/orchestrator/cluster/__init__.py +37 -0
  141. cars/orchestrator/cluster/abstract_cluster.py +250 -0
  142. cars/orchestrator/cluster/abstract_dask_cluster.py +381 -0
  143. cars/orchestrator/cluster/dask_cluster_tools.py +103 -0
  144. cars/orchestrator/cluster/dask_config/README.md +94 -0
  145. cars/orchestrator/cluster/dask_config/dask.yaml +21 -0
  146. cars/orchestrator/cluster/dask_config/distributed.yaml +70 -0
  147. cars/orchestrator/cluster/dask_config/jobqueue.yaml +26 -0
  148. cars/orchestrator/cluster/dask_config/reference_confs/dask-schema.yaml +137 -0
  149. cars/orchestrator/cluster/dask_config/reference_confs/dask.yaml +26 -0
  150. cars/orchestrator/cluster/dask_config/reference_confs/distributed-schema.yaml +1009 -0
  151. cars/orchestrator/cluster/dask_config/reference_confs/distributed.yaml +273 -0
  152. cars/orchestrator/cluster/dask_config/reference_confs/jobqueue.yaml +212 -0
  153. cars/orchestrator/cluster/dask_jobqueue_utils.py +204 -0
  154. cars/orchestrator/cluster/local_dask_cluster.py +116 -0
  155. cars/orchestrator/cluster/log_wrapper.py +728 -0
  156. cars/orchestrator/cluster/mp_cluster/__init__.py +27 -0
  157. cars/orchestrator/cluster/mp_cluster/mp_factorizer.py +212 -0
  158. cars/orchestrator/cluster/mp_cluster/mp_objects.py +535 -0
  159. cars/orchestrator/cluster/mp_cluster/mp_tools.py +93 -0
  160. cars/orchestrator/cluster/mp_cluster/mp_wrapper.py +505 -0
  161. cars/orchestrator/cluster/mp_cluster/multiprocessing_cluster.py +986 -0
  162. cars/orchestrator/cluster/mp_cluster/multiprocessing_profiler.py +399 -0
  163. cars/orchestrator/cluster/pbs_dask_cluster.py +207 -0
  164. cars/orchestrator/cluster/sequential_cluster.py +139 -0
  165. cars/orchestrator/cluster/slurm_dask_cluster.py +234 -0
  166. cars/orchestrator/memory_tools.py +47 -0
  167. cars/orchestrator/orchestrator.py +755 -0
  168. cars/orchestrator/orchestrator_constants.py +29 -0
  169. cars/orchestrator/registry/__init__.py +23 -0
  170. cars/orchestrator/registry/abstract_registry.py +143 -0
  171. cars/orchestrator/registry/compute_registry.py +106 -0
  172. cars/orchestrator/registry/id_generator.py +116 -0
  173. cars/orchestrator/registry/replacer_registry.py +213 -0
  174. cars/orchestrator/registry/saver_registry.py +363 -0
  175. cars/orchestrator/registry/unseen_registry.py +118 -0
  176. cars/orchestrator/tiles_profiler.py +279 -0
  177. cars/pipelines/__init__.py +26 -0
  178. cars/pipelines/conf_resolution/conf_final_resolution.yaml +5 -0
  179. cars/pipelines/conf_resolution/conf_first_resolution.yaml +4 -0
  180. cars/pipelines/conf_resolution/conf_intermediate_resolution.yaml +2 -0
  181. cars/pipelines/default/__init__.py +26 -0
  182. cars/pipelines/default/default_pipeline.py +1088 -0
  183. cars/pipelines/filling/__init__.py +26 -0
  184. cars/pipelines/filling/filling.py +981 -0
  185. cars/pipelines/formatting/__init__.py +26 -0
  186. cars/pipelines/formatting/formatting.py +186 -0
  187. cars/pipelines/merging/__init__.py +26 -0
  188. cars/pipelines/merging/merging.py +439 -0
  189. cars/pipelines/parameters/__init__.py +0 -0
  190. cars/pipelines/parameters/advanced_parameters.py +256 -0
  191. cars/pipelines/parameters/advanced_parameters_constants.py +68 -0
  192. cars/pipelines/parameters/application_parameters.py +72 -0
  193. cars/pipelines/parameters/depth_map_inputs.py +0 -0
  194. cars/pipelines/parameters/dsm_inputs.py +349 -0
  195. cars/pipelines/parameters/dsm_inputs_constants.py +25 -0
  196. cars/pipelines/parameters/output_constants.py +52 -0
  197. cars/pipelines/parameters/output_parameters.py +438 -0
  198. cars/pipelines/parameters/sensor_inputs.py +859 -0
  199. cars/pipelines/parameters/sensor_inputs_constants.py +51 -0
  200. cars/pipelines/parameters/sensor_loaders/__init__.py +29 -0
  201. cars/pipelines/parameters/sensor_loaders/basic_classif_loader.py +86 -0
  202. cars/pipelines/parameters/sensor_loaders/basic_image_loader.py +98 -0
  203. cars/pipelines/parameters/sensor_loaders/pivot_classif_loader.py +90 -0
  204. cars/pipelines/parameters/sensor_loaders/pivot_image_loader.py +105 -0
  205. cars/pipelines/parameters/sensor_loaders/sensor_loader.py +93 -0
  206. cars/pipelines/parameters/sensor_loaders/sensor_loader_template.py +71 -0
  207. cars/pipelines/parameters/sensor_loaders/slurp_classif_loader.py +86 -0
  208. cars/pipelines/pipeline.py +119 -0
  209. cars/pipelines/pipeline_constants.py +38 -0
  210. cars/pipelines/pipeline_template.py +135 -0
  211. cars/pipelines/subsampling/__init__.py +26 -0
  212. cars/pipelines/subsampling/subsampling.py +358 -0
  213. cars/pipelines/surface_modeling/__init__.py +26 -0
  214. cars/pipelines/surface_modeling/surface_modeling.py +2098 -0
  215. cars/pipelines/tie_points/__init__.py +26 -0
  216. cars/pipelines/tie_points/tie_points.py +536 -0
  217. cars/starter.py +167 -0
  218. cars-1.0.0rc2.dist-info/DELVEWHEEL +2 -0
  219. cars-1.0.0rc2.dist-info/METADATA +289 -0
  220. cars-1.0.0rc2.dist-info/RECORD +225 -0
  221. cars-1.0.0rc2.dist-info/WHEEL +4 -0
  222. cars-1.0.0rc2.dist-info/entry_points.txt +8 -0
  223. cars.libs/libgcc_s_seh-1-b2494fcbd4d80cf2c98fdd5261f6d850.dll +0 -0
  224. cars.libs/libstdc++-6-e9b0d12ae0e9555bbae55e8dfd08c3f7.dll +0 -0
  225. cars.libs/libwinpthread-1-7882d1b093714ccdfaf4e0789a817792.dll +0 -0
cars/starter.py ADDED
@@ -0,0 +1,167 @@
1
+ #!/usr/bin/env python
2
+ # coding: utf8
3
+ #
4
+ # Copyright (c) 2020 Centre National d'Etudes Spatiales (CNES).
5
+ #
6
+ # This file is part of CARS
7
+ # (see https://github.com/CNES/cars).
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ """
22
+ cars-starter: helper to create configuration file
23
+ """
24
+
25
+ # pylint: disable=import-outside-toplevel
26
+ # standard imports
27
+ import argparse
28
+ import json
29
+ import os
30
+
31
+ import yaml
32
+
33
+
34
+ def inputfilename_to_sensor(inputfilename):
35
+ """
36
+ Fill sensor dictionary according to an input filename
37
+ """
38
+ sensor = {}
39
+
40
+ absfilename = os.path.abspath(inputfilename)
41
+ dirname = os.path.dirname(absfilename)
42
+ basename = os.path.basename(absfilename)
43
+
44
+ if basename.startswith("DIM") and basename.endswith("XML"):
45
+ geomodel = os.path.join(dirname, "RPC" + basename[3:])
46
+ if os.path.exists(geomodel) is False:
47
+ geomodel = None
48
+
49
+ elif basename.endswith(".tif"):
50
+ geomodel = os.path.splitext(absfilename)[0] + ".geom"
51
+ if os.path.exists(geomodel) is False:
52
+ geomodel = None
53
+ else:
54
+ raise ValueError(absfilename + " not supported")
55
+
56
+ sensor["image"] = absfilename
57
+ if geomodel is not None:
58
+ sensor["geomodel"] = geomodel
59
+
60
+ return sensor
61
+
62
+
63
+ def cars_starter(cli_params: dict = None, **kwargs) -> None:
64
+ """
65
+ Main fonction. Expects a dictionary from the CLI (cli_params)
66
+ or directly the input parameters.
67
+ """
68
+ if cli_params and isinstance(cli_params, dict):
69
+ config = cli_params
70
+ else:
71
+ params_name = set(kwargs.keys())
72
+ required_params = {"il", "out"}
73
+ missing_params = required_params - params_name
74
+ if len(missing_params) > 0:
75
+ raise ValueError(
76
+ "The following parameters are required: {}".format(
77
+ ", ".join(list(missing_params))
78
+ )
79
+ )
80
+ config = kwargs
81
+
82
+ cars_config = {"input": {"sensors": {}}, "output": {}}
83
+ pipeline_name = "default"
84
+
85
+ for idx, inputfilename in enumerate(config["il"]):
86
+ cars_config["input"]["sensors"][str(idx)] = inputfilename_to_sensor(
87
+ inputfilename
88
+ )
89
+
90
+ # pairing with first image as reference
91
+ pairing = list(
92
+ zip( # noqa: B905
93
+ ["0"] * (len(config["il"]) - 1),
94
+ map(str, range(1, len(config["il"]))),
95
+ )
96
+ )
97
+
98
+ cars_config["input"]["pairing"] = pairing
99
+ cars_config["output"]["directory"] = config["out"]
100
+
101
+ check = config["check"] if "check" in config.keys() else False
102
+ full = config["full"] if "full" in config.keys() else False
103
+
104
+ if check or full:
105
+ # cars imports
106
+ from cars.pipelines.pipeline import Pipeline
107
+
108
+ used_pipeline = Pipeline(pipeline_name, cars_config, None)
109
+ if full:
110
+ cars_config = used_pipeline.used_conf
111
+
112
+ # output format handling
113
+ output_format = config.get("format", "yaml")
114
+ if output_format == "yaml":
115
+ print(yaml.safe_dump(cars_config, sort_keys=False))
116
+ elif output_format == "json":
117
+ print(json.dumps(cars_config, indent=2))
118
+ else:
119
+ raise ValueError(
120
+ "Invalid format: {}. Use 'json' or 'yaml'.".format(output_format)
121
+ )
122
+
123
+
124
+ def cli():
125
+ """
126
+ Main cars-starter entrypoint (Command Line Interface)
127
+ """
128
+ parser = argparse.ArgumentParser(
129
+ "cars-starter", description="Helper to create configuration file"
130
+ )
131
+ parser.add_argument(
132
+ "-il",
133
+ type=str,
134
+ nargs="*",
135
+ metavar="input.{tif,XML}",
136
+ help="Input sensor list",
137
+ required=True,
138
+ )
139
+
140
+ parser.add_argument(
141
+ "-out",
142
+ type=str,
143
+ metavar="out_dir",
144
+ help="Output directory",
145
+ required=True,
146
+ )
147
+
148
+ parser.add_argument(
149
+ "--full", action="store_true", help="Fill all default values"
150
+ )
151
+
152
+ parser.add_argument("--check", action="store_true", help="Check input")
153
+
154
+ parser.add_argument(
155
+ "--format",
156
+ type=str,
157
+ default="yaml",
158
+ choices=["json", "yaml"],
159
+ help="Output format (json or yaml). Default: yaml",
160
+ )
161
+
162
+ args = parser.parse_args()
163
+ cars_starter(vars(args))
164
+
165
+
166
+ if __name__ == "__main__":
167
+ cli()
@@ -0,0 +1,2 @@
1
+ Version: 1.11.2
2
+ Arguments: ['C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-aqrg1k1u\\cp312-win_amd64\\build\\venv\\Scripts\\delvewheel', 'repair', '-w', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-aqrg1k1u\\cp312-win_amd64\\repaired_wheel', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-aqrg1k1u\\cp312-win_amd64\\built_wheel\\cars-1.0.0rc2-cp312-cp312-win_amd64.whl']
@@ -0,0 +1,289 @@
1
+ Metadata-Version: 2.1
2
+ Name: cars
3
+ Version: 1.0.0rc2
4
+ Summary: A satellite multi view stereo pipeline
5
+ Keywords: cars,3D,DEM,pandora,photogrammetry
6
+ Author-Email: CNES <cars@cnes.fr>
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: Intended Audience :: End Users/Desktop
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Environment :: Console
12
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Project-URL: Documentation, https://cars.readthedocs.io/en/latest/
18
+ Project-URL: Repository, https://github.com/CNES/cars
19
+ Requires-Python: >=3.9
20
+ Requires-Dist: numpy>=1.17.0
21
+ Requires-Dist: scipy!=1.10.0,>=1.7.1
22
+ Requires-Dist: scikit-image<0.26.0
23
+ Requires-Dist: matplotlib
24
+ Requires-Dist: affine
25
+ Requires-Dist: rasterio>=1.3.0
26
+ Requires-Dist: dask>=2021.10.0
27
+ Requires-Dist: distributed>=2021.10.0
28
+ Requires-Dist: dask-jobqueue>=0.7.3
29
+ Requires-Dist: json-checker
30
+ Requires-Dist: pyyaml
31
+ Requires-Dist: xarray
32
+ Requires-Dist: tqdm
33
+ Requires-Dist: netCDF4>=1.5.3
34
+ Requires-Dist: Shapely
35
+ Requires-Dist: Fiona
36
+ Requires-Dist: pyproj
37
+ Requires-Dist: utm
38
+ Requires-Dist: pandas
39
+ Requires-Dist: urllib3<2.0,>=1.21.1
40
+ Requires-Dist: laspy[laszip]
41
+ Requires-Dist: pandora[sgm]==1.7.2
42
+ Requires-Dist: cars-rasterize==0.2.*
43
+ Requires-Dist: cars-resample==0.1.*
44
+ Requires-Dist: cars-filter==0.2.*
45
+ Requires-Dist: vlsift==0.1.*
46
+ Requires-Dist: shareloc==0.2.12
47
+ Requires-Dist: bulldozer-dtm==1.1.*
48
+ Requires-Dist: xdem==0.2.*
49
+ Requires-Dist: geopandas<=1.0.1
50
+ Provides-Extra: dev
51
+ Requires-Dist: pytest; extra == "dev"
52
+ Requires-Dist: pytest-cov; extra == "dev"
53
+ Requires-Dist: pytest-check; extra == "dev"
54
+ Requires-Dist: pre-commit; extra == "dev"
55
+ Requires-Dist: isort>=5.8.0; extra == "dev"
56
+ Requires-Dist: black==25.*; extra == "dev"
57
+ Requires-Dist: flake8>=3.9.1; extra == "dev"
58
+ Requires-Dist: flake8-pyproject; extra == "dev"
59
+ Requires-Dist: flake8-comprehensions>=3.4.0; extra == "dev"
60
+ Requires-Dist: flake8-bugbear<24.0.0,>=21.4.3; extra == "dev"
61
+ Requires-Dist: jupyter_contrib_nbextensions; extra == "dev"
62
+ Requires-Dist: pylint<4.0.0,>=2.8.12; extra == "dev"
63
+ Requires-Dist: setuptools_scm; extra == "dev"
64
+ Requires-Dist: virtualenv; extra == "dev"
65
+ Requires-Dist: configupdater; extra == "dev"
66
+ Requires-Dist: twine; extra == "dev"
67
+ Requires-Dist: notebook<7.0.0; extra == "dev"
68
+ Requires-Dist: bokeh>3.0.0; extra == "dev"
69
+ Requires-Dist: sphinx; extra == "dev"
70
+ Requires-Dist: sphinx-rtd-theme; extra == "dev"
71
+ Requires-Dist: graphviz; extra == "dev"
72
+ Requires-Dist: dash; extra == "dev"
73
+ Requires-Dist: plotly; extra == "dev"
74
+ Requires-Dist: build; extra == "dev"
75
+ Provides-Extra: docs
76
+ Requires-Dist: astroid<4.0.0; extra == "docs"
77
+ Requires-Dist: sphinx; extra == "docs"
78
+ Requires-Dist: sphinx-rtd-theme; extra == "docs"
79
+ Requires-Dist: sphinx_autoapi; extra == "docs"
80
+ Requires-Dist: graphviz; extra == "docs"
81
+ Requires-Dist: sphinx_tabs; extra == "docs"
82
+ Requires-Dist: sphinx-copybutton; extra == "docs"
83
+ Provides-Extra: notebook
84
+ Requires-Dist: notebook; extra == "notebook"
85
+ Requires-Dist: bokeh; extra == "notebook"
86
+ Requires-Dist: rise; extra == "notebook"
87
+ Provides-Extra: pandora-mccnn
88
+ Requires-Dist: pandora_plugin_mccnn==1.3.5; extra == "pandora-mccnn"
89
+ Provides-Extra: bundleadjustment
90
+ Requires-Dist: rpcfit; extra == "bundleadjustment"
91
+ Description-Content-Type: text/markdown
92
+
93
+ <div align="center">
94
+ <a target="_blank" href="https://github.com/CNES/cars">
95
+ <picture>
96
+ <img
97
+ src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/cars_picto.svg"
98
+ alt="CARS"
99
+ width="50%"
100
+ />
101
+ </picture>
102
+ </a>
103
+
104
+ <h4>CARS, a satellite multi view stereo framework </h4>
105
+
106
+ [![Python](https://img.shields.io/badge/python-v3.10+-blue.svg)](https://www.python.org/downloads/release/python-390/)
107
+ [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg)](CONTRIBUTING.md)
108
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0/)
109
+ [![Documentation](https://readthedocs.org/projects/cars/badge/?version=latest)](https://cars.readthedocs.io/?badge=latest)
110
+ [![Github Action](https://github.com/CNES/cars/actions/workflows/cars-ci.yml/badge.svg?branch=master)](https://github.com/CNES/cars/actions)
111
+ [![pypi](https://badge.fury.io/py/cars.svg)](https://pypi.org/project/cars/)
112
+ [![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)
113
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17406459.svg)](https://doi.org/10.5281/zenodo.17406459)
114
+
115
+ <p>
116
+ <a href="#overview">Overview</a> •
117
+ <a href="#quick-start">Quick Start</a> •
118
+ <a href="#documentation">Documentation</a> •
119
+ <a href="#license">License</a> •
120
+ <a href="#contribution">Contribution</a> •
121
+ <a href="#help">Help</a> •
122
+ <a href="#credits">Credits</a> •
123
+ <a href="#contact">Contact</a> •
124
+ <a href="#references">References</a>
125
+ </p>
126
+ </div>
127
+
128
+ # 🌐 **Overview**
129
+
130
+ <div align="center">
131
+ <table style="display: inline-block;">
132
+ <tr>
133
+ <td align="center">
134
+ <div style="font-size:2em; margin-bottom:10px;"><strong>🎞️ From Stereo Images</strong></div><br>
135
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/animation_sat.gif"
136
+ alt="Stereo images animation" width="95%"><br>
137
+ <em>Input stereo image pairs</em>
138
+ </td>
139
+ <td align="center">
140
+ <div style="font-size:2em; margin-bottom:10px;"><strong>🌍 To Digital Surface Model (DSM)</strong></div><br>
141
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/overview_dsm_3d.gif"
142
+ alt="DSM overview" width="95%"><br>
143
+ <em>Output 3D surface reconstruction</em>
144
+ </td>
145
+ </tr>
146
+ </table>
147
+ </div>
148
+
149
+ **CARS** is an open source 3D tool dedicated to produce **Digital Surface Models** from satellite imaging by photogrammetry.
150
+ This Multiview Stereo framework is intended for massive DSM production with a robust, performant and modular design.
151
+
152
+ **CARS** is currently under active development and integrated into various projects & missions:
153
+
154
+ <div align="center">
155
+ <p align="center">
156
+ <a href="https://co3d.cnes.fr/en/co3d-0" target="_blank">
157
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo_co3D_cnes.png"
158
+ alt="CO3D project" height="70">
159
+ </a>
160
+ &nbsp;&nbsp;&nbsp;&nbsp;
161
+ <a href="https://www.ai4geo.eu" target="_blank">
162
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-ai4geo.png"
163
+ alt="AI4GEO project" height="75">
164
+ </a>
165
+ &nbsp;&nbsp;&nbsp;&nbsp;
166
+ <a href="https://www.evo-land.eu" target="_blank">
167
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/logo-evoland.png"
168
+ alt="Evoland project" height="60">
169
+ </a>
170
+ </p>
171
+ </div>
172
+
173
+ <br>
174
+
175
+ Its roadmap and implemented functionalities are evolving regularly depending on specific project requirements.
176
+
177
+ # 🚀 **Quick start**
178
+
179
+
180
+ ### △ On the way to the Pyramids...
181
+ ---
182
+
183
+ You want to build the pyramids by yourself?
184
+
185
+
186
+ <div align="center">
187
+ <table style="display: inline-block;">
188
+ <tr>
189
+ <td align="center">
190
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/dsm.png"
191
+ alt="Dsm" width="400"><br>
192
+ </td>
193
+ <td align="center">
194
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/clr.png"
195
+ alt="Color" width="400"><br>
196
+ </td>
197
+ <td align="center">
198
+ <img src="https://raw.githubusercontent.com/CNES/cars/master/docs/source/images/dsm_clr.png"
199
+ alt="Color" width="400"><br>
200
+ </td>
201
+ </tr>
202
+ </table>
203
+ </div>
204
+
205
+ 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!
206
+
207
+
208
+ ### 🐋 with Docker
209
+ ---
210
+
211
+ #### 🛠 Installation
212
+
213
+ CARS is available on Docker Hub and can be downloaded by:
214
+ ``` bash
215
+ docker pull cnes/cars
216
+ ```
217
+
218
+ #### ⚙ Run CARS
219
+
220
+ You only need to launch one command:
221
+
222
+ ```
223
+ docker run -w /data -v "$(pwd)"/data_gizeh:/data cnes/cars /data/configfile.yaml
224
+ ```
225
+
226
+ ### 🐍 with pip
227
+ ---
228
+
229
+ #### 🛠 Installation
230
+
231
+ CARS can also be downloaded using the pip install command:
232
+
233
+ ``` bash
234
+ pip install cars
235
+ ```
236
+
237
+ #### ⚙ Run CARS
238
+
239
+ Once you moved to the data_gizeh directory:
240
+
241
+ ``` bash
242
+ cars configfile.yaml
243
+ ```
244
+
245
+ # 📚 **Documentation**
246
+
247
+ Go to [CARS Main Documentation](https://cars.readthedocs.io/?badge=latest).
248
+
249
+ # 📜 **License**
250
+
251
+ 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.
252
+
253
+ # 🤝 **Contribution**
254
+
255
+ 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).
256
+
257
+ # 🆘 **Help**
258
+
259
+ 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.
260
+
261
+ You can also ask your questions on the corresponding [slack](https://join.slack.com/t/cars-community/shared_invite/zt-2uw6usog1-~TT~m8BxO9faMXpP7tpz2Q).
262
+
263
+ # ✒️ **Credits**
264
+
265
+ If you use CARS in your research, please cite the following paper:
266
+
267
+ ```
268
+ @INPROCEEDINGS{9324020,
269
+ 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},
270
+ booktitle={IGARSS 2020 - 2020 IEEE International Geoscience and Remote Sensing Symposium},
271
+ title={CARS: A Photogrammetry Pipeline Using Dask Graphs to Construct A Global 3D Model},
272
+ year={2020},
273
+ volume={},
274
+ number={},
275
+ pages={453-456},
276
+ 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},
277
+ doi={10.1109/IGARSS39084.2020.9324020}}
278
+ ```
279
+
280
+ See [Authors file](https://github.com/CNES/cars/blob/master/AUTHORS.md)
281
+
282
+ # ✉️ **Contact**
283
+
284
+ You can contact us on the following mail adress: cars@cnes.fr
285
+
286
+ # 🔗 **References**
287
+
288
+ - [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)
289
+ - [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/)