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 ) OSRCoordinateTransformationShadow::TransformPoint(double ) OSRCoordinateTransformationShadow::TransformPoint(double ,double,double,double) OSRCoordinateTransformationShadow::TransformPoint(double ,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.