@cfastie made a blog post that intereses me as I need to measure NDVI with micro controllers.
The questions that a need to understand are:
- How to interpret frequency response graphs?
- How did you come up with the computation of the NDVI this code? (code bellow)
tsl1.getLuminosity (&broadband1, &infrareda);
infrared1 = infrareda*1.5;
float vis1 = broadband1-infrareda;
NDVI1 = (infrared1 - vis1) / (infrared1 + vis1);
- I could just use this code but i want to be sure I Know what I am doing, Thanks.
Are you referring to this research note?
https://publiclab.org/notes/cfastie/05-11-2017/dual-ndvi-ultra-probe-unit
Are you referring to this figure as "frequency response graphs"?
Above: The spectral response of the TSL2561 sensor. Channel 1 is mostly near infrared and channel 0 is the full range, but if you subtract 1 from 0 you can get a mostly visible light result.
Are you referring to the Arduino sketch that was linked in the above research note?
Deek_LCD2NDVI.txt
Making some assumptions about your questions, here are my responses.
The TSL2561 sensor produces two signals. One is an indication of brightness dominated by visible light (but including a lot of NIR) and the other is an indication of brightness dominated by NIR (but including some visible). To compute NDVI, values for the intensity of both visible and NIR light are required. Using the TSL2561 sensor to compute NDVI has a few serious drawbacks.
Workarounds:
It might work better to use two TSL2561 sensors. Use one with a narrow band red filter to get a measure of red light brightness from channel 2. Use the other with a narrow band NIR-only filter like Wratten 87 to get a measure of NIR brightness from channel 1. You would still want to inflate the NIR signal to compensate for the lower sensitivity to NIR. And this does not solve the nonlinearity problem.
It might be better to find other sensors which don't have the problems of the TSL2561.
Chris
Is this a question? Click here to post it to the Questions page.
Reply to this comment...
Log in to comment