Odm 0.9.8 on docker - processing issue, no attribute 'band_name'

Hi community

I just pulled a new ODM docker image:

docker run -ti opendronemap/odm --version
OpenDroneMap 0.9.8

…and got myself a new error:

Traceback (most recent call last):
  File "/code/run.py", line 57, in <module>
  File "/code/stages/odm_app.py", line 92, in execute
  File "/code/opendm/types.py", line 445, in run
    self.process(self.args, outputs)
  File "/code/stages/dataset.py", line 104, in process
    reconstruction = types.ODM_Reconstruction(photos)
  File "/code/opendm/types.py", line 151, in __init__
    self.multi_camera = self.detect_multi_camera()
  File "/code/opendm/types.py", line 162, in detect_multi_camera
    if not p.band_name in band_photos:
AttributeError: ODM_Photo instance has no attribute 'band_name'

…which occurs for ODM called with no extra parameters, or any parameters I care to give it.

Is there a new thing we need to do to tell ODM about image bands? Input images are standard JPEG (non thermal), 3 bands, lots of successful ODM processing until just now.

Also - some docker information:

docker pull opendronemap/odm
Using default tag: latest
latest: Pulling from opendronemap/odm
Digest: sha256:0163ffeea2f451a39fb5fd04cd6aed00d048fecb948cfcb6cc71c2bc81dc1ec1
Status: Image is up to date for opendronemap/odm:latest


This is an old dataset isn’t it?

Pass --rerun-from dataset. It’s probably loading the old image dump (images.json) which does not include band name.

(Perhaps this should be fixed, interested in making a PR? https://github.com/OpenDroneMap/ODM/blob/master/stages/dataset.py#L99 is probably at fault here, because it doesn’t check for the new format which includes a “band_name” property)

1 Like

aaargh yes it is! completely my mistake there…

I’m not sure what to suggest here in terms of a ‘fix’ - should it check for the new format and automagically set --rerun-from dataset if the existing image dump is in the old format?


It could reload the image database, or simply warn the user and exit.