Parse error, v. 2.6.4 - only with GCP file

Hi,

I’m having trouble finishing a processing job of approx. 300 images, cross-grid flight. This only happens when adding a GCP file to the processing, without it the job finishes as usual. Using the latest ODM V2.6.4, native Windows installation.

I have installed ODM at drive D:\ODM
Job is stored at drive C:\drohne, but I have tried processing it at Drive D:\drohne aswell, same result

Here are the last lines from the console:

[INFO] running pdal translate -i “c:\drohne\odm_filterpoints\point_cloud.ply” -o “c:\drohne\odm_georeferencing\odm_georeferenced_model.laz” ferry transformation --filters.ferry.dimensions=“views => UserData” --writers.las.compression=“lazip” --filters.transformation.matrix=“1 0 0 313103.0 0 1 0 5227557.0 0 0 1 0 0 0 0 1” --writers.las.offset_x=313103.0 --writers.las.offset_y=5227557.0 --writers.las.offset_z=0 --writers.las.a_srs="+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs +type=crs" --writers.las.vlrs="{“filename”: “c:\drohne\odm_georeferencing\ground_control_points.gml”, “user_id”: “ODM_GCP”, “description”: “Ground Control Points (GML)”}"
PDAL: [json.exception.parse_error.101] parse error at line 1, column 18: syntax error while parsing value - invalid string: forbidden character after backslash; last read: ‘"c:\d’

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 1
Traceback (most recent call last):
File “D:\ODM\stages\odm_app.py”, line 94, in execute
self.first_stage.run()
File “D:\ODM\opendm\types.py”, line 341, in run
self.next_stage.run(outputs)
File “D:\ODM\opendm\types.py”, line 341, in run
self.next_stage.run(outputs)
File “D:\ODM\opendm\types.py”, line 341, in run
self.next_stage.run(outputs)
[Previous line repeated 5 more times]
File “D:\ODM\opendm\types.py”, line 322, in run
self.process(self.args, outputs)
File “D:\ODM\stages\odm_georeferencing.py”, line 131, in process
system.run(cmd + ’ ’ + ’ '.join(stages) + ’ ’ + ’ '.join(params))
File “D:\ODM\opendm\system.py”, line 106, 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.html

For reference, here is the GCP file, added to the job as gcp_list.txt:

+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs
313119.79 5227433.13 1504.549 611.38 1158.73 DJI_0048.JPG
313119.79 5227433.13 1504.549 652.95 440.12 DJI_0047.JPG
313105.82 5227698.35 1492.628 592.45 1753.93 DJI_0041.JPG
313105.82 5227698.35 1492.628 685.37 394.61 DJI_0039.JPG
313105.82 5227698.35 1492.628 640.00 1062.79 DJI_0040.JPG
313105.82 5227698.35 1492.628 501.56 3190.57 DJI_0043.JPG
313105.82 5227698.35 1492.628 548.79 2451.81 DJI_0042.JPG
313106.55 5227626.97 1498.58 718.76 285.39 DJI_0041.JPG
313106.55 5227626.97 1498.58 629.77 1681.58 DJI_0043.JPG
313106.55 5227626.97 1498.58 676.12 966.26 DJI_0042.JPG
313095.66 5227450.34 1502.591 1058.51 2322.30 DJI_0049.JPG
313095.66 5227450.34 1502.591 1024.05 3075.11 DJI_0050.JPG
313095.66 5227450.34 1502.591 1093.91 1577.43 DJI_0048.JPG
313095.66 5227450.34 1502.591 1130.02 854.35 DJI_0047.JPG
313095.66 5227450.34 1502.591 1168.13 157.94 DJI_0046.JPG
313094.18 5227512.37 1498.375 997.70 2920.03 DJI_0048.JPG
313094.18 5227512.37 1498.375 1033.60 2174.47 DJI_0047.JPG
313094.18 5227512.37 1498.375 1072.60 1456.27 DJI_0046.JPG

Any guesses what might solve the issue?

kind regards
David

1 Like

It’s a bug; thanks for reporting it! :pray:

Fix coming shortly…

2 Likes

Should be fixed! Please update and try again?

2 Likes

