[GRASS-user] WV-2 top of atmosphere reflectance calculation
Eric Goddard
egoddard1010 at gmail.com
Thu Jul 11 20:38:10 PDT 2013
Hi All,
I'm working on a python script that extracts the variables necessary
to convert WorldView-2 DNs to top of atmosphere reflectance values.
The equations come from
http://www.digitalglobe.com/sites/default/files/Radiometric_Use_of_WorldView-2_Imagery%20%281%29.pdf.
the mapcalc function is a combination of two of the formulas from the
pdf. The first formula converts DNs to band averaged spectral
radiance:
Radiance = (Absolute Calibration Factor * DN) / Effective Bandwidth (page 9)
The second formula (page 16) incorporates some other variables to
convert to top of atmosphere reflectance:
TOA Reflectance = (Radiance * Earth Sun Distance ^2 * pi) / (Band
Averaged Solar Spectral Irradiance * cos(solar zenith angle))
The band averaged solar spectral Irradiance is eSun in the mapcalc formula.
My mapcalc function:
grass.mapcalc("$output = ((($absCal * $input_rast) / $efb) * $esd^2
* $pi) / ($eSun * cos($solarGeom))",
output=output, absCal=absCalFactor, input_rast=raster,
efb=effectiveBandwidth, esd=earthSunDist, pi=math.pi, eSun=eSun,
solarGeom=solarGeom)
As far as I can tell my formula looks correct, but some bands have max
values exceeding 1.0, which I don't think should happen. I was hoping
some additional eyes might be able to shed some light on where I'm
going wrong.
Thanks,
Eric
More information about the grass-user
mailing list