ODM pushbroom handling, e.g. ADS 80 Aerial Imagery

Hi All,

I was wondering if anyone knew if ODM could handle processing ortho’s from pushbroom aerial imagery, i.e. like image frames from something like a Leica ADS80?

I did notice some conversation around satellite, and how it would be unlikely, but what about from an aerial platform… assuming frames were extracted with sufficient overlap?

Any pointers are greatly appreciated.



I’m not immediately aware of anyone doing so, but it might be possible given sufficient overlap and sidelap between the images that are collected. That’s really all that’s required for photogrammetry, the actual method of collection is kind of secondary if those constraints are met sufficiently.

Have any data you care to try? Or if not, you’d like me (or others) to take a go at?

Pushbroom cameras are (currently) not supported by ODM. For the time being, I would recommend you check out Danesfield (GitHub - Kitware/Danesfield: Kitware's system for 3D building reconstruction for the IARPA CORE3D program and GitHub - Kitware/Danesfield-App: Web application for the Danesfield System) whose team has spent quite a bit of time working on this type of images.


@Saijin_Naib and @pierotofy, thank you both for your promt responses, I appreciate the info.
To give a little more context, I’m essentially assessing how/if ODM can process commercial aerial medium format imagery, and if it could fit into such a pipeline. So discounting pushbroom, and thanks @pierotofy for the recommendations re other libraries, would it be possible to process say 80 megapixel frames from other commercial Medium Format sensors?
I’ve run some preliminary tests and can get results through upto around 65 megapixels, but get issues above this. When I attempt 80 megapixel frames I get a failure when running ‘running /code/SuperBuild/install/bin/texrecon’ specifically:

    Generating texture atlases:
        Sorting texture patches... done.
    Traceback (most recent call last):
    File "/code/stages/mvstex.py", line 104, in process
    system.run('{bin} {nvm_file} {model} {out_dir} '
    File "/code/opendm/system.py", line 79, in run
    raise Exception("Child returned {}".format(retcode))
    Exception: Child returned 137

I’m running the latest docker and in Ec2 on a r5a.4xlarge instance (16vcpu, 128GB RAM) in Ubuntu and I’m passing all memory to the docker and unlimited swap. Any thoughts on if this is possible, or if there is a particular recipe I could try to get 80 megapixel frames through?.. or is this a little too ambitious?
Apologies for the follow up question, I wasn’t sure if I should put this in a separate post?
Thanks in advance.

1 Like

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