NDVI and NRG
ndvi

NDVI stands for "Normalized Difference Vegetation Index". NRG stands for "Near-infrared / Red / Green". NDVI and NRG are both ways to visualize the amounts of infrared and other wavelengths of light reflected from vegetation. Because both these methods compare ratios of blue and red light absorbed versus green and IR light reflected, they can be used to evaluate the health of vegetation. It's a snapshot of how much photosynthesis is happening. This is helpful in assessing vegetative health or stress. (Read more here: https://www.agronomy.org/publications/jeq/articles/36/3/832) ## Do-It-Yourself These techniques for vegetation analysis were developed for satellite imagery, but at Public Lab, we've been working a lot on capturing infrared imagery using our DIY [near-infrared camera](/wiki/near-infrared-camera) setup, and combining it with visible bands to produce NDVI images such as the one above. ## What these images mean What exactly are these images we're trying to make? What do they tell us about vegetation, and why? These diagrams should help to understand what it is we're doing and why these are good ways to analyze plant life. ## The NDVI equation [![NDVI_is_eq.jpg](/i/44723)](/i/44723) **NDVI = (Near Infrared - Red)/(Near Infrared + Red)** NDVI is a ratio which tries to emphasize photosynthesis while filtering out sun glare. The above equation is run for every pixel, using source data from an infrared photo and a visible light photo, like this pair: [![5390895115_c9d4d38fec_o.jpg](https://publiclab.org/system/images/photos/000/021/771/large/5390895115_c9d4d38fec_o.jpg)](https://publiclab.org/system/images/photos/000/021/771/original/5390895115_c9d4d38fec_o.jpg) The result can be false-colored to make the high-photosynthesis areas more clear, and used to examine where plants are and how healthy they are. [![PetVISNDVIcomp.png](https://publiclab.org/system/images/photos/000/021/770/large/PetVISNDVIcomp.png)](https://publiclab.org/system/images/photos/000/021/770/original/PetVISNDVIcomp.png) _Figure above: Normal color photo (right) and normalized difference vegetation index (NDVI) image (left). NDVI image was derived from two color channels in a single photo taken with a camera modified with a special infrared filter. Note that tree trunks, brown grass, and rocks have very low NDVI values because they are not photosynthetic. Healthy plants typically have NDVI values between 0.1 and 0.9. -- @cfastie_ ### Activities Here are a range of activities you can do to produce and interpret your own NDVI imagery, whether downloaded from a satellite imagery provider or [collected yourself using a DIY technique](/wiki/multispectral-imaging) [activities:ndvi] **** ![IMG_0511-split.png](https://i.publiclab.org/system/images/photos/000/000/279/medium/IMG_0511-split.png) ![infrared-combination.png](https://i.publiclab.org/system/images/photos/000/000/278/medium/infrared-combination.png) Most DIY converted cameras today (those from Public Lab) use RGN instead of NRG, so the blue channel represents infrared instead of the red channel. That looks like this: [![rgn-split.png](/i/45468)](/i/45468?s=o) **** ## NRG imagery Some people are also interested in producing NRG imagery (like the below image), where `Near-Infrared, Red, and Green` are used to compose a picture instead of the usual `Red, Green, and Blue`. [![5415783775_502f79ac8c_o.png](/i/25064)](/i/25064) This diagram explains the swapping, which allows us to 'see' infrared as if it were a normal color: [![5396083368_40528d3da2_o.png](/i/25063)](/i/25063) **In NRG images, the deeper and clearer the red color, the denser and healthier the vegetation (more or less).** ### Questions [questions:ndvi] ### Other examples of DIY NDVI imaging From around the internet: Begin watching at 2 minutes to see the resulting imagery: *This topic is part of the [Grassroots Mapping Curriculum](/wiki/mapping-curriculum) series.* **** [![5416397210_5e3be40cf5_o.png](/i/25066)](/i/25066) [![5412520298_93873f36d0_o.png](/i/25065)](/i/25065) ...


