Misconceptions about UAV-collected NDVI imagery and the Agribotix experience in ground truthing these images for agriculture

Thanks to all of your for your great feedback on my last blog post on airframe selection. There has been a lot of interest and misinformation about NDVI images on here recently, so I thought the topic deserved its own post. Briefly, I explained a little bit of history, why NDVI may not be the best index for UAVs, and showed some ground-truthing we did with NDVI maps. It ended up being a little too long to summarize here, but check it out at http://agribotix.com/blog/2014/6/10/misconceptions-about-uav-collec...

I would encourage anyone interested in the topic to check out some of Compton Tucker's original papers on the subject as they are really illuminating as to how the index came about. There is a lot of home research on Public Labs dedicated to making NDVI work with different systems, but NDVI was never a golden standard and different equipment may require different image processing metrics.

Views: 8444

Replies to This Discussion


I think I know what the problem is with the GitHub download. If you click on the "Download" directory then click on the file you want to download you will see a link for "View Raw". If you click on that the file will download. 

I added two plugins for DVI and uploaded it to the GitHub repository. The one calculates DVI for a displayed image and the other processes all images in a directory. I did this very quickly this evening since it seemed to be very easy (mostly replacing NDVI with DVI in the current plugin and the NDVI formula to DVI) but I'm sure it will need some adjustments so the interface makes more sense but it works in case you want to try it. Any comments would be appreciated. 

I have to disagree that ImageJ is clunky. I think you mean it's clunky for writing macros with a nice user interface. ImageJ is actually very powerful and with the hundreds of available plugins you get access to many state of the art and cutting edge algorithms. It's also quite fast. I wrote my plugins in ImageJ since I thought it would be helpful for people who want to use some of the other features but I'm not convinced many people take the time to learn how to use those so it might not have been a great choice. The PLOTS folks have an online processing tool (http://infragram.org/) and they would probably be delighted to add DVI if they thought people would want to use it. Python is a good option too but adding other image analysis features beyond creating a DVI image would be very time consuming. 

I think you're the first person to call me a talented programmer. I can often write code that works if I have enough time but I'm far from being a good programmer. If a programmer looked at my code they would either laugh or cry but they would never utter the word "talented".

I'm not sure if I would call the dual camera result appreciably better but they certainly have the potential to be better since you don't have the NIR contamination that you get with the single camera. You also get three decent visible channels so at the end of the day you have a 4-band image which can be helpful. It's a good bit more work though so you have to weight the options.

The scaling I used was fairly arbitrary. After creating the NDVI image I looked at the histogram and the lower tailed ended around -0.1 and the upper tail was around 0.25 I think. So, in effect any value less than -0.1 got set to 0 and any number greater than 0.25 got set to 255 and everything in between was scaled linearly. That's a standard image enhancement process to make an image more attractive but there isn't a physical connect to NDVI. I wasn't trying to make an accurate NDVI image but just wanted to show the type of detail that is in the NDVI data. The shadowed area should have been unaffected by the clipping since those NDVI values weren't outside of the clipping values. NDIV should deal with those light shadows ok. In fact the physics suggests that it would do a better job than a difference product but I guess that needs to be tested.

Hi Daniel,

yes the brown band is a country road but the white band is snow. This image was part of my flight for the last T3 challenge.

The images have a wrong white balance. So calculating Vegetation indices is problematic. I calculated them just to show that there is more than the NDVI. But the question is which one to choose. I think it depends on the problem you are looking at. So yes, a library is a very good idea! Sounds perfect for a University project?!

Kind regards,



I also had good luck with my dual camera system. I am currently comparing stabilized gimbals (nadir for two cameras) with hard mounted cameras. Stabilized gimbals should also reduce some errors. I'll report.

Kind regards,


Fascinating discussion gents, thanks for contributing your knowledge.

I took a 2 camera generated NRG image of a corner of a vineyard and ran it through Ned's updated plugin, to get a feel for the differences between the two indices. This imagery was taken a few months back in our Autumn (I'm in the Southern Hemipshere) and the vineyard was close to harvest. It also has a stressed component, which is the reason I was asked to photomap the vineyard, but the region in this single photo is not particularly stressed. The middle part seems less robust than the side parts.

Other things to note - there is considerable shadow on the right hand side.

I specifically chose a part that borders a lawn and trees, which are well-watered and provide a rough reference for a healthy NDVI.

I've attached a mosaic of four images - the NRG, the NDVI using Ned's Red2Blue LUT, the NDVI using the Agribotix LUT and the DVI using the Agribotix LUT. My impression is that the DVI image contains considerably less information than the NDVI and that it also fails to improve the shadowed area at all. Admittedly, I didn't play with the defaults in the plugin so maybe I missed something, but I include this image here to stimulate further debate.


Very nice article Daniel,

It's great to have someone to publish real world results from experience.

I do remember having read in an academic publication (PLOS One ?) about the similarity (in results) of Blue NDVI and Red NDVI. I'll try to find it.

By the way and taking about multispectral cameras. 

Almost everyone I talk to about tetracam, has had bad experiences with it. Due to poor design, poor usability, low resolution etc.

But I found at the Nuremberg SENSORs fair last week a new good option (far cheaper than rikola). It is the PixelCam. http://www.pixelteq.com/product/pixelcam/

