vSmartMOM Module Methods & Types
Defining Parameters for RT Simulation
vSmartMOM.CoreRT.parameters_from_yaml
— FunctionGiven a path to a YAML parameters file, load all the parameters into a vSmartMOM_Parameters struct
vSmartMOM.CoreRT.default_parameters
— FunctionGenerate default set of parameters for Radiative Transfer calculations (from ModelParameters/)
Using the Parameters Object to Create a Model
vSmartMOM.CoreRT.model_from_parameters
— FunctionTake the parameters specified in the vSmartMOMParameters struct, and calculate derived attributes into a vSmartMOMModel
Performing the RT Simulation
vSmartMOM.CoreRT.rt_run
— Functionrt_run(pol_type, obs_geom::ObsGeometry, τ_rayl, τ_aer, quad_points::QuadPoints, max_m, aerosol_optics, greek_rayleigh, τ_abs, brdf, architecture::AbstractArchitecture)
Perform Radiative Transfer calculations using given parameters
rt_run(model::vSmartMOM_Model, i_band::Integer = -1)
Perform Radiative Transfer calculations using parameters passed in through the vSmartMOM_Model struct
Types
Parameters Type
vSmartMOM.CoreRT.vSmartMOM_Parameters
— Typestruct vSmartMOM_Parameters
A struct which holds all initial model parameters (before any computations)
Fields
spec_bands
Spectral bands (
nBand
)brdf
Surface (Bidirectional Reflectance Distribution Function)
quadrature_type
Quadrature type for RT streams (RadauQuad/GaussQuadHemisphere/GaussQuadFullSphere)
polarization_type
Type of polarization (I/IQ/IQU/IQUV)
max_m
Hard cutoff for maximum number of Fourier moments to loop over
Δ_angle
Exclusion angle for forward peak [deg]
l_trunc
Truncation length for legendre terms (scalar for now, can do
nBand
later)depol
Depolarization factor
float_type
Float type to use in the RT (Float64/Float32)
architecture
Architecture to use for calculations (CPU/GPU)
sza
Solar zenith angle [deg]
vza
Viewing zenith angles [deg]
vaz
Viewing azimuthal angles [deg]
obs_alt
Altitude of observer [Pa]
T
Temperature Profile [K]
p
Pressure Profile [hPa]
q
Specific humidity profile
profile_reduction_n
Length of profile reduction
absorption_params
Optional struct that holds all absorption-related parameters
scattering_params
Optional struct that holds all aerosol scattering-related parameters
Model Type
vSmartMOM.CoreRT.vSmartMOM_Model
— Typestruct vSmartMOM_Model
A struct which holds all derived model parameters (including any computations)
Fields
params
Struct with all individual parameters
aerosol_optics
Truncated aerosol optics
greek_rayleigh
Greek coefs in Rayleigh calculations
quad_points
Quadrature points/weights, etc
τ_abs
Array to hold cross-sections over entire atmospheric profile
τ_rayl
Rayleigh optical thickness
τ_aer
Aerosol optical thickness
obs_geom
Observational Geometry (includes sza, vza, vaz)
profile
Atmospheric profile to use
Surface Types
vSmartMOM.CoreRT.AbstractSurfaceType
— TypeAbstract Type for Surface Types
vSmartMOM.CoreRT.LambertianSurfaceScalar
— TypeLambertian Surface (scalar per band)
vSmartMOM.CoreRT.LambertianSurfaceSpectrum
— TypeDefined as Array (has to have the same length as the band!)
Quadrature Types
vSmartMOM.CoreRT.AbstractQuadratureType
— TypeQuadrature Types for RT streams
vSmartMOM.CoreRT.RadauQuad
— Typestruct RadauQuad
Use Gauss Radau quadrature scheme, which includes the SZA as point (see Sanghavi vSmartMOM)
vSmartMOM.CoreRT.GaussQuadHemisphere
— Typestruct GaussQuadHemisphere
Use Gauss quadrature scheme, define interval [-1,1] within an hemisphere (90⁰), repeat for both
vSmartMOM.CoreRT.GaussQuadFullSphere
— Typestruct GaussQuadFullSphere
Use Gauss quadrature scheme, define interval [-1,1] for full sphere (180⁰), take half of it (less points near horizon compared to GaussQuadHemisphere)
Atmospheric Profile Type
vSmartMOM.CoreRT.AtmosphericProfile
— TypeStruct for an atmospheric profile