The standard Landsat 8 products provided by the USGS EROS Center consist of quantized and calibrated scaled Digital Numbers (DN) representing multispectral image data acquired by both the Operational Land Imager (OLI) and Thermal Infrared Sensor (TIRS).
The products are delivered in 16-bit unsigned integer format and can be rescaled to the Top Of Atmosphere (TOA) reflectance using radiometric rescaling coefficients provided in the product metadata file (MTL file), as briefly described below.
OLI band data can be converted to TOA planetary reflectance using reflectance rescaling coefficients provided in the product metadata file (MTL file).
The following equation is used to convert DN values to TOA reflectance for OLI data as follows:
where:
\(\rho \lambda \prime \) = TOA planetary reflectance, without correction for solar angle. Note that \(\rho \lambda \prime \) does not contain a correction for the sun angle.
\(M\rho \) = Band-specific multiplicative rescaling factor from the metadata (REFLECTANCE_MULT_BAND_x, where x is the band number)
\(A\rho \) = Band-specific additive rescaling factor from the metadata (REFLECTANCE_ADD_BAND_x, where x is the band number)
\(Qcal \) = Quantized and calibrated standard product pixel values (DN)
TOA reflectance with a correction for the sun angle is then:
where:
\(\rho \lambda \) = TOA planetary reflectance
\( { \theta }{ se }\) = Local sun elevation angle. The scene center sun elevation angle in degrees is provided in the metadata (SUN_ELEVATION).
\( { \theta }{ sz }\) = Local solar zenith angle; \( { \theta }{ sz }\) = 90° - \( { \theta }{ se }\)
For more accurate reflectance calculations, per pixel solar angles could be used instead of the scene center solar angle, but per pixel solar zenith angles are not currently provided with the Landsat 8 products.
Calculate the TOA reflectance of the blue band (no sun angle correction is.suncorrected default value is set to FALSE)
library(rLandsat8)
setwd("~/Downloads")
product <- "LC82040322013219LGN00"
l <- ReadLandsat8(product)
reflectance.blue <- ToTOAReflectance(landsat8=l, band="blue")
Calculate the TOA reflectance of the green band using sun angle correction
library(rLandsat8)
setwd("~/Downloads")
product <- "LC82040322013219LGN00"
l <- ReadLandsat8(product)
reflectance.green <- ToTOAReflectance(landsat8=l, band="green", is.suncorrected = TRUE)