Oh. I do not like very much FIJI. I prefer QGis. It is really powerful and at the same time easy to use.

Hi John,

Thanks so much for contributing this mosaic. It looks like shadows are not handled well in any of the images here. In addition to the shadow on the ground, the shadow on the left side of the vines is interpreted as a strong NDVI signal. I will try to get Ned's plugin up and running and see if it clips out the shadows and then post the results here.

One thing to note about the DVI image is that the LUT is washing out all the information. I developed that LUT for row crops, which apparently have a more even image histogram. Everything is appearing green or black in the vineyard, so I suspect that image would look better with a more graduated LUT.

On another note, how has your experience been flying vineyards? I think the sweet spot for UAVs in ag is between the ultra-high-value crops like berries that have boots on the ground every hundred yards and the super-low-value crops like dryland wheat where the farmer will go years between looking at a particular region. We've been focusing on irrigated, conventional row crops, but large vineyards seem like they'd be able to really take advantage of the information as well.



Good to know, thanks.

I still do think you clipped out the shadow and the two other bright spots, as they are brightest areas of the image and you can see that those regions are saturated to the highest pixel value. Maybe the information lost through this processing technique is less valuable than the clearer image it provides.

I am still struggling to get your plugin to work. I would download Fiji with it preconfigured from the site you linked, but I have a number of other plugins that I don't want to have to reinstall. I still can't open the PDF instructions, but I should just drop the .jar file in the plugins folder and have Fiji compile and run, right? Every time I do that, I get an error about not being able to compile. Sorry for the difficulties. I'm sure I'm just doing something stupid.

Hi Jesus,

I looked for the PLoSOne paper and all I found was a paper describing how to use kites to map the shoreline (http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone....). Was that the one you were talking about? They used two cameras for that study, getting four true bands.

Thanks for posting your experience with TetraCam. We thought about buying one to try out, but I haven't seen any strong evidence that, for our purposes at the moment, the TetraCam justifies the price tag. Do you know how much the PixelCam costs? The 512x512 resolution is probably too low for aerial mapping, but, if it were cheap enough, it would be nice to have one for experimentation and QC. I don't see any prices on their website, though.

Haha, and I also don't care for Fiji or ImageJ. It is very widely used in academia and I had more than my fair share of negative experiences with it in grad school. I am in the process on learning QGIS now. There are a ton of online tutorials, but, if you have a particular one you'd recommend, I'd love to know about it.



Hi Daniel

Just a quick note as I'm stepping out soon to watch the World Cup opener!

I agree with you that the loss of information in the DVI image is due clipping/saturation, but not had time to play with parameters or look at the data in the floating point version. Would be interesting to hear Ned's take on it.

I've only done vineyards so far, and the organic ones are definitely easier because they are 'lower' and therefore cast less shadow. Also, the lack of rodent control means you have nice rat dark holes that serve as effective GCPs! Our area is dominated by vineyards (wine) and further afield we have table grapes. We also have olive groves and citrus not far away but I've not tried them although I do consider grove-based farms to be good candidates for UAV work as opposed to satellite imagery (due to the discrete plant size and shape vs denser crops). To be honest I'm still at proof-of-concept stage, and we are now in winter here so I'm limited to certain crops that grow in our winter. Interestingly, we have a large berry farm just 4kms from us, but pretty much all the plants are either under macro or micro tunnels to protect them from invasive Eurasian Starlings.

In December we had a US-based group called MAVRX here, doing drone-borne NDVI tests at some of the major wine farms, but I've not heard more about it.

Upcountry there is definitely a demand for NDVI data for maize and sugar cane, two of our largest national crops, but if the satellite guys get in I don't know how much of the market will be left for UAV operators.

Thanks for sharing your knowledge, will pick up this thread tomorrow again.

John, I don't have much to add. In a case like this where you're probably not interested in vegetation information in the shadow areas I'd create a simple pre- or post-processing step to remove shadows. That would improve NDVI and DVI results. I am certain the DVI image could be improved to be on par with the NDVI image. If you  used my plugin I expect you need to change the minimum and maximum values for scaling the DVI image to 0 and 255 but that's a guess. I will try to update the guide to include instructions for DVI. I might also modify the interface. I made the update quickly last evening so it's basically the NDVI interface but the output is DVI.

Hi Ned,

Ignore the last comment about install difficulties. I figured out my problem.

If anyone else wants simple instructions for installing the Photo Monitoring Plugin, follow those below.

1) Go to https://github.com/nedhorning/PhotoMonitoringPlugin

2) Click "downloads"

3) Click "Photo_Monitoring.jar"

4) Click "Raw"

5) Open Fiji and click "Install" under the "Plugins" drop-down menu

The default settings yielded the image below, which is similar enough to the one I previously posted, that, after multiple rounds of processing and compression, I could consider it the same.

Once I started clipping the image, I was able to get reasonably close to reproducing your image.

But this is mainly just due to the shadows saturating and requires a good deal of eyeballing to attain the right values. It seems like at this high resolution shadows are very difficult to normalize out.

One solution I have considered it just blocking the NDVI images into 10m x 10m grids and laying those data over the visible. Have you every considered a resolution reduction as a possible solution?




© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service