Failing GCP jobs

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.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.