SPART.SPART module

Soil-Plant-Atmosphere Radiative Transfer model for top-of-canopy and top-of-atmosphere reflectance

Coupling bsm, PROSAIL and smac to simulate TOA reflectance

Python port coded by George Worrall (gworrall@ufl.edu) Center for Remote Sensing, University of Florida

Ported to Python from the original matlab code and model developed by:

Peiqi Yang (p.yang@utwente.nl) Christiaan van der Tol (c.vandertol@utwente.nl) Wout Verhoef (w.verhoef@utwente.nl)

University of Twente Faculty of Geo-Information Science and Earth Observation (ITC), Department of Water Resources

class src.spart.SPART(soilpar, leafbio, canopy, atm, angles, sensor, DOY)

Bases: object

run_spart model.

Parameters:
  • soilpar (SoilParameters) – Holds the soil parameters for the bsm model.
  • leafbio (LeafBiology) – Hold the leaf biology parameters for the PROSPECT model.
  • canopy (CanopyStructure) – Holds the canopy parameters for the sailh model.
  • atm (AtmosphericProperties) – Holds the atmospheric properties for the smac model.
  • sensor (str) – Name of RS platform to simulate. This is done after the SAIL stage and saves on atmospheric diffuse reflectance calculations for TOC and atmospheric correction calculations for TOA. Currently available: ‘TerraAqua-MODIS’ ‘LANDSAT4-TM’ ‘LANDSAT5-TM’ ‘LANDSAT7-ETM’ ‘LANDSAT8-OLI’ ‘Sentinel2A-MSI’ ‘Sentinel2B-MSI’ ‘Sentinel3A-OLCI’ ‘Sentinel3B-OLCI’
  • DOY (int) – Day of the year - Julian calendar
soilopt

Contains soil reflectances

Type:bsm.SoilOptics
leafopt

Contains leaf reflectance and transmittance and fraction contributed by chlorophyll

Type:prospect_5d.LeafOptics
canopyopt

Contains bidrectional and directional, diffuce and specular reflectance

Type:sailh.CanopyReflectances
R_TOC

Top of canopy reflectance

Type:np.array
R_TOA

Top of atmosphere reflectance

Type:np.array
L_TOA

Top of atmosphere radiance

Type:np.array
DOY
angles
atm
canopy
leafbio
run(debug=False)

Run the run_spart model.

Parameters:debug (bool) – if True, returns the simulated BSM derived soil spectra as well as additional output column. Default: False
Returns:Contains the radiances and reflectances columns ‘Band’ ‘L_TOA’ ‘R_TOA’ ‘R_TOC’ index by central band wavelength
Return type:pd.DataFrame
sensor
set_refl_trans_assumptions()

Sets the model assumptions about soil and leaf reflectance and transmittance in the thermal range.

These are that soil reflectance is the value for 2400 nm in the entire thermal range and that leaf relctance and transmittance are 0.01 in the thermal range (this is a model assumption that is set in the LeafBiology class in the bsm script)

Returns:
Return type:None
soilpar
class src.spart.SpectralBands

Bases: object

Class to hold definitions of spectral band ranges and wavelengths.

wlP

Range of wavelengths over which the PROSPECT model operates.

Type:np.array
wlE

Range of wavelengths in E-F excitation matrix

Type:np.array
wlF

Range of wavelengths for chlorophyll fluorescence in E-F matrix

Type:np.array
wlO

Range of wavelengths in the optical part of the spectrum

Type:np.array
wlT

Range of wavelengths in the thermal part of the spectrum

Type:np.array
wlS

Range of wavelengths for the solar spectrum. wlO and wlT combined.

Type:np.array
wlPAR

Range of wavelengths for photosynthetically active radiation

Type:np.array
nwlP

Number of optical bands

Type:int
nwlT

Number of thermal bands

Type:int
IwlP

Index of optical bands

Type:range
IwlT

Index of thermal bands

Type:range
src.spart.calculate_ET_radiance(Ea, DOY, tts)

Calculate extraterrestrial radiation.

Parameters:
  • Ea (float) – Solar constant for spectral irradiance
  • DOY (int) – Day of year, Julian calendar
  • tts (float) – Solar zenith angle in degrees
Returns:

Solar extraterrestrial spectrum

Return type:

np.array

Note

see: https://www.sciencedirect.com/topics/engineering/
extraterrestrial-radiation
src.spart.calculate_spectral_convolution(wl_hi, radiation_spectra, sensorinfo)

Calculate the spectral convolution for a given spectral response function.

Parameters:
  • wl_hi (np.array) – Arrays of wavelengths to be convolved
  • radiation_spectra (np.array) – irradiance or radiance to be convolved
  • sensorinfo (dict) – Contains keys ‘wl_srf’ -> number of bands contrib * number of bands post con ‘p_srf’ -> relative contribution of each band
Returns:

Convolution result

Return type:

np.array

src.spart.load_ET_parameters()

Load extratrerrestrial parameters from saved arrays

src.spart.load_optical_parameters()

Load optical parameters from saved arrays

src.spart.load_sensor_info(sensor)

Load RS sensor information from saved arrays