Broadband emiss
Import libraries¶
In [ ]:
Copied!
import ee
import geemap
import ee
import geemap
Create an interactive map¶
In [ ]:
Copied!
Map = geemap.Map(center=[40, -100], zoom=4)
Map = geemap.Map(center=[40, -100], zoom=4)
Add Earth Engine Python script¶
In [ ]:
Copied!
# Add Earth Engine dataset
image = ee.Image("USGS/SRTMGL1_003")
#
'Author': Sofia Ermida (sofia.ermida@ipma.pt; @ermida_sofia)
This code is free and open.
By using this code and any data derived with it,
you agree to cite the following reference
'in any publications derived from them':
Ermida, S.L., Soares, P., Mantas, V., Göttsche, F.-M., Trigo, I.F., 2020.
    Google Earth Engine open-source code for Land Surface Temperature estimation from the Landsat series.
    'Remote Sensing, 12 (9), 1471; https':#doi.Org/10.3390/rs12091471
Malakar, N.K., Hulley, G.C., Hook, S.J., Laraby, K., Cook, M., Schott, J.R., 2018.
    'An Operational Land Surface Temperature Product for Landsat Thermal Data': Methodology
    and Validation. IEEE Trans. Geosci. Remote Sens. 56, 5717–5735.
    'https':#doi.Org/10.1109/TGRS.2018.2824828
This function computes broad-band emissivity from ASTER GED
'to call this function use':
BBEfun = require('users/sofiaermida/landsat_smw_lst:modules/broadband_emiss.js')
ImagewithBBE = BBEfun.addBand(dynamic)(image)
or
collectionwithBBE = ImageCollection.map(BBEfun.addBand(dynamic))
'USES':
    - ASTER_bare_emiss.js
'INPUTS':
        '- dynamic': <boolean>
                  'True': use vegetation cover correction
                  'False': use original ASTER GED emissivity
        '- image': <ee.Image>
                  an image is required to clip the ASTER data
                  to the image geometry; using the full ASTER image
                  compromises the performance
'OUTPUTS':
        - <ee.Image>
          'the input image with 1 new band':
          'BBE': broad-band emissivity
#
ASTERGED = require('users/sofiaermida/landsat_smw_lst:modules/ASTER_bare_emiss.js')
def exports.addBand(dynamic):
  def wrap(image):
    # get ASTER emissivity
    aster = ee.Image("NASA/ASTER_GED/AG100_003") \
      .clip(image.geometry())
    orig = aster.select('emissivity_band10').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band10(image)})
    em10 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band11').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band11(image)})
    em11 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band12').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band12(image)})
    em12 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band13').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band13(image)})
    em13 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band14').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band14(image)})
    em14 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    bbe = image.expression('0.128 + 0.014*em10 + 0.145*em11 + 0.241*em12 + 0.467*em13 + 0.004*em14',
      {'em10':em10,'em11':em11,'em12':em12,'em13':em13,'em14':em14})
    return image.addBands(bbe.rename('BBE'))
  return wrap
# Add Earth Engine dataset
image = ee.Image("USGS/SRTMGL1_003")
#
'Author': Sofia Ermida (sofia.ermida@ipma.pt; @ermida_sofia)
This code is free and open.
By using this code and any data derived with it,
you agree to cite the following reference
'in any publications derived from them':
Ermida, S.L., Soares, P., Mantas, V., Göttsche, F.-M., Trigo, I.F., 2020.
    Google Earth Engine open-source code for Land Surface Temperature estimation from the Landsat series.
    'Remote Sensing, 12 (9), 1471; https':#doi.Org/10.3390/rs12091471
Malakar, N.K., Hulley, G.C., Hook, S.J., Laraby, K., Cook, M., Schott, J.R., 2018.
    'An Operational Land Surface Temperature Product for Landsat Thermal Data': Methodology
    and Validation. IEEE Trans. Geosci. Remote Sens. 56, 5717–5735.
    'https':#doi.Org/10.1109/TGRS.2018.2824828
This function computes broad-band emissivity from ASTER GED
'to call this function use':
BBEfun = require('users/sofiaermida/landsat_smw_lst:modules/broadband_emiss.js')
ImagewithBBE = BBEfun.addBand(dynamic)(image)
or
collectionwithBBE = ImageCollection.map(BBEfun.addBand(dynamic))
'USES':
    - ASTER_bare_emiss.js
'INPUTS':
        '- dynamic': 
                  'True': use vegetation cover correction
                  'False': use original ASTER GED emissivity
        '- image': 
                  an image is required to clip the ASTER data
                  to the image geometry; using the full ASTER image
                  compromises the performance
'OUTPUTS':
        - 
          'the input image with 1 new band':
          'BBE': broad-band emissivity
#
ASTERGED = require('users/sofiaermida/landsat_smw_lst:modules/ASTER_bare_emiss.js')
def exports.addBand(dynamic):
  def wrap(image):
    # get ASTER emissivity
    aster = ee.Image("NASA/ASTER_GED/AG100_003") \
      .clip(image.geometry())
    orig = aster.select('emissivity_band10').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band10(image)})
    em10 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band11').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band11(image)})
    em11 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band12').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band12(image)})
    em12 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band13').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band13(image)})
    em13 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    orig = aster.select('emissivity_band14').multiply(0.001)
    dynam = image.expression('fvc*0.99+(1-fvc)*em_bare',{
      'fvc':image.select('FVC'),
      'em_bare':ASTERGED.emiss_bare_band14(image)})
    em14 = ee.Image(ee.Algorithms.If(dynamic,dynam,orig))
    bbe = image.expression('0.128 + 0.014*em10 + 0.145*em11 + 0.241*em12 + 0.467*em13 + 0.004*em14',
      {'em10':em10,'em11':em11,'em12':em12,'em13':em13,'em14':em14})
    return image.addBands(bbe.rename('BBE'))
  return wrap
   
Display the interactive map¶
In [ ]:
Copied!
Map
Map