Title: | Land Surface Temperature Retrieval for Landsat 8 |
---|---|
Description: | Calculates Land Surface Temperature from Landsat band 10 and 11. Revision of the Single-Channel Algorithm for Land Surface Temperature Retrieval From Landsat Thermal-Infrared Data. Jimenez-Munoz JC, Cristobal J, Sobrino JA, et al (2009). <doi: 10.1109/TGRS.2008.2007125>. Land surface temperature retrieval from LANDSAT TM 5. Sobrino JA, Jiménez-Muñoz JC, Paolini L (2004). <doi:10.1016/j.rse.2004.02.003>. Surface temperature estimation in Singhbhum Shear Zone of India using Landsat-7 ETM+ thermal infrared data. Srivastava PK, Majumdar TJ, Bhattacharya AK (2009). <doi: 10.1016/j.asr.2009.01.023>. Mapping land surface emissivity from NDVI: Application to European, African, and South American areas. Valor E (1996). <doi:10.1016/0034-4257(96)00039-9>. On the relationship between thermal emissivity and the normalized difference vegetation index for natural surfaces. Van de Griend AA, Owe M (1993). <doi:10.1080/01431169308904400>. Land Surface Temperature Retrieval from Landsat 8 TIRS—Comparison between Radiative Transfer Equation-Based Method, Split Window Algorithm and Single Channel Method. Yu X, Guo X, Wu Z (2014). <doi:10.3390/rs6109829>. Calibration and Validation of land surface temperature for Landsat8-TIRS sensor. Land product validation and evolution. Skoković D, Sobrino JA, Jimenez-Munoz JC, Soria G, Julien Y, Mattar C, Cristóbal J. (2014). |
Authors: | Bappa Das [aut, cre] |
Maintainer: | Bappa Das <[email protected]> |
License: | AGPL-3 |
Version: | 2.0.0 |
Built: | 2025-02-17 05:30:49 UTC |
Source: | https://github.com/bappa10085/lst |
This function calculates at-Sensor Temperature or brightness temperature
BT(Landsat_10, Landsat_11)
BT(Landsat_10, Landsat_11)
Landsat_10 |
SpatRaster object, Landsat band 10 |
Landsat_11 |
SpatRaster object, Landsat band 11 |
A list containing brightness temperature corresponding to Landsat band 10 and Landsat band 11
a <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(a) = runif(10000, min=27791, max=30878) b <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(b) = runif(10000, min=25686, max=28069) BT(Landsat_10 = a, Landsat_11 = b)
a <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(a) = runif(10000, min=27791, max=30878) b <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(b) = runif(10000, min=25686, max=28069) BT(Landsat_10 = a, Landsat_11 = b)
This function calculates Land Surface Emissivity according to Skokovic et al. 2014
E_Skokovic(red = red, NDVI = NDVI, band = band)
E_Skokovic(red = red, NDVI = NDVI, band = band)
red |
SpatRaster object, red band of remote sensing imagery |
NDVI |
SpatRaster object, NDVI calculated from remote sensing imagery |
band |
A string specifying which Landsat 8 thermal band to use. It can be "band 10" or "band 11" |
SpatRaster
Skoković, D., Sobrino, J.A., Jimenez-Munoz, J.C., Soria, G., Julien, Y., Mattar, C. and Cristóbal, J., 2014. Calibration and Validation of land surface temperature for Landsat8-TIRS sensor. Land product validation and evolution.
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Skokovic(red = red, NDVI = NDVI, band = "band 11")
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Skokovic(red = red, NDVI = NDVI, band = "band 11")
This function calculates Land Surface Emissivity according to Sobrino et al. 2008
E_Sobrino(red = red, NDVI = NDVI)
E_Sobrino(red = red, NDVI = NDVI)
red |
SpatRaster object, red band of remote sensing imagery |
NDVI |
SpatRaster object, NDVI calculated from remote sensing imagery |
SpatRaster
Sobrino, J.A., Jiménez-Muñoz, J.C., Sòria, G., Romaguera, M., Guanter, L., Moreno, J., Plaza, A. and Martínez, P., 2008. Land surface emissivity retrieval from different VNIR and TIR sensors. IEEE transactions on geoscience and remote sensing, 46(2), pp.316-327.
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Sobrino(red = red, NDVI = NDVI)
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Sobrino(red = red, NDVI = NDVI)
This function calculates Land Surface Emissivity according to Valor and Caselles 1996
E_Valor(NDVI)
E_Valor(NDVI)
NDVI |
SpatRaster object, NDVI calculated from remote sensing imagery |
SpatRaster
Valor, E. and Caselles, V., 1996. Mapping land surface emissivity from NDVI: Application to European, African, and South American areas. Remote sensing of Environment, 57(3), pp.167-184.
NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Valor(NDVI)
NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Valor(NDVI)
This function calculates Land Surface Emissivity according to Van de Griend and Owe 1993
E_VandeGriend(NDVI)
E_VandeGriend(NDVI)
NDVI |
SpatRaster object, NDVI calculated from remote sensing imagery |
SpatRaster
Van de Griend, A.A. and Owe, M., 1993. On the relationship between thermal emissivity and the normalized difference vegetation index for natural surfaces. International Journal of remote sensing, 14(6), pp.1119-1131.
NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_VandeGriend(NDVI)
NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_VandeGriend(NDVI)
This function calculates Land Surface Emissivity according to Yu et al. 2014
E_Yu(red = red, NDVI = NDVI, band = band)
E_Yu(red = red, NDVI = NDVI, band = band)
red |
SpatRaster object, red band of remote sensing imagery |
NDVI |
SpatRaster object, NDVI calculated from remote sensing imagery |
band |
A string specifying which Landsat 8 thermal band to use. It can be "band 10" or "band 11" |
SpatRaster
Yu, X., Guo, X. and Wu, Z., 2014. Land surface temperature retrieval from Landsat 8 TIRS—Comparison between radiative transfer equation-based method, split window algorithm and single channel method. Remote sensing, 6(10), pp.9829-9852.
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Yu(red = red, NDVI = NDVI, band = "band 11")
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) E_Yu(red = red, NDVI = NDVI, band = "band 11")
This function calculates Land Surface Temperature using mono window algorithm
MWA(BT = BT, tau = tau, E = E, Ta = Ta)
MWA(BT = BT, tau = tau, E = E, Ta = Ta)
BT |
SpatRaster object, brightness temperature |
tau |
Atmospheric transmittance |
E |
SpatRaster object, Land Surface Emissivity calculated according to Van de Griend and Owe 1993 or Valor and Caselles 1996 or Sobrino et al. 2008 |
Ta |
Mean atmospheric temperature (K) of the date when Landsat passed over the study area |
SpatRaster
Qin, Z., Karnieli, A. and Berliner, P., 2001. A mono-window algorithm for retrieving land surface temperature from Landsat TM data and its application to the Israel-Egypt border region. International journal of remote sensing, 22(18), pp.3719-3746.
BTemp <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(BTemp) = runif(10000, min=298, max=305) E <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E) = runif(10000, min=0.96, max=0.99) MWA(BT = BTemp, tau = 0.86, E = E, Ta = 26)
BTemp <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(BTemp) = runif(10000, min=298, max=305) E <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E) = runif(10000, min=0.96, max=0.99) MWA(BT = BTemp, tau = 0.86, E = E, Ta = 26)
Function for NDVI calculation
NDVI(Red, NIR)
NDVI(Red, NIR)
Red |
SpatRaster object, red band of remote sensing imagery |
NIR |
SpatRaster object, NIR band of remote sensing imagery |
SpatRaster
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NIR <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NIR) = runif(10000, min=0.1, max=0.6) NDVI(Red = red, NIR = NIR)
red <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(red) = runif(10000, min=0.1, max=0.4) NIR <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NIR) = runif(10000, min=0.1, max=0.6) NDVI(Red = red, NIR = NIR)
Calculation of the proportion of vegetation or fractional vegetation cover from NDVI
Pv(NDVI, minNDVI, maxNDVI)
Pv(NDVI, minNDVI, maxNDVI)
NDVI |
SpatRaster object, NDVI calculated from remote sensing imagery |
minNDVI |
= 0.2 (Ref. Sobrino et al. 2004) |
maxNDVI |
= 0.5 (Ref. Sobrino et al. 2004) |
SpatRaster
Sobrino, J.A., Jiménez-Muñoz, J.C. and Paolini, L., 2004. Land surface temperature retrieval from LANDSAT TM 5. Remote Sensing of environment, 90(4), pp.434-440.
NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) Pv(NDVI = NDVI, minNDVI = 0.2, maxNDVI = 0.5)
NDVI <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(NDVI) = runif(10000, min=0.02, max=0.8) Pv(NDVI = NDVI, minNDVI = 0.2, maxNDVI = 0.5)
This function calculates Land Surface Temperature using radiative transfer equation method
RTE(TIR = TIR, tau = tau, E = E, dlrad = dlrad, ulrad = ulrad, band = band)
RTE(TIR = TIR, tau = tau, E = E, dlrad = dlrad, ulrad = ulrad, band = band)
TIR |
SpatRaster object, Landsat band 10 or 11 |
tau |
Atmospheric transmittance |
E |
SpatRaster object, Land Surface Emissivity calculated according to Van de Griend and Owe 1993 or Valor and Caselles 1996 or Sobrino et al. 2008 |
dlrad |
Downwelling radiance calculated from https://atmcorr.gsfc.nasa.gov/ |
ulrad |
upwelling radiance calculated from https://atmcorr.gsfc.nasa.gov/ |
band |
A string specifying which Landsat 8 thermal band to use. It can be "band 10" or "band 11" |
SpatRaster
Srivastava, P.K., Majumdar, T.J. and Bhattacharya, A.K., 2009. Surface temperature estimation in Singhbhum Shear Zone of India using Landsat-7 ETM+ thermal infrared data. Advances in space research, 43(10), pp.1563-1574.
TIR <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR) = runif(10000, min=27791, max=30878) BT <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(BT) = runif(10000, min=298, max=305) E <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E) = runif(10000, min=0.96, max=0.99) Ts_RTE <- RTE(TIR = TIR, tau = 0.86, E = E, dlrad = 2.17, ulrad = 1.30, band = "band 11")
TIR <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR) = runif(10000, min=27791, max=30878) BT <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(BT) = runif(10000, min=298, max=305) E <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E) = runif(10000, min=0.96, max=0.99) Ts_RTE <- RTE(TIR = TIR, tau = 0.86, E = E, dlrad = 2.17, ulrad = 1.30, band = "band 11")
This function calculates Land Surface Temperature using single channel algorithm
SCA(TIR = TIR, tau = tau, E = E, dlrad = dlrad, ulrad = ulrad, band = band)
SCA(TIR = TIR, tau = tau, E = E, dlrad = dlrad, ulrad = ulrad, band = band)
TIR |
SpatRaster object, Landsat band 10 or 11 |
tau |
Atmospheric transmittance |
E |
SpatRaster object, Land Surface Emissivity calculated according to Van de Griend and Owe 1993 or Valor and Caselles 1996 or Sobrino et al. 2008 |
dlrad |
Downwelling radiance calculated from https://atmcorr.gsfc.nasa.gov/ |
ulrad |
upwelling radiance calculated from https://atmcorr.gsfc.nasa.gov/ |
band |
A string specifying which Landsat 8 thermal band to use. It can be "band 10" or "band 11" |
SpatRaster
Jimenez-Munoz, J.C., Cristobal, J., Sobrino, J.A., Sòria, G., Ninyerola, M. and Pons, X., 2008. Revision of the single-channel algorithm for land surface temperature retrieval from Landsat thermal-infrared data. IEEE Transactions on geoscience and remote sensing, 47(1), pp.339-349.
TIR <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR) = runif(10000, min=27791, max=30878) E <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E) = runif(10000, min=0.96, max=0.99) Ts_SCA <- SCA(TIR = TIR, tau = 0.86, E = E, dlrad = 2.17, ulrad = 1.30, band = "band 11")
TIR <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR) = runif(10000, min=27791, max=30878) E <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E) = runif(10000, min=0.96, max=0.99) Ts_SCA <- SCA(TIR = TIR, tau = 0.86, E = E, dlrad = 2.17, ulrad = 1.30, band = "band 11")
This function calculates Land Surface Temperature using split-window algorithm
SWA( TIR_10 = TIR_10, TIR_11 = TIR_11, tau_10 = tau_10, tau_11 = tau_11, E_10 = E_10, E_11 = E_11 )
SWA( TIR_10 = TIR_10, TIR_11 = TIR_11, tau_10 = tau_10, tau_11 = tau_11, E_10 = E_10, E_11 = E_11 )
TIR_10 |
SpatRaster object, Landsat band 10 |
TIR_11 |
SpatRaster object, Landsat band 11 |
tau_10 |
Atmospheric transmittance for Landsat band 10 |
tau_11 |
Atmospheric transmittance for Landsat band 11 |
E_10 |
SpatRaster object, Land Surface Emissivity for Landsat band 10 calculated according to Skokovic et al. 2014 or Yu et al. 2014 |
E_11 |
SpatRaster object, Land Surface Emissivity for Landsat band 11 calculated according to Skokovic et al. 2014 or Yu et al. 2014 |
SpatRaster
Yu, X., Guo, X. and Wu, Z., 2014. Land surface temperature retrieval from Landsat 8 TIRS—Comparison between radiative transfer equation-based method, split window algorithm and single channel method. Remote sensing, 6(10), pp.9829-9852.
TIR_10 <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR_10) = runif(10000, min=27791, max=30878) TIR_11 <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR_11) = runif(10000, min=25686, max=28069) E_10 <- terra::rast(ncol=100, nrow=100) set.seed(1) terra::values(E_10) = runif(10000, min=0.96, max=0.99) E_11 <-terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E_11) = runif(10000, min=0.96, max=0.99) Ts_SWA <- SWA(TIR_10=TIR_10, TIR_11=TIR_11, tau_10=0.86, tau_11=0.87, E_10=E_10, E_11=E_11)
TIR_10 <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR_10) = runif(10000, min=27791, max=30878) TIR_11 <- terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(TIR_11) = runif(10000, min=25686, max=28069) E_10 <- terra::rast(ncol=100, nrow=100) set.seed(1) terra::values(E_10) = runif(10000, min=0.96, max=0.99) E_11 <-terra::rast(ncol=100, nrow=100) set.seed(2) terra::values(E_11) = runif(10000, min=0.96, max=0.99) Ts_SWA <- SWA(TIR_10=TIR_10, TIR_11=TIR_11, tau_10=0.86, tau_11=0.87, E_10=E_10, E_11=E_11)
This function calculates mean atmospheric temperature (Ta) using near-surface air temperature (To)
Ta(To = To, mod = mod)
Ta(To = To, mod = mod)
To |
Near-surface air temperature (°C) of the date when Landsat passed over the study area |
mod |
A string specifying which model to use. It can be anyone of "USA 1976 Standard" or "Tropical Region" or "Mid-latitude Summer Region" or "Mid-latitude Winter Region" |
Mean atmospheric temperature (K)
Sekertekin, A. and Bonafoni, S., 2020. Land surface temperature retrieval from Landsat 5, 7, and 8 over rural areas: Assessment of different retrieval algorithms and emissivity models and toolbox implementation. Remote sensing, 12(2), p.294.
Ta(To = 26, mod = "Mid-latitude Winter Region")
Ta(To = 26, mod = "Mid-latitude Winter Region")
This function calculates Atmospheric transmittance from near-surface air temperature (To, °C) and relative humidity (RH, %) of the date when Landsat passed over the study area
tau(To = To, RH = To, band = band)
tau(To = To, RH = To, band = band)
To |
Near-surface air temperature (°C) of the date when Landsat passed over the study area |
RH |
relative humidity (%) of the date when Landsat passed over the study area |
band |
A string specifying which Landsat 8 thermal band to use. It can be "band 10" or "band 11" |
Atmospheric transmittance
tau(To = 26, RH = 42, band = "band 11")
tau(To = 26, RH = 42, band = "band 11")