GUI pre-processing digital numbers to surface reflectance using webODM

Hello everyone,

I am relatively new in webODM and I am only conversant with the graphical user interface (GUI).

I have some multispectral images collected by Wingra One’s micasense camera. I would want to use webODM’s GUI to preprocess images to surface reflectance / radiance using photos collected by the micasense calibration panel.

Looking forward to hearing from you all.

Best regards,
Michael

1 Like

Welcome!

Have you seen this part of the documentation yet?
Multispectral Support — OpenDroneMap 2.6.3 documentation

Many thanks for your response. I did select the “high resolution” and the “multispectral” options and subsequently the following Edit Task Options: dem-resolution: 2.0, dsm: true, ignore-gsd: true, orthophoto-resolution: 2.0, pc-quality: high, radiometric-calibration: camera+sun. My Wingtra One images contain 20 pre-flight and post-flight micasense calibration images together with 126 drone images. Unfortunately, I am getting this error message:
File “/code/opendm/types.py”, line 55, in detect_multi_camera
raise RuntimeError(“Invalid multi-camera images”)
RuntimeError: Invalid multi-camera images

1 Like

Alright, let’s take a look at what’s going on here…

I’m processing the dataset now without your calibration target images, as we don’t directly make use of them. Our processing pipeline relies upon the proper EXIF tags being in the Image Metadata, which likely will require you to pre-process your images with a tool from Micasense so that the calibration parameters are baked into your TIFFs. In this case, it looks like MicaSense might write them into the images if you have a DWLS (Down-welling Light Sensor/Sun Sensor).

Edit:

Looks like we have a mis-matched number of images per band, which is not supported. Trying to filter this list down to just the right ones…

Many thanks Naib for this. Looking forward to a positive outcome

1 Like

Hmm… Something seems amiss here, unfortunately.

Seems like you pulled it through

1 Like

Yeah, it processed, but the reconstruction seems odd, and the camera positions aren’t looking right, either.

I used this script for ReNamer+exiv2 to find the “hanging” image, btw:

[Rule0]
ID=PascalScript
Config=SOURCEUTF8:const%0D%0A++TAG0+%3D+%27Exif%2EImage%2EDateTime%27%3B%0D%0A++EXECUTABLE+%3D+%27exiv2%2Eexe%27%3B%0D%0A++PARAMETERS+%3D+%27%2DPt+%2DK%27+%2B+TAG0%3B%0D%0Avar%0D%0A++Command%2C+Output%3A+String%3B%0D%0A++UnicodeOutput%3A+WideString%3B%0D%0Abegin%0D%0A++Command+%3A%3D+%27%22%27+%2B+EXECUTABLE+%2B+%27%22+%27+%2B+PARAMETERS+%2B+%27+%22%27+%2B+FilePath+%2B+%27%22%27%3B%0D%0A++if+ExecConsoleApp%28Command%2C+Output%29+%3D+0+then%0D%0A++begin%0D%0A%0D%0A++++UnicodeOutput+%3A%3D+WideTrim%28OemToWide%28Output%29%29%3B%0D%0A++++if+Length%28UnicodeOutput%29+%3E+0+then%0D%0A++++++FileName+%3A%3D+UnicodeOutput+%2B+%27+%27%3B%0D%0A++end%3B%0D%0Aend%2E%0D%0A
Marked=1
Comment=

[Rule1]
ID=PascalScript
Config=SOURCEUTF8:const%0D%0A++TAG1+%3D+%27Xmp%2Edrone%2Ddji%2EBandName%27%3B%0D%0A++EXECUTABLE+%3D+%27exiv2%2Eexe%27%3B%0D%0A++PARAMETERS+%3D+%27%2DPt+%2DK%27+%2B+TAG1%3B%0D%0Avar%0D%0A++Command%2C+Output%3A+String%3B%0D%0A++UnicodeOutput%3A+WideString%3B%0D%0Abegin%0D%0A++Command+%3A%3D+%27%22%27+%2B+EXECUTABLE+%2B+%27%22+%27+%2B+PARAMETERS+%2B+%27+%22%27+%2B+FilePath+%2B+%27%22%27%3B%0D%0A++if+ExecConsoleApp%28Command%2C+Output%29+%3D+0+then%0D%0A++begin%0D%0A++++UnicodeOutput+%3A%3D+WideTrim%28OemToWide%28Output%29%29%3B%0D%0A++++if+Length%28UnicodeOutput%29+%3E+0+then%0D%0A++++++FileName+%3A%3DFileName+%2B+%27%2D%27+%2B+UnicodeOutput+%2B+WideExtractFileExt%28FilePath%29%3B%0D%0A++end%3B%0D%0Aend%2E%0D%0A
Marked=1
Comment=

[Rule2]
ID=Replace
Config=TEXTWHAT:%2A%7C%2A%2A%7C%2A%2A%7C%2A%2A%7C%2A%3A%2A%7C%2A%2A%7C%2A%3A%2A%7C%2A%2A%7C%2A;TEXTWITH:%2D;WHICH:1;SKIPEXTENSION:1;CASESENSITIVE:0;USEWILDCARDS:0;WHOLEWORDSONLY:0
Marked=1
Comment=

[Rule3]
ID=Replace
Config=TEXTWHAT:%2A%7C%2A%2A%7C%2A%3A%2A%7C%2A%2A%7C%2A%3A%2A%7C%2A%2A%7C%2A;TEXTWITH:%2E;WHICH:1;SKIPEXTENSION:1;CASESENSITIVE:0;USEWILDCARDS:0;WHOLEWORDSONLY:0
Marked=1
Comment=

[Rule4]
ID=Case
Config=WHAT:0;SKIPEXTENSION:1;EXTENSIONALWAYSLOWERCASE:1;EXTENSIONALWAYSUPPERCASE:0;FORCECASE:0;FRAGMENTSTEXT:
Marked=1
Comment=

Makes your images look like this:

This is good progress. Did you use the GUI?

Yep! Just had to make sure the images were all in their proper groupings was all. Hence why I used my ReNamer script (to find that there was an extra Blue band image just hanging out by itself).

Options: cog: true, crop: 0, debug: true, dem-gapfill-steps: 4, dem-resolution: 1, dsm: true, dtm: true, matcher-neighbors: 16, mesh-size: 300000, min-num-features: 16000, orthophoto-resolution: 1, pc-classify: true, pc-ept: true, pc-filter: 1, pc-geometric: true, pc-quality: high, radiometric-calibration: camera+sun, use-3dmesh: true, verbose: true
Average GSD: 23.72 cm
Area: 7,764.15 m²
Reconstructed Points: 16,277

Impressive. Which Option type are you using? High Resolution? Fast Orthophoto?

Custom option as listed above. What I use for pretty much every dataset I help folks with on here.

It has worked. I am very much grateful Saijin Naib for your support

1 Like

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