I am trying to reproduce the OC3M and OC3V chl_oc3 products using L2 Rrs bands and am not getting the exact same result.
For example, using SeaDAS bandmaths and something like the following for the VIIRS sensor (where Rrs 443,486/ Rrs 551, and coefficients 0.2228,-2.4683,1.5867,-0.4275,-0.7768) I can define:
max_br = log10(max(Rrs_443,Rrs_486)/Rrs_551)
chl_calc_log = 0.2228 + ((-2.4683)*max_br) + (1.5867*pow(max_br,2)) + ((-0.4275)*pow(max_br,3)) + ((-0.7768)*pow(max_br,4))
And then take the anti-log to return to mg m^-3. However, in general after the 2nd/3rd decimal the numbers are off from the chl_oc3 product. Is there something I am missing or doing wrong, or is it perhaps a rounding issue?
So, yes, likely a rounding issue.
Here's what I did (which is pretty much the same thing you did):
mbr = log10(max(Rrs_445,Rrs_489) / Rrs_556)
chl_oc3 = pow(10.0, (0.2228 + mbr * (-2.4683 + mbr * (1.5867 + mbr * (-0.4275 + mbr * -0.7768)))))
Subtracting the output of this from the l2gen-produced chl_ocx product yeilds the attached histogram.
If your output looks similar, then you're doing it right :grin: