Different NDVI result between WebODM and QGIS

Hi ODM community friends,

I am confused with the plant health index (NDVI) results between WebODM and QGIS. It would be much appreciated that if someone can help me understand which one is correct.

The orthophoto is processed with DJI P4 multispectral cameras. The sensor index is Blue/Green/Red/Re/NIR.

The original orthophoto TIF file is here https://drive.google.com/file/d/1InIqH4BqTbMQBK9b0kq5_gvoNrIC2mcv/view?usp=sharing

The NDVI of WebODM result is shown as


The Min/Max NDVI value of WebODM is [0.990, 1.000]
I select the Filter Option as BGRReN

And the NDVI of QGIS result is shown as


The Min/Max NDVI value of QGIS is [0.050, 0.892]
The QGIS NDVI layer is calculated as the below configuration

Thanks for help

1 Like

I would hazard this is a sampling issue: if you sample all the pixels to generate the stats in each case, and you use the same index, the range should be the same. But rarely do we use all the pixels in these summaries, because it is computationally expensive.

A full check would include running both the WebODM calculated version and the QGIS calculated version through stats using a tool like GDAL and forcing GDAL to use all values in the stats. Even then, if there are small differences in how the floating point numbers are addressed you could see small differences, but probably not as large a difference as you are seeing here.

1 Like

Hi Stephen,
Thanks for your help.
I modified the QGIS resampling settings as “Oversampling: 1”, the Min/Max of QGIS NDVI changed to [-0.109, 0.900]. The previous settings is Oversampling : 4 pixels.

However, I still doubt the result of WebODM NDVI region as [0.990, 1.000]. Do I choose the correct Filter option?

Ah good point. I misread the range: that’s not a sampling issue. My guess it’s a band assignment issue. I’m not the one to help with that question at the moment, but hopefully someone will hop on and help out.

1 Like

It’s probably an issue of band assignment in WebODM (due to the fact that this is a 6-channel TIFF). I bet it’s using the alpha channel as a value. Probably a bug. I would open an issue on Issues · OpenDroneMap/WebODM · GitHub attaching a copy of the orthophoto file (or better yet, contribute a pull request if you’re able to).

3 Likes

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