=== odm-pipeline-hc97l-main-2771915751/process.log === === process attempt 0 @ 2026-05-25T07:21:40Z === Running ODM processing... Processing job: odm-pipeline-hc97l ODM Project ID: DTM-Task-8c3618c1-afb3-4172-a495-63860103e7b6 Executing: python3 -u run.py --fast-orthophoto --orthophoto-resolution=3.5 --project-path /workspace odm-pipeline-hc97l mkdir -p failed for path /home/ubuntu/.config/matplotlib: [Errno 30] Read-only file system: '/home/ubuntu/.config' Matplotlib created a temporary cache directory at /tmp/matplotlib-lwuz17ih because there was an issue with the default path (/home/ubuntu/.config/matplotlib); it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing. [INFO] Fast orthophoto is turned on, automatically setting --skip-3dmodel [INFO] Initializing ODM 3.6.0 - Mon May 25 07:21:43 2026 [INFO] ============== [INFO] 3d_tiles: False [INFO] align: None [INFO] auto_boundary: False [INFO] auto_boundary_distance: 0 [INFO] bg_removal: False [INFO] boundary: {} [INFO] build_overviews: False [INFO] camera_lens: auto [INFO] cameras: {} [INFO] cog: False [INFO] copy_to: None [INFO] crop: 3 [INFO] dem_decimation: 1 [INFO] dem_euclidean_map: False [INFO] dem_gapfill_steps: 3 [INFO] dem_resolution: 5 [INFO] dsm: False [INFO] dtm: False [INFO] end_with: odm_postprocess [INFO] fast_orthophoto: True [INFO] feature_quality: high [INFO] feature_type: dspsift [INFO] force_gps: False [INFO] gcp: None [INFO] geo: None [INFO] gltf: False [INFO] gps_accuracy: 3 [INFO] gps_z_offset: 0 [INFO] ignore_gsd: False [INFO] matcher_neighbors: 0 [INFO] matcher_order: 0 [INFO] matcher_type: flann [INFO] max_concurrency: 4 [INFO] merge: all [INFO] merge_skip_blending: False [INFO] mesh_octree_depth: 11 [INFO] mesh_size: 200000 [INFO] min_num_features: 10000 [INFO] name: odm-pipeline-hc97l [INFO] no_gpu: False [INFO] optimize_disk_space: False [INFO] orthophoto_compression: DEFLATE [INFO] orthophoto_cutline: False [INFO] orthophoto_kmz: False [INFO] orthophoto_no_tiled: False [INFO] orthophoto_png: False [INFO] orthophoto_resolution: 3.5 [INFO] pc_classify: False [INFO] pc_copc: False [INFO] pc_csv: False [INFO] pc_ept: False [INFO] pc_filter: 5 [INFO] pc_las: False [INFO] pc_quality: medium [INFO] pc_rectify: False [INFO] pc_sample: 0 [INFO] pc_skip_geometric: False [INFO] primary_band: auto [INFO] project_path: /workspace/odm-pipeline-hc97l [INFO] radiometric_calibration: none [INFO] rerun: None [INFO] rerun_all: False [INFO] rerun_from: None [INFO] rolling_shutter: False [INFO] rolling_shutter_readout: 0 [INFO] sfm_algorithm: incremental [INFO] sfm_no_partial: False [INFO] skip_3dmodel: True [INFO] skip_band_alignment: False [INFO] skip_orthophoto: False [INFO] skip_report: False [INFO] sky_removal: False [INFO] sm_cluster: None [INFO] sm_no_align: False [INFO] smrf_scalar: 1.25 [INFO] smrf_slope: 0.15 [INFO] smrf_threshold: 0.5 [INFO] smrf_window: 18.0 [INFO] split: 999999 [INFO] split_image_groups: None [INFO] split_overlap: 150 [INFO] texturing_keep_unseen_faces: False [INFO] texturing_single_material: False [INFO] texturing_skip_global_seam_leveling: False [INFO] tiles: False [INFO] use_3dmesh: False [INFO] use_exif: False [INFO] use_fixed_camera_params: False [INFO] use_hybrid_bundle_adjustment: False [INFO] video_limit: 500 [INFO] video_resolution: 4000 [INFO] ============== [INFO] Running dataset stage [INFO] Loading dataset from: /workspace/odm-pipeline-hc97l/images [INFO] Loading images database: /workspace/odm-pipeline-hc97l/images.json [INFO] Found 154 usable images [INFO] Coordinates file already exist: /workspace/odm-pipeline-hc97l/odm_georeferencing/coords.txt [INFO] Model geo file already exist: /workspace/odm-pipeline-hc97l/odm_georeferencing/odm_georeferencing_model_geo.txt [INFO] Finished dataset stage [INFO] Running split stage [INFO] Normal dataset, will process all at once. [INFO] Finished split stage [INFO] Running merge stage [INFO] Normal dataset, nothing to merge. [INFO] Finished merge stage [INFO] Running opensfm stage [WARNING] /workspace/odm-pipeline-hc97l/opensfm/image_list.txt already exists, not rerunning OpenSfM setup [WARNING] /workspace/odm-pipeline-hc97l/opensfm/exif already exists, not rerunning photo to metadata [WARNING] Detect features already done: /workspace/odm-pipeline-hc97l/opensfm/features exists [INFO] running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" match_features "/workspace/odm-pipeline-hc97l/opensfm" 2026-05-25 07:21:44,594 INFO: Altitude is negative (-2847.9267192373854) : viewing directions are probably divergent. Using default altitude of 1.0 2026-05-25 07:21:44,594 INFO: Altitude for orientation based matching 1.0 2026-05-25 07:21:44,648 INFO: Matching 1387 image pairs 2026-05-25 07:21:44,651 INFO: Computing pair matching with 4 processes joblib.externals.loky.process_executor._RemoteTraceback: """ Traceback (most recent call last): File "/code/venv/lib/python3.12/site-packages/joblib/_utils.py", line 72, in __call__ return self.func(**kwargs) ^^^^^^^^^^^^^^^^^^^ File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 607, in __call__ return [func(*args, **kwargs) for func, args, kwargs in self.items] ^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/matching.py", line 210, in match_unwrap_args matches = match(im1, im2, camera1, camera2, data, config_override, pose) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/matching.py", line 571, in match p1, p2, matches, matcher_type = _match_descriptors_impl( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/matching.py", line 353, in _match_descriptors_impl features_data1 = feature_loader.instance.load_all_data( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/feature_loading.py", line 109, in load_all_data features_data = self._load_all_data_masked(data, image) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/feature_loading.py", line 160, in _load_all_data_masked features_data = self._load_all_data_unmasked(data, image) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/feature_loading.py", line 154, in _load_all_data_unmasked return self._load_features_nocache(data, image) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/feature_loading.py", line 201, in _load_features_nocache features_data = data.load_features(image) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/dataset.py", line 318, in load_features with self.io_handler.open(features_filepath, "rb") as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/io.py", line 1486, in open return open(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/workspace/odm-pipeline-hc97l/opensfm/features/d33dbe5a_DJI_20260519120151_0188_D.JPG.features.npz' """ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py", line 25, in commands.command_runner( File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/command_runner.py", line 38, in command_runner command.run(data, args) File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/command.py", line 13, in run self.run_impl(data, args) File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/match_features.py", line 13, in run_impl match_features.run_dataset(dataset) File "/code/SuperBuild/install/bin/opensfm/opensfm/actions/match_features.py", line 14, in run_dataset pairs_matches, preport = matching.match_images(data, {}, images, images) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/matching.py", line 56, in match_images match_images_with_pairs(data, config_override, exifs, pairs), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/matching.py", line 80, in match_images_with_pairs matches = context.parallel_map(match_unwrap_args, args, processes, jobs_per_process) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/SuperBuild/install/bin/opensfm/opensfm/context.py", line 59, in parallel_map res = Parallel(batch_size=batch_size)(delayed(func)(arg) for arg in args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 2072, in __call__ return output if self.return_generator else list(output) ^^^^^^^^^^^^ File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 1682, in _get_outputs yield from self._retrieve() File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 1784, in _retrieve self._raise_error_fast() File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 1859, in _raise_error_fast error_job.get_result(self.timeout) File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 758, in get_result return self._return_or_raise() ^^^^^^^^^^^^^^^^^^^^^^^ File "/code/venv/lib/python3.12/site-packages/joblib/parallel.py", line 773, in _return_or_raise raise self._result FileNotFoundError: [Errno 2] No such file or directory: '/workspace/odm-pipeline-hc97l/opensfm/features/d33dbe5a_DJI_20260519120151_0188_D.JPG.features.npz' ===== Dumping Info for Geeks (developers need this to fix bugs) ===== Child returned 1 Traceback (most recent call last): File "/code/stages/odm_app.py", line 82, in execute self.first_stage.run() File "/code/opendm/types.py", line 465, in run self.next_stage.run(outputs) File "/code/opendm/types.py", line 465, in run self.next_stage.run(outputs) File "/code/opendm/types.py", line 465, in run self.next_stage.run(outputs) File "/code/opendm/types.py", line 444, in run self.process(self.args, outputs) File "/code/stages/run_opensfm.py", line 35, in process octx.feature_matching(self.rerun()) File "/code/opendm/osfm.py", line 439, in feature_matching self.match_features(rerun) File "/code/opendm/osfm.py", line 444, in match_features self.run('match_features') File "/code/opendm/osfm.py", line 34, in run system.run('"%s" %s "%s"' % File "/code/opendm/system.py", line 112, in run raise SubprocessException("Child returned {}".format(retcode), retcode) opendm.system.SubprocessException: Child returned 1 ===== Done, human-readable information to follow... ===== [ERROR] Uh oh! Processing stopped because of strange values in the reconstruction. This is often a sign that the input data has some issues or the software cannot deal with it. Have you followed best practices for data acquisition? See https://docs.opendronemap.org/flying/