Possible error in the calculation of the radiance of Sentinel-2 L1C-TOA scenes?
23 views
Skip to first unread message
Julian
unread,
Jun 20, 2024, 3:04:21 PM6/20/24
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to RSGISLib Support
Hello, I tested the 6S correction of Sentinel-2 scenes with ARCSI. When looking at the calculated radiance scenes, I noticed that the radiance values do not match those obtained in the SNAP software, for example. So I took a closer look at the code snippet of rsgislib.imagecalibration.toa_refl_to_radiance():
RSGISCalculateRadianceFromTOAReflectance::RSGISCalculateRadianceFromTOAReflectance(int numberOutBands, float solarIrradiance, double distance, float solarZenith, float scaleFactor):rsgis::img::RSGISCalcImageValue(numberOutBands)
{
this->solarIrradiance = solarIrradiance;
this->distance = distance;
this->solarZenith = solarZenith;
this->scaleFactor = scaleFactor;
this->distSq = distance distance;
}
void RSGISCalculateRadianceFromTOAReflectance::calcImageValue(float bandValues, int numBands, doubleoutput)
{
if(numBands != this->numOutBands)
{
throw rsgis::img::RSGISImageCalcException("The number of input and output image bands needs to be the same.");
}
for(int i = 0; i < this->numOutBands; ++i)
{
output[i] = ((bandValues[i]/scaleFactor) * solarIrradiance[i] * cos(solarZenith)) / (M_PI * distSq);
}
The error in the calculation must be due to an incorrect assignment of the variable „distance“. In rsgislib it seems that the Sentinel-Metadata-variable U gets defined as distance. However, according to https://seadas.gsfc.nasa.gov/help-9.0.0/ReflectanceToRadianceAlgorithmSpecification.html, the distance is equal to 1/U.
As a result, the radiance determined by rsgislib.imagecalibration.toa_refl_to_radiance() is on average a few percent higher than it should actually be. This in turn means that atmospheric corrections from Sentinel-2 with ARCSI are also distorted.
I may have misunderstood something, but after checking several times I always get differences in the radiance.