I’ve wanted to have a roadmap to which steps in processing use which parameters. This would be useful if I wanted to change a parameter and reprocess. I would want to start as late in the processing chain as possible. For instance, if I change auto-boundary, do I need to start from Structure from Motion? So I worked through the modules in ODM/stages and searched for all instances of “args.” and built the attached chart. Doing this also helped me understand more about how ODM works.
In the attached chart, the left column shows all of the parameters that I found, both in the code and the WebODM options. Reading across are the processing steps. Find an option, then read to the right until you find a cell with an “*”. That is the first processing step that uses that option.
Column 2 (labeled “*”) flags the options for which there was no selection in WebODM.
Column 3 (labeled "mc) is the module count where this option was found. If 0, then it is an option shown in WebODM, but I did not find any module that used it. There are several of these that indicate I don’t know how it all works… E.g., feature_quality. We know that feature_quality makes a significant difference in the output, but I was unable to determine which module(s) used it.
This was quite a bit of work, and I probably made some mistakes. I’m also not (yet) a Python programmer, so there may be some subtleties that escaped me. So use this with caution.
I figured since I’d gone through this I might as well make it available. Maybe it will be interesting to someone else. I couldn’t upload the original Excel spreadsheet, so I converted it to a PDF. I didn’t intend it to be an eye test . If anyone wants the original file, I’ll share it.
WebODM options.pdf (64.6 KB)