Hi,
I’ve been trying to process several multispectral datasets (Micasense Rededge-MX) along with GCPs but all jobs where gcp_list.txt
is supplied fail with the following error:
ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
ERROR 1: PROJ: proj_create: unrecognized format / unknown name
ERROR 6: Cannot find coordinate operations from `' to `'
Traceback (most recent call last):
File "/code/run.py", line 69, in <module>
app.execute()
File "/code/stages/odm_app.py", line 86, in execute
self.first_stage.run()
File "/code/opendm/types.py", line 342, in run
self.process(self.args, outputs)
File "/code/stages/dataset.py", line 157, in process
reconstruction.georeference_with_gcp(tree.odm_georeferencing_gcp,
File "/code/opendm/types.py", line 84, in georeference_with_gcp
coords_header = gcp.wgs84_utm_zone()
File "/code/opendm/gcp.py", line 62, in wgs84_utm_zone
lon, lat = location.transform2(self.srs, longlat, entry.x, entry.y)
File "/code/opendm/location.py", line 60, in transform2
return transformer(from_srs, to_srs).TransformPoint(x, y, 0)[:2]
File "/usr/lib/python3/dist-packages/osgeo/osr.py", line 898, in TransformPoint
return _osr.CoordinateTransformation_TransformPoint(self, *args)
TypeError: Wrong number or type of arguments for overloaded function 'CoordinateTransformation_TransformPoint'.
Possible C/C++ prototypes are:
OSRCoordinateTransformationShadow::TransformPoint(double [3])
OSRCoordinateTransformationShadow::TransformPoint(double [4])
OSRCoordinateTransformationShadow::TransformPoint(double [3],double,double,double)
OSRCoordinateTransformationShadow::TransformPoint(double [4],double,double,double,double)
The job fails at the Parsing SRS header:
step, regardless of whether GCP coords are in lonlat or transformed to UTM (in every case accompanied by correct headers). The job succeeds once gcp_list.txt
is removed, and the location of the orthos is correct (more or less).
I have tried the following (in various configurations):
- progressively decreasing the precision of lon, lat, z, x, & y
- changing the SRS header specifications
- removing column 7 (GCP ID)
- setting z to NaN
- parsing and reassembling gcp_list.txt to remove any non-printing characters.
- transforming gcp coordinates between lonlat and UTM.
gcp_list.txt
was generated with GCPEditorPro. I’m running ODM from a Singularity image.
This seems to be an issue with how ODM handles the gcp file – it looks like the args passed to /usr/lib/python3/dist-packages/osgeo/osr.py are messed up? Has anyone else encountered this? I’m hoping for a workaround.
Thanks.