GCP user manual I'm terrible

Hello everyone,

I’m really dumb, I created a file as an example with 6 gcp, and I can’t get to the end of the processing in webodm, it puts (probably rightly so) can’t proceed with the processing…

I admit that this famous gcp text file has intrigued me for weeks. I’ve seen tutorials and I see that I’m not the only one lost in the “simple” way to do it.

sorry, but I admit to having tried everything before posting “my nullity” on this problem. I enclose the process.

Thank you for your indulgence as I know this is a recurring topic.

Laurent

[INFO] Initializing ODM 3.0.5 - Mon Mar 13 09:20:22 2023
[INFO] ==============
[INFO] 3d_tiles: False
[INFO] align: None
[INFO] auto_boundary: True
[INFO] auto_boundary_distance: 0
[INFO] bg_removal: False
[INFO] boundary: {}
[INFO] build_overviews: False
[INFO] camera_lens: auto
[INFO] cameras: {}
[INFO] cog: True
[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: True
[INFO] dtm: False
[INFO] end_with: odm_postprocess
[INFO] fast_orthophoto: False
[INFO] feature_quality: high
[INFO] feature_type: sift
[INFO] force_gps: False
[INFO] gcp: /var/www/data/aae2f492-acc7-482e-9768-30375eda02e6/gcp/gcp_list.txt
[INFO] geo: None
[INFO] gltf: True
[INFO] gps_accuracy: 10
[INFO] ignore_gsd: False
[INFO] matcher_neighbors: 0
[INFO] matcher_type: flann
[INFO] max_concurrency: 3
[INFO] merge: all
[INFO] mesh_octree_depth: 11
[INFO] mesh_size: 200000
[INFO] min_num_features: 10000
[INFO] name: aae2f492-acc7-482e-9768-30375eda02e6
[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: 5
[INFO] pc_classify: False
[INFO] pc_copc: False
[INFO] pc_csv: False
[INFO] pc_ept: True
[INFO] pc_filter: 2.5
[INFO] pc_las: False
[INFO] pc_quality: medium
[INFO] pc_rectify: False
[INFO] pc_sample: 0
[INFO] pc_skip_geometric: False
[INFO] pc_tile: False
[INFO] primary_band: auto
[INFO] project_path: /var/www/data
[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] skip_3dmodel: False
[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] texturing_skip_local_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: /var/www/data/aae2f492-acc7-482e-9768-30375eda02e6/images
[INFO] Loading 59 images
[INFO] Wrote images database: /var/www/data/aae2f492-acc7-482e-9768-30375eda02e6/images.json
[INFO] Found 59 usable images
Traceback (most recent call last):
File “/code/run.py”, line 59, in
retcode = app.execute()
File “/code/stages/odm_app.py”, line 117, in execute
raise e
File “/code/stages/odm_app.py”, line 81, in execute
self.first_stage.run()
File “/code/opendm/types.py”, line 377, in run
self.process(self.args, outputs)
File “/code/stages/dataset.py”, line 304, in process
reconstruction.georeference_with_gcp(tree.odm_georeferencing_gcp,
File “/code/opendm/types.py”, line 116, in georeference_with_gcp
gcp = GCPFile(gcp_file)
File “/code/opendm/gcp.py”, line 13, in init
self.read()
File “/code/opendm/gcp.py”, line 18, in read
contents = f.read().strip()
File “/usr/lib/python3.9/codecs.py”, line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: ‘utf-8’ codec can’t decode bytes in position 15-16: invalid continuation byte

1 Like

second test failed

… sortie tronquée aux 500 dernières lignes …
Simplifying…
iteration 80 - triangles 43462 threshold 3.93904
iteration 85 - triangles 39344 threshold 5.27732
Writing to binary file… done!
Processing block (3,0)
Sampled 5181124 faces, target is 37500
Simplifying…
iteration 0 - triangles 5238720 threshold 2.43e-07
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 0 - triangles 5181124 threshold 2.43e-07
iteration 5 - triangles 2377758 threshold 3.2768e-05
iteration 5 - triangles 2580612 threshold 3.2768e-05
iteration 10 - triangles 1237772 threshold 0.000371293
iteration 10 - triangles 1253412 threshold 0.000371293
iteration 15 - triangles 696674 threshold 0.00188957
iteration 5 - triangles 1538547 threshold 3.2768e-05
iteration 20 - triangles 429070 threshold 0.00643634
iteration 15 - triangles 714308 threshold 0.00188957
iteration 25 - triangles 285400 threshold 0.0172104
iteration 30 - triangles 201800 threshold 0.0391354
iteration 35 - triangles 150116 threshold 0.0792352
iteration 10 - triangles 695569 threshold 0.000371293
iteration 20 - triangles 473136 threshold 0.00643634
iteration 40 - triangles 115786 threshold 0.147008
iteration 45 - triangles 92384 threshold 0.254804
iteration 50 - triangles 75520 threshold 0.418195
iteration 25 - triangles 337706 threshold 0.0172104
iteration 55 - triangles 62962 threshold 0.656357
iteration 60 - triangles 53638 threshold 0.992437
iteration 15 - triangles 407287 threshold 0.00188957
iteration 65 - triangles 46336 threshold 1.45393
iteration 30 - triangles 249482 threshold 0.0391354
iteration 70 - triangles 40420 threshold 2.07307
Writing to binary file… done!
Processing block (0,2)
iteration 35 - triangles 193176 threshold 0.0792352
iteration 20 - triangles 272702 threshold 0.00643634
iteration 40 - triangles 154746 threshold 0.147008
Sampled 4981914 faces, target is 37500
Simplifying…
iteration 45 - triangles 127114 threshold 0.254804
iteration 25 - triangles 196218 threshold 0.0172104
iteration 50 - triangles 106632 threshold 0.418195
iteration 30 - triangles 147182 threshold 0.0391354
iteration 55 - triangles 90836 threshold 0.656357
iteration 35 - triangles 114827 threshold 0.0792352
iteration 60 - triangles 77296 threshold 0.992437
iteration 65 - triangles 67234 threshold 1.45393
iteration 40 - triangles 92646 threshold 0.147008
iteration 70 - triangles 58968 threshold 2.07307
iteration 45 - triangles 76546 threshold 0.254804
iteration 75 - triangles 52122 threshold 2.88717
iteration 50 - triangles 65022 threshold 0.418195
iteration 80 - triangles 46400 threshold 3.93904
iteration 85 - triangles 41676 threshold 5.27732
iteration 55 - triangles 55972 threshold 0.656357
iteration 90 - triangles 37758 threshold 6.95688
iteration 60 - triangles 49040 threshold 0.992437
Writing to binary file… done!
Processing block (2,0)
iteration 65 - triangles 43418 threshold 1.45393
iteration 70 - triangles 38709 threshold 2.07307
Writing to binary file… done!
Processing block (3,1)
Sampled 5239082 faces, target is 37500
Simplifying…
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 4981914 threshold 2.43e-07
iteration 0 - triangles 5239082 threshold 2.43e-07
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2939808 threshold 3.2768e-05
iteration 5 - triangles 1151907 threshold 3.2768e-05
iteration 5 - triangles 2791284 threshold 3.2768e-05
iteration 10 - triangles 419859 threshold 0.000371293
iteration 10 - triangles 1712882 threshold 0.000371293
iteration 15 - triangles 218370 threshold 0.00188957
iteration 20 - triangles 134221 threshold 0.00643634
iteration 25 - triangles 91078 threshold 0.0172104
iteration 30 - triangles 66251 threshold 0.0391354
iteration 10 - triangles 1395576 threshold 0.000371293
iteration 35 - triangles 50773 threshold 0.0792352
iteration 40 - triangles 40519 threshold 0.147008
Writing to binary file… done!
Processing block (0,3)
iteration 15 - triangles 1012616 threshold 0.00188957
Sampled 4895923 faces, target is 37500
Simplifying…
iteration 20 - triangles 648370 threshold 0.00643634
iteration 15 - triangles 773846 threshold 0.00188957
iteration 25 - triangles 443090 threshold 0.0172104
iteration 20 - triangles 489302 threshold 0.00643634
iteration 30 - triangles 319356 threshold 0.0391354
iteration 35 - triangles 239764 threshold 0.0792352
iteration 25 - triangles 336880 threshold 0.0172104
iteration 0 - triangles 4895923 threshold 2.43e-07
iteration 40 - triangles 186366 threshold 0.147008
iteration 30 - triangles 242520 threshold 0.0391354
iteration 45 - triangles 148742 threshold 0.254804
iteration 50 - triangles 121266 threshold 0.418195
iteration 35 - triangles 183870 threshold 0.0792352
iteration 55 - triangles 100330 threshold 0.656357
iteration 40 - triangles 144424 threshold 0.147008
iteration 60 - triangles 84310 threshold 0.992437
iteration 45 - triangles 116292 threshold 0.254804
iteration 65 - triangles 72012 threshold 1.45393
iteration 70 - triangles 62298 threshold 2.07307
iteration 50 - triangles 96316 threshold 0.418195
iteration 75 - triangles 54476 threshold 2.88717
iteration 55 - triangles 81054 threshold 0.656357
iteration 80 - triangles 48044 threshold 3.93904
iteration 60 - triangles 68954 threshold 0.992437
iteration 85 - triangles 42974 threshold 5.27732
iteration 90 - triangles 38590 threshold 6.95688
iteration 65 - triangles 59608 threshold 1.45393
Writing to binary file… done!
Processing block (2,1)
iteration 70 - triangles 52316 threshold 2.07307
iteration 75 - triangles 46164 threshold 2.88717
iteration 80 - triangles 41126 threshold 3.93904
Sampled 5242144 faces, target is 37500
Simplifying…
Writing to binary file… done!
Processing block (3,2)
Sampled 4762531 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 0 - triangles 4762531 threshold 2.43e-07
iteration 5 - triangles 941134 threshold 3.2768e-05
iteration 5 - triangles 3229556 threshold 3.2768e-05
iteration 10 - triangles 260238 threshold 0.000371293
iteration 15 - triangles 120302 threshold 0.00188957
iteration 20 - triangles 73347 threshold 0.00643634
iteration 25 - triangles 50274 threshold 0.0172104
Writing to binary file… done!
Processing block (1,0)
Sampled 5239082 faces, target is 37500
Simplifying…
iteration 5 - triangles 1634462 threshold 3.2768e-05
iteration 10 - triangles 1418982 threshold 0.000371293
iteration 0 - triangles 5239082 threshold 2.43e-07
iteration 10 - triangles 726209 threshold 0.000371293
iteration 15 - triangles 721090 threshold 0.00188957
iteration 15 - triangles 374445 threshold 0.00188957
iteration 20 - triangles 220964 threshold 0.00643634
iteration 20 - triangles 422850 threshold 0.00643634
iteration 25 - triangles 143121 threshold 0.0172104
iteration 30 - triangles 100102 threshold 0.0391354
iteration 35 - triangles 74181 threshold 0.0792352
iteration 25 - triangles 272182 threshold 0.0172104
iteration 40 - triangles 57464 threshold 0.147008
iteration 45 - triangles 46169 threshold 0.254804
iteration 30 - triangles 187768 threshold 0.0391354
iteration 50 - triangles 38237 threshold 0.418195
Writing to binary file… done!
Processing block (3,3)
iteration 35 - triangles 136972 threshold 0.0792352
Sampled 3228060 faces, target is 37500
Simplifying…
iteration 40 - triangles 104012 threshold 0.147008
iteration 45 - triangles 81812 threshold 0.254804
iteration 50 - triangles 66238 threshold 0.418195
iteration 55 - triangles 54818 threshold 0.656357
iteration 60 - triangles 46324 threshold 0.992437
iteration 65 - triangles 39602 threshold 1.45393
Writing to binary file… done!
Processing block (2,2)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 3228060 threshold 2.43e-07
iteration 5 - triangles 2369370 threshold 3.2768e-05
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 10 - triangles 1236704 threshold 0.000371293
iteration 15 - triangles 753476 threshold 0.00188957
iteration 20 - triangles 504734 threshold 0.00643634
iteration 5 - triangles 532497 threshold 3.2768e-05
iteration 25 - triangles 353858 threshold 0.0172104
iteration 30 - triangles 260326 threshold 0.0391354
iteration 10 - triangles 128990 threshold 0.000371293
iteration 35 - triangles 198458 threshold 0.0792352
iteration 15 - triangles 58595 threshold 0.00188957
iteration 40 - triangles 156426 threshold 0.147008
iteration 20 - triangles 38534 threshold 0.00643634
iteration 5 - triangles 2778176 threshold 3.2768e-05
Writing to binary file… done!
iteration 45 - triangles 126094 threshold 0.254804
iteration 50 - triangles 103608 threshold 0.418195
iteration 55 - triangles 86516 threshold 0.656357
iteration 60 - triangles 73292 threshold 0.992437
iteration 65 - triangles 62760 threshold 1.45393
iteration 70 - triangles 54396 threshold 2.07307
iteration 75 - triangles 47796 threshold 2.88717
iteration 80 - triangles 42374 threshold 3.93904
iteration 85 - triangles 37934 threshold 5.27732
Writing to binary file… doSegmentation fault
[WARNING] dem2mesh failed, retrying with lower concurrency (1) in case this is a memory issue
[INFO] running “/code/SuperBuild/install/bin/dem2mesh” -inputFile “/var/www/data/1556e631-c1f7-4e81-82c7-6053144efc3c/odm_meshing/tmp/mesh_dsm.tif” -outputFile “/var/www/data/1556e631-c1f7-4e81-82c7-6053144efc3c/odm_meshing/odm_25dmesh.dirty.ply” -maxTileLength 2000 -maxVertexCount 200000 -maxConcurrency 1 -edgeSwapThreshold 0.15 -verbose
Running with parameters:
-inputFile /var/www/data/1556e631-c1f7-4e81-82c7-6053144efc3c/odm_meshing/tmp/mesh_dsm.tif
-outputFile /var/www/data/1556e631-c1f7-4e81-82c7-6053144efc3c/odm_meshing/odm_25dmesh.dirty.ply
-maxVertexCount 200000
-maxTileLength 2000
-maxConcurrency 1
-edgeSwapThreshold 0.150000
-verbose
Raster Size is 6124x6849
Extent is (-128.167938, 116.792062), (-128.331826, 145.628174)
NoData value: -9999
Description:
Reading raster…
Total vertices before simplification: 41943276
Blocks depth: 2
Splitting area in 16
Block size is 1531, 1712
Concurrency set to 1
Allocating 1 raster data blocks of 6128 bytes
Processing block (0,0)
Sampled 4629217 faces, target is 37500
Simplifying…
iteration 0 - triangles 4629217 threshold 2.43e-07
iteration 5 - triangles 1155314 threshold 3.2768e-05
iteration 10 - triangles 474551 threshold 0.000371293
iteration 15 - triangles 276447 threshold 0.00188957
iteration 20 - triangles 188795 threshold 0.00643634
iteration 25 - triangles 136673 threshold 0.0172104
iteration 30 - triangles 102226 threshold 0.0391354
iteration 35 - triangles 80025 threshold 0.0792352
iteration 40 - triangles 64579 threshold 0.147008
iteration 45 - triangles 53623 threshold 0.254804
iteration 50 - triangles 45437 threshold 0.418195
iteration 55 - triangles 39130 threshold 0.656357
Writing to binary file… done!
Processing block (0,1)
Sampled 5238720 faces, target is 37500
Simplifying…
iteration 0 - triangles 5238720 threshold 2.43e-07
iteration 5 - triangles 2377758 threshold 3.2768e-05
iteration 10 - triangles 1237772 threshold 0.000371293
iteration 15 - triangles 696674 threshold 0.00188957
iteration 20 - triangles 429070 threshold 0.00643634
iteration 25 - triangles 285400 threshold 0.0172104
iteration 30 - triangles 201800 threshold 0.0391354
iteration 35 - triangles 150116 threshold 0.0792352
iteration 40 - triangles 115786 threshold 0.147008
iteration 45 - triangles 92384 threshold 0.254804
iteration 50 - triangles 75520 threshold 0.418195
iteration 55 - triangles 62962 threshold 0.656357
iteration 60 - triangles 53638 threshold 0.992437
iteration 65 - triangles 46336 threshold 1.45393
iteration 70 - triangles 40420 threshold 2.07307
Writing to binary file… done!
Processing block (0,2)
Sampled 4981914 faces, target is 37500
Simplifying…
iteration 0 - triangles 4981914 threshold 2.43e-07
iteration 5 - triangles 1151907 threshold 3.2768e-05
iteration 10 - triangles 419859 threshold 0.000371293
iteration 15 - triangles 218370 threshold 0.00188957
iteration 20 - triangles 134221 threshold 0.00643634
iteration 25 - triangles 91078 threshold 0.0172104
iteration 30 - triangles 66251 threshold 0.0391354
iteration 35 - triangles 50773 threshold 0.0792352
iteration 40 - triangles 40519 threshold 0.147008
Writing to binary file… done!
Processing block (0,3)
Sampled 4895923 faces, target is 37500
Simplifying…
iteration 0 - triangles 4895923 threshold 2.43e-07
iteration 5 - triangles 941134 threshold 3.2768e-05
iteration 10 - triangles 260238 threshold 0.000371293
iteration 15 - triangles 120302 threshold 0.00188957
iteration 20 - triangles 73347 threshold 0.00643634
iteration 25 - triangles 50274 threshold 0.0172104
Writing to binary file… done!
Processing block (1,0)
Sampled 5239082 faces, target is 37500
Simplifying…
iteration 0 - triangles 5239082 threshold 2.43e-07
iteration 5 - triangles 2369370 threshold 3.2768e-05
iteration 10 - triangles 1236704 threshold 0.000371293
iteration 15 - triangles 753476 threshold 0.00188957
iteration 20 - triangles 504734 threshold 0.00643634
iteration 25 - triangles 353858 threshold 0.0172104
iteration 30 - triangles 260326 threshold 0.0391354
iteration 35 - triangles 198458 threshold 0.0792352
iteration 40 - triangles 156426 threshold 0.147008
iteration 45 - triangles 126094 threshold 0.254804
iteration 50 - triangles 103608 threshold 0.418195
iteration 55 - triangles 86516 threshold 0.656357
iteration 60 - triangles 73292 threshold 0.992437
iteration 65 - triangles 62760 threshold 1.45393
iteration 70 - triangles 54396 threshold 2.07307
iteration 75 - triangles 47796 threshold 2.88717
iteration 80 - triangles 42374 threshold 3.93904
iteration 85 - triangles 37934 threshold 5.27732
Writing to binary file… done!
Processing block (1,1)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2572706 threshold 3.2768e-05
iteration 10 - triangles 1155562 threshold 0.000371293
iteration 15 - triangles 616802 threshold 0.00188957
iteration 20 - triangles 374398 threshold 0.00643634
iteration 25 - triangles 248692 threshold 0.0172104
iteration 30 - triangles 176916 threshold 0.0391354
iteration 35 - triangles 132428 threshold 0.0792352
iteration 40 - triangles 103322 threshold 0.147008
iteration 45 - triangles 83032 threshold 0.254804
iteration 50 - triangles 68332 threshold 0.418195
iteration 55 - triangles 57450 threshold 0.656357
iteration 60 - triangles 48864 threshold 0.992437
iteration 65 - triangles 42294 threshold 1.45393
Writing to binary file… done!
Processing block (1,2)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2674886 threshold 3.2768e-05
iteration 10 - triangles 1240060 threshold 0.000371293
iteration 15 - triangles 669564 threshold 0.00188957
iteration 20 - triangles 408868 threshold 0.00643634
iteration 25 - triangles 272930 threshold 0.0172104
iteration 30 - triangles 195292 threshold 0.0391354
iteration 35 - triangles 147566 threshold 0.0792352
iteration 40 - triangles 115900 threshold 0.147008
iteration 45 - triangles 93628 threshold 0.254804
iteration 50 - triangles 77560 threshold 0.418195
iteration 55 - triangles 65020 threshold 0.656357
iteration 60 - triangles 55466 threshold 0.992437
iteration 65 - triangles 48234 threshold 1.45393
iteration 70 - triangles 42544 threshold 2.07307
iteration 75 - triangles 37758 threshold 2.88717
Writing to binary file… done!
Processing block (1,3)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2580612 threshold 3.2768e-05
iteration 10 - triangles 1253412 threshold 0.000371293
iteration 15 - triangles 714308 threshold 0.00188957
iteration 20 - triangles 473136 threshold 0.00643634
iteration 25 - triangles 337706 threshold 0.0172104
iteration 30 - triangles 249482 threshold 0.0391354
iteration 35 - triangles 193176 threshold 0.0792352
iteration 40 - triangles 154746 threshold 0.147008
iteration 45 - triangles 127114 threshold 0.254804
iteration 50 - triangles 106632 threshold 0.418195
iteration 55 - triangles 90836 threshold 0.656357
iteration 60 - triangles 77296 threshold 0.992437
iteration 65 - triangles 67234 threshold 1.45393
iteration 70 - triangles 58968 threshold 2.07307
iteration 75 - triangles 52122 threshold 2.88717
iteration 80 - triangles 46400 threshold 3.93904
iteration 85 - triangles 41676 threshold 5.27732
iteration 90 - triangles 37758 threshold 6.95688
Writing to binary file… done!
Processing block (2,0)
Sampled 5239082 faces, target is 37500
Simplifying…
iteration 0 - triangles 5239082 threshold 2.43e-07
iteration 5 - triangles 2939808 threshold 3.2768e-05
iteration 10 - triangles 1712882 threshold 0.000371293
iteration 15 - triangles 1012616 threshold 0.00188957
iteration 20 - triangles 648370 threshold 0.00643634
iteration 25 - triangles 443090 threshold 0.0172104
iteration 30 - triangles 319356 threshold 0.0391354
iteration 35 - triangles 239764 threshold 0.0792352
iteration 40 - triangles 186366 threshold 0.147008
iteration 45 - triangles 148742 threshold 0.254804
iteration 50 - triangles 121266 threshold 0.418195
iteration 55 - triangles 100330 threshold 0.656357
iteration 60 - triangles 84310 threshold 0.992437
iteration 65 - triangles 72012 threshold 1.45393
iteration 70 - triangles 62298 threshold 2.07307
iteration 75 - triangles 54476 threshold 2.88717
iteration 80 - triangles 48044 threshold 3.93904
iteration 85 - triangles 42974 threshold 5.27732
iteration 90 - triangles 38590 threshold 6.95688
Writing to binary file… done!
Processing block (2,1)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 3229556 threshold 3.2768e-05
iteration 10 - triangles 1418982 threshold 0.000371293
iteration 15 - triangles 721090 threshold 0.00188957
iteration 20 - triangles 422850 threshold 0.00643634
iteration 25 - triangles 272182 threshold 0.0172104
iteration 30 - triangles 187768 threshold 0.0391354
iteration 35 - triangles 136972 threshold 0.0792352
iteration 40 - triangles 104012 threshold 0.147008
iteration 45 - triangles 81812 threshold 0.254804
iteration 50 - triangles 66238 threshold 0.418195
iteration 55 - triangles 54818 threshold 0.656357
iteration 60 - triangles 46324 threshold 0.992437
iteration 65 - triangles 39602 threshold 1.45393
Writing to binary file… done!
Processing block (2,2)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2778176 threshold 3.2768e-05
iteration 10 - triangles 1251292 threshold 0.000371293
iteration 15 - triangles 658780 threshold 0.00188957
iteration 20 - triangles 396470 threshold 0.00643634
iteration 25 - triangles 263588 threshold 0.0172104
iteration 30 - triangles 188520 threshold 0.0391354
iteration 35 - triangles 142668 threshold 0.0792352
iteration 40 - triangles 112908 threshold 0.147008
iteration 45 - triangles 92156 threshold 0.254804
iteration 50 - triangles 76668 threshold 0.418195
iteration 55 - triangles 64780 threshold 0.656357
iteration 60 - triangles 55352 threshold 0.992437
iteration 65 - triangles 48306 threshold 1.45393
iteration 70 - triangles 42708 threshold 2.07307
iteration 75 - triangles 37918 threshold 2.88717
Writing to binary file… done!
Processing block (2,3)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2459792 threshold 3.2768e-05
iteration 10 - triangles 1180160 threshold 0.000371293
iteration 15 - triangles 661868 threshold 0.00188957
iteration 20 - triangles 423298 threshold 0.00643634
iteration 25 - triangles 296270 threshold 0.0172104
iteration 30 - triangles 219328 threshold 0.0391354
iteration 35 - triangles 170574 threshold 0.0792352
iteration 40 - triangles 137218 threshold 0.147008
iteration 45 - triangles 113346 threshold 0.254804
iteration 50 - triangles 95556 threshold 0.418195
iteration 55 - triangles 81580 threshold 0.656357
iteration 60 - triangles 69854 threshold 0.992437
iteration 65 - triangles 61340 threshold 1.45393
iteration 70 - triangles 54256 threshold 2.07307
iteration 75 - triangles 48370 threshold 2.88717
iteration 80 - triangles 43462 threshold 3.93904
iteration 85 - triangles 39344 threshold 5.27732
Writing to binary file… done!
Processing block (3,0)
Sampled 5181124 faces, target is 37500
Simplifying…
iteration 0 - triangles 5181124 threshold 2.43e-07
iteration 5 - triangles 1538547 threshold 3.2768e-05
iteration 10 - triangles 695569 threshold 0.000371293
iteration 15 - triangles 407287 threshold 0.00188957
iteration 20 - triangles 272702 threshold 0.00643634
iteration 25 - triangles 196218 threshold 0.0172104
iteration 30 - triangles 147182 threshold 0.0391354
iteration 35 - triangles 114827 threshold 0.0792352
iteration 40 - triangles 92646 threshold 0.147008
iteration 45 - triangles 76546 threshold 0.254804
iteration 50 - triangles 65022 threshold 0.418195
iteration 55 - triangles 55972 threshold 0.656357
iteration 60 - triangles 49040 threshold 0.992437
iteration 65 - triangles 43418 threshold 1.45393
iteration 70 - triangles 38709 threshold 2.07307
Writing to binary file… done!
Processing block (3,1)
Sampled 5242144 faces, target is 37500
Simplifying…
iteration 0 - triangles 5242144 threshold 2.43e-07
iteration 5 - triangles 2791284 threshold 3.2768e-05
iteration 10 - triangles 1395576 threshold 0.000371293
iteration 15 - triangles 773846 threshold 0.00188957
iteration 20 - triangles 489302 threshold 0.00643634
iteration 25 - triangles 336880 threshold 0.0172104
iteration 30 - triangles 242520 threshold 0.0391354Segmentation fault

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 139
Traceback (most recent call last):
File “/code/stages/odm_app.py”, line 81, in execute
self.first_stage.run()
File “/code/opendm/types.py”, line 398, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 398, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 398, in run
self.next_stage.run(outputs)
[Previous line repeated 3 more times]
File “/code/opendm/types.py”, line 377, in run
self.process(self.args, outputs)
File “/code/stages/odm_meshing.py”, line 54, in process
mesh.create_25dmesh(tree.filtered_point_cloud, tree.odm_25dmesh,
File “/code/opendm/mesh.py”, line 38, in create_25dmesh
mesh = dem_to_mesh_gridded(os.path.join(tmp_directory, ‘mesh_dsm.tif’), outMesh, maxVertexCount, maxConcurrency=max(1, available_cores))
File “/code/opendm/mesh.py”, line 111, in dem_to_mesh_gridded
raise e
File “/code/opendm/mesh.py”, line 98, in dem_to_mesh_gridded
system.run('“{bin}” -inputFile “{infile}” ’
File “/code/opendm/system.py”, line 110, in run
raise SubprocessException(“Child returned {}”.format(retcode), retcode)
opendm.system.SubprocessException: Child returned 139

===== 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 Flying Tips — OpenDroneMap 3.0.5 documentation
100 - done.

1 Like

Hi,

Could you share your gcp file ?

In the mean time if you have not, have a look here
https://docs.opendronemap.org/gcp/

2 Likes

Good morning

I looked at least 50 times the documentation, but when it doesn’t want, it doesn’t want…

I can see that you have to create a file, but I block like many people when I’m sure there’s not much missing…

attached the file which is obviously erroneous. when I have the solution I will make a video tutorial of each step to help beginners of GCPs like me…

Hi Laurent

I have a video showing how to use GCPs. It’s in Portuguese but I think you can turn on captions. OpenDroneMap - 2) Trabalhando com GCPs (pontos de controle) - YouTube

Obrigado Guano,

I did some portugues at university…Thank you, I’ll look and if I don’t understand (because there’s a subtlety I missed) I’ll post again. it’s the file creation that bothers me…

Laurent

Good morning,

it’s progressing slowly, I just made a crazy discovery, how to find our first line that we have in the “ground control point” documentation? I downloaded the allzip* (* the resources) and in the odm_georefencing file there is a pro.txt file.

This is the beginning of our project to then put the GPS points in the right format

The beginnings of a long way to go yet. Thanks to the videos and the subtitles, I hope to get there. thank you for your answers and help.

Laurent

1 Like

Hi, there are various thing that are erroneous in your capture.
I will try to resume how to make a gcp file. Do not hesitate to ask questions if something is not clear.

First line

Projection/Coordinate system

First of all, the first line. It is the projection used for the geo coordinates.
It can be either a proj string as in your capture or a short code that represent a proj string by convention and is called an EPSG. For exemple here the proj string associated with the EPSG 2154 :
+proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs

It means that the first line of the file can be the proj string above or EPSG:2154.

How to find it

Now how to know which string or EPSG code to put ?

Complexe generic case vague answer

The answer can be easy or hard to know. It is almost purely a convention. If you work for two organisations on the same site you could use two different ones. Usually it is define by the client depending on the convention he use internally for various purpose but the reality is the following:

If you are the one placing the GCP, getting their coordinates and flying the drone you don’t care about the site convention.

When you use your device to get the GCP coordinates there is a parameter somewhere in the interface the correspond to the EPSG code or the Name of the projection system (yes to add some complexity most of the EPSG have a name associated for the 2154 it is RGF93 v1 / Lambert-93 -- France).
Bottom line:

You must find this information somewhere on the device that record the GCP positions or ask the guy who did it.

Following lines, GCP data

Each line must correspond to one occurence of a GCP on a picture. It contains the following informations:

  • Position of the GCP in the real life, the one recorded on site in the projection system we just talk earlier (often in meters or feet): real_geo_x real_geo_y real_geo_z
  • The coordinate of GCP inside the picture we are looking at (in pixels): im_x im_y.
    This coordinate must correspong to what part of the gcp you record. If you took the center of the real GCP you must take the coordinates of the center of the GCP on the picture, if you took a particular corner the same corner, etc.
  • The name of the picture file: image_name

Then you can add extra field that are not required, in particular:

  • The name of the GCP, can be anything that help you to know which GCP we are talking about: gcp_name. Truth is, ODM don’t care for reconstruction, will be use only in the report.

Exemple

Let’s keep with EPSG 2154:

First line

EPSG:2154

Real life coordinate GCP

In real life I went to the field and record the following coordinates (in EPSG 2154 system) for the center of 4 GCPs:

  • First GCP
real_geo_x = 1035959.852 
real_geo_y =6323575.439
real_geo_z =401.112
  • Second GCP
real_geo_x = 1035990.097
real_geo_y = 6323610.766
real_geo_z = 403.884
  • Third GCP
real_geo_x = 1035938.724
real_geo_y = 6323561.475
real_geo_z = 400.863 
  • Fourth GCP
real_geo_x = 1035911.022
real_geo_y = 6323572.121
real_geo_z = 402.061

Looking at the picture

Now I have to determine, for a numer of pictures that is sufficient, some instances of the GCPs.
For instance I have the last GCP that is in picture 100000970284.JPG and it’s center is at the pixel coordinates 3576 1660 inside the picture. So I will have a line corresponding to this informations:
1035911.022 6323572.121 402.061 3576 1660 100000970284.JPG

Complete sample file

Sample file
EPSG:2154
1035911.022 6323572.121 402.061 3576 1660 100000970284.JPG 5
1035911.022 6323572.121 402.061 3576 2248 100000970285.JPG 5
1035911.022 6323572.121 402.061 1954 1724 100000980296.JPG 5
1035911.022 6323572.121 402.061 1911 2836 100000980298.JPG 5
1035938.724 6323561.475 400.863 2312 946 100000990299.JPG 4
1035911.022 6323572.121 402.061 1410 2244 100000990299.JPG 5
1035938.724 6323561.475 400.863 3407 2444 100000990300.JPG 4
1035911.022 6323572.121 402.061 1988 1680 100000990300.JPG 5
1035938.724 6323561.475 400.863 3406 3123 100000990301.JPG 4
1035911.022 6323572.121 402.061 2000 2241 100000990301.JPG 5
1035911.022 6323572.121 402.061 1990 2836 100000990302.JPG 5
1035911.022 6323572.121 402.061 3446 787 100001000310.JPG 5
1035911.022 6323572.121 402.061 3452 1325 100001000311.JPG 5
1035938.724 6323561.475 400.863 2089 1080 100001000312.JPG 4
1035911.022 6323572.121 402.061 3460 1886 100001000312.JPG 5
1035959.852 6323575.439 401.112 858 1582 100001000312.JPG 0
1035911.022 6323572.121 402.061 3475 2466 100001000313.JPG 5
1035959.852 6323575.439 401.112 825 2137 100001000313.JPG 0
1035938.724 6323561.475 400.863 2077 1617 100001000313.JPG 4
1035938.724 6323561.475 400.863 2285 2397 100001010314.JPG 4
1035959.852 6323575.439 401.112 1806 1153 100001010314.JPG 0
1035959.852 6323575.439 401.112 3116 1952 100001010315.JPG 0
1035938.724 6323561.475 400.863 1900 2556 100001010315.JPG 4
1035911.022 6323572.121 402.061 508 1782 100001010315.JPG 5
1035938.724 6323561.475 400.863 1852 3128 100001010316.JPG 4
1035959.852 6323575.439 401.112 3142 2588 100001010316.JPG 0
1035959.852 6323575.439 401.112 3155 3174 100001010317.JPG 0
1035911.022 6323572.121 402.061 445 2820 100001010317.JPG 5
1035938.724 6323561.475 400.863 3496 136 100001020324.JPG 4
1035959.852 6323575.439 401.112 2300 1160 100001020325.JPG 0
1035990.097 6323610.766 403.884 233 2742 100001020325.JPG 1
1035959.852 6323575.439 401.112 2288 1690 100001020326.JPG 0
1035938.724 6323561.475 400.863 3510 1169 100001020326.JPG 4
1035990.097 6323610.766 403.884 188 3342 100001020326.JPG 1
1035959.852 6323575.439 401.112 2276 2255 100001020327.JPG 0
1035938.724 6323561.475 400.863 3521 1721 100001020327.JPG 4
1035959.852 6323575.439 401.112 1753 2585 100001030328.JPG 0
1035990.097 6323610.766 403.884 243 576 100001030328.JPG 1
1035959.852 6323575.439 401.112 1682 2035 100001030329.JPG 0
1035938.724 6323561.475 400.863 452 2625 100001030329.JPG 4
1035990.097 6323610.766 403.884 3522 368 100001030329.JPG 1
1035959.852 6323575.439 401.112 1659 2566 100001030330.JPG 0
1035990.097 6323610.766 403.884 3673 990 100001030330.JPG 1
1035938.724 6323561.475 400.863 368 3075 100001030330.JPG 4
1035959.852 6323575.439 401.112 1644 3161 100001030331.JPG 0

Hope it helps

1 Like

Hello Bernade,

Yes, it seems clear and precise, I take the liberty of attaching a modified text file.

does it seem usable to you?

I admit that with the guano tutorials and your explanation, I see the “light”

I will not hesitate if I have other doubts

Many thanks
gcp_list.pdf (15.9 KB)

Hello again,

Here are my 4 GCPs on the ground.

I now have to put a dozen photos in the gcp interface of webodm and found the similarities with my text file (if it is good) by dragging it?

thank you for everything

Laurent

Okay, I think there is a misunderstanding here.
I never use WebODM interface and because of the ODM tag I assume you were using directly ODM and as such providing the gcp.txt file that contains all gcp coordinates along with there correspondances in the pictures.
But now I understand that you want to use the graphical tool inside WebODM that correspond to GCP Editor Pro to tag the images to generate the list.

Can you confirm that ?

Yes Bernade,

I use the webodm interface in the dashboard. it is a problem ?

Thank you for your time

Laurent

Absolutely not, we are juste not talking about the same gcp file and thus my explanations are mostly useless in this case ^^'.

wow, sorry for the wasted time for me.

But I think it will help other people your explanations :slight_smile:

I will watch the videos again on the Net and do and redo tests until I get there.

by dint of searching on the Net, I saw that in FRANCE, there is a network where checkpoints are no longer a concern. I have to make a video soon to highlight this forum and webodm, I will talk about it in it

a little preview :

I stumbled upon it by chance :-

I want to find a solution with webodm dashboard anyway ! :crossed_fingers:

Laurent

Of course it is a way to get rid of it ^^. But you need a drone compatible with RTK protocol in order to use it.

I’m lucky to have the phantom 4 RTK … it’s “old generation (like me :joy:)” but so effective

Yeah, we used to use it, RTK is so nice. Still helps sometimes but now we have an anaphi without RTK…
Send me a direct message if you still need help

That’s why I love this forum, there are great people

Thanks a lot

Laurent

Uploading: gcp_list.pdf…

I’m sorry, but with my control points, I don’t see my 5 points visually on the map.

Definitely a mistake on my part…

Laurent

+proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +type=crs

408,073.57 4,843,208.66 245.36.jpg1
408,116.11 4,843,217.18 241.75.jpg2
408,080.33 4,843,107.97 247.58.jpg3
408,128.36 4,843,094.62 249.90.jpg4
408,149.18 4,843,164.64 241.30.jpg5

Hi all

Just to add to this great example from bernarde, to get the EPSG code, you can go to https://spatialreference.org/
In there you can search for keywords associated to the projection you are using (like “Lambert-93”) and it will give you the EPSG code and all other information.

2 Likes