Wow, thanks for your quick action Piero.
Unfortunately, the minor update didn’t solve the issue.

I downloaded the newest ODM_Setup_2.6.4.exe from the release site… Release 2.6.4 · OpenDroneMap/ODM · GitHub

… did a clean install (uninstall prior ODM installation, install newly downloaded EXE) and ran the job again. Here is the console output:

2021-09-29 09:18:26,216 DEBUG: Set field error_z: -0.7529081090760883
2021-09-29 09:18:26,216 DEBUG: Comitting transaction (final)
2021-09-29 09:18:26,217 DEBUG: Exiting env context: <fiona.env.Env object at 0x000001EA39113820>
2021-09-29 09:18:26,217 DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x000001EA391132B0> options
2021-09-29 09:18:26,217 DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x000001EA391132B0>.
2021-09-29 09:18:26,217 DEBUG: Error handler popped.
2021-09-29 09:18:26,217 DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x000001EA391132B0>.
2021-09-29 09:18:26,217 DEBUG: Exiting outermost env
2021-09-29 09:18:26,217 DEBUG: Exited env context: <fiona.env.Env object at 0x000001EA39113820>
2021-09-29 09:18:26,223 DEBUG: Flushed data source cache
2021-09-29 09:18:26,223 DEBUG: Flushed buffer
2021-09-29 09:18:26,224 DEBUG: Stopped session
[INFO] running ogr2ogr -of GML “d:\WORK_LOKAL\16531\drohne\odm_georeferencing\ground_control_points.gml” “d:\WORK_LOKAL\16531\drohne\odm_georeferencing\ground_control_points.gpkg”
[INFO] Georeferencing point cloud
[INFO] Embedding GCP info in point cloud
[INFO] running pdal translate -i “d:\WORK_LOKAL\16531\drohne\odm_filterpoints\point_cloud.ply” -o “d:\WORK_LOKAL\16531\drohne\odm_georeferencing\odm_georeferenced_model.laz” ferry transformation --filters.ferry.dimensions=“views => UserData” --writers.las.compression=“lazip” --filters.transformation.matrix=“1 0 0 313103.0 0 1 0 5227557.0 0 0 1 0 0 0 0 1” --writers.las.offset_x=313103.0 --writers.las.offset_y=5227557.0 --writers.las.offset_z=0 --writers.las.a_srs="+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs +type=crs" --writers.las.vlrs="{“filename”: “d:\WORK_LOKAL\16531\drohne\odm_georeferencing\ground_control_points.gml”, “user_id”: “ODM_GCP”, “description”: “Ground Control Points (GML)”}"
PDAL: [json.exception.parse_error.101] parse error at line 1, column 18: syntax error while parsing value - invalid string: forbidden character after backslash; last read: ‘"d:\W’

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 1
Traceback (most recent call last):
File “D:\ODM\stages\odm_app.py”, line 94, in execute
self.first_stage.run()
File “D:\ODM\opendm\types.py”, line 341, in run
self.next_stage.run(outputs)
File “D:\ODM\opendm\types.py”, line 341, in run
self.next_stage.run(outputs)
File “D:\ODM\opendm\types.py”, line 341, in run
self.next_stage.run(outputs)
[Previous line repeated 5 more times]
File “D:\ODM\opendm\types.py”, line 322, in run
self.process(self.args, outputs)
File “D:\ODM\stages\odm_georeferencing.py”, line 131, in process
system.run(cmd + ’ ’ + ’ '.join(stages) + ’ ’ + ’ '.join(params))
File “D:\ODM\opendm\system.py”, line 106, 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.html

1 Like

Update:
I uninstalled v2.6.4, downloaded v2.5.7 → was able to finish the job successfully with 2.5.7 from the state where 2.6.4 had aborted :slightly_smiling_face:

1 Like

Ooh, thanks for helping us track down/confirm the regression came after 2.5.7!

Of course, nothing to thank for. It’s rather me having to thank you for your effort with the program :slightly_smiling_face:

1 Like

Ups, I don’t think the 2.6.4 setup.exe rebuilt. Try now, it should work.

2 Likes

It did! Thank’s again, great work :smiley:

3 Likes