Author Comment Last activity Moderation
gpenzo "Hallo khufkens. Off the shelve approch is a very good way, if it does the job why not. I will keep an eye on your project. The main reason for the..." | Read more » over 9 years ago
khufkens "Wow, that's an impressive project. I don't have the electronic engineering skills to finish such a polished product I fear. I use a more 'off the s..." | Read more » over 9 years ago
gpenzo "Nice. I'm trying to do the same thing with a beaglebone black. http://publiclab.org/notes/gpenzo/03-25-2015/ndvi-cape-for-the-beagle-bone Only I us..." | Read more » over 9 years ago
azaelb "I am doing about the same thing as you: use small quadcopters with small cameras with red/blue filters to analyze NDVI for small farmers. I posted ..." | Read more » over 9 years ago
funkycbj "I just used a StellarNet spectrometer to find the transmittance of hot filters from the Canon A2200 & A2500. Both hot filters rapidly fall off ..." | Read more » over 9 years ago
nickrollings ":-) " | Read more » over 9 years ago
gpenzo "Hallo John. Based on wikipedia you need 531 and 570 nm filters. I checked arround and I could not find those filters. I saw 540nm and 580nm http://..." | Read more » over 9 years ago
gpenzo "More info see another note: http://publiclab.org/notes/gpenzo/03-25-2015/ndvi-cape-for-the-beagle-bone " | Read more » over 9 years ago
jhon "Hi gpenzo From Colombia... I would like to know how I can get the filter for such cameras to build a camera in order to obtain the index PRI. Th..." | Read more » over 9 years ago
fgiorlando "Interesting stuff indeed, I have been lurking here for a while and trying to build a good documentary NDVI camera for a public gardening project. I..." | Read more » over 9 years ago
pjsbill "Hi Warren, In the frame level rate it is around 20-30 fps, better than the raspberry. I think that the resolution of the camera is at maximum, I d..." | Read more » over 9 years ago
warren "Were you able to do this at full camera resolution? What frame rate? Do you have some video youve saved that you can share? Thanks!! " | Read more » over 9 years ago
gpenzo "Hello Warren. I never measure the boot time but it boots fast, I can login via ssh after 1 minute or so. And it take a couple of minutes before my ..." | Read more » over 9 years ago
warren "This is very exciting to see - we'd very early on tried to get a Raspberry Pi dual cam system working: http://publiclab.org/notes/warren/10-17-2012..." | Read more » over 9 years ago
gpenzo "Hello Ned, I'm going to calculate the x,y and rotation offset between the ir and vis pictures by doing a camera alignment with opencv. Becuase my c..." | Read more » over 9 years ago
patcoyle "Very nice indeed. " | Read more » over 9 years ago
nedhorning "Hi Grayson, This looks really nice - a great little setup. I think you made good choices: using two sensors close together with a (relatively) narr..." | Read more » almost 10 years ago
bwarzak "Ned, Our company is supposed to be writing an article for Vision System Design magazine regarding uses for dual band filters. I realize that the r..." | Read more » almost 10 years ago
warren "Note: the python library is here: https://github.com/publiclab/infrapix Infragrammar would be great to adopt as a standard: http://publiclab.org/w..." | Read more » almost 10 years ago
cfastie "Andresc4, The A2300 allows custom white balance. For a red or yellow filter, flood the sensor with red light (fill the frame with red paper in dire..." | Read more » almost 10 years ago
andresc4 "cfastie Great, in that case the formula that I'm using is correct for the Weatten25A or for the Yellow filter ndiv= (ndiv.b-ndiv.r)/(ndiv.b+ndiv...." | Read more » almost 10 years ago
cfastie "The response from Pix4D does not seem to be well informed. With a Wratten 25A filter, NIR and little else will be captured in the blue channel and ..." | Read more » almost 10 years ago
andresc4 "Another thing that confuses me a little bit more is this response from the people of Pix4d Pix4D Support December 01, 2014 13:28 Dear Andres, We..." | Read more » almost 10 years ago
warren "One way to do this could involve the python version of infragram -- perhaps modded to use Infragrammar? " | Read more » almost 10 years ago