How did you install ODX (docker, installer, etc.)?
Windows installer
What's your browser and operating system? (Copy/paste the output of https://www.whatismybrowser.com/)
Firefox 140 on Windows 10
What is the problem?
This is the first of 3 issues regarding multispectral datasets, where computed multispectral orthos are found to have negative reflectance values for some or all bands. These bands should always be non-negative.
This first issue addresses computation of reflectances from the DN values of the raw images. For a DJI M3M, the current implementation appears to be inconsistent with DJI's Mavic 3M Image Processing Guide.
How can we reproduce this? (What steps trigger the problem? What parameters are you using for processing? Does it process with the default settings? Include screenshots. If you are having issues processing a dataset, you must include a copy of your dataset uploaded on Dropbox, Google Drive or https://dronedb.app)
This is basically a math and implementation problem, and has been discussed several times on discord.
DJI's guide recommends always using EXIF tag @drone-dji:BlackLevel but that is not guaranteed in odm/orthophoty.py:parse_exif_values().
Computed reflectance values are relative for the DJI M3M (and probably other cameras). That means the reflectance values should be non-negative, but the upper bound is unspecified rather than the currently implemented hard limit of 1 (which would be correct for absolute reflectances). In practice, the upper bound will be camera-dependent.
The current implementation uses a factor of pi to compute the reflectance, which is not found in the DJI guide.
Finally, the current implementation does not validate all inputs and outputs to ensure the computed reflectances are in the interval [0,+inf), making it harder to track where the negative values in the final orthos are coming from.
How did you install ODX (docker, installer, etc.)?
Windows installer
What's your browser and operating system? (Copy/paste the output of https://www.whatismybrowser.com/)
Firefox 140 on Windows 10
What is the problem?
This is the first of 3 issues regarding multispectral datasets, where computed multispectral orthos are found to have negative reflectance values for some or all bands. These bands should always be non-negative.
This first issue addresses computation of reflectances from the DN values of the raw images. For a DJI M3M, the current implementation appears to be inconsistent with DJI's Mavic 3M Image Processing Guide.
How can we reproduce this? (What steps trigger the problem? What parameters are you using for processing? Does it process with the default settings? Include screenshots. If you are having issues processing a dataset, you must include a copy of your dataset uploaded on Dropbox, Google Drive or https://dronedb.app)
This is basically a math and implementation problem, and has been discussed several times on discord.
DJI's guide recommends always using EXIF tag @drone-dji:BlackLevel but that is not guaranteed in odm/orthophoty.py:parse_exif_values().
Computed reflectance values are relative for the DJI M3M (and probably other cameras). That means the reflectance values should be non-negative, but the upper bound is unspecified rather than the currently implemented hard limit of 1 (which would be correct for absolute reflectances). In practice, the upper bound will be camera-dependent.
The current implementation uses a factor of pi to compute the reflectance, which is not found in the DJI guide.
Finally, the current implementation does not validate all inputs and outputs to ensure the computed reflectances are in the interval [0,+inf), making it harder to track where the negative values in the final orthos are coming from.