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_ParametersA struct which holds all initial model parameters (before any computations)
Fields
spec_bandsSpectral bands (
nBand)brdfSurface (Bidirectional Reflectance Distribution Function)
quadrature_typeQuadrature type for RT streams (RadauQuad/GaussQuadHemisphere/GaussQuadFullSphere)
polarization_typeType of polarization (I/IQ/IQU/IQUV)
max_mHard cutoff for maximum number of Fourier moments to loop over
Δ_angleExclusion angle for forward peak [deg]
l_truncTruncation length for legendre terms (scalar for now, can do
nBandlater)depolDepolarization factor
float_typeFloat type to use in the RT (Float64/Float32)
architectureArchitecture to use for calculations (CPU/GPU)
szaSolar zenith angle [deg]
vzaViewing zenith angles [deg]
vazViewing azimuthal angles [deg]
obs_altAltitude of observer [Pa]
TTemperature Profile [K]
pPressure Profile [hPa]
qSpecific humidity profile
profile_reduction_nLength of profile reduction
absorption_paramsOptional struct that holds all absorption-related parameters
scattering_paramsOptional struct that holds all aerosol scattering-related parameters
Model Type
vSmartMOM.CoreRT.vSmartMOM_Model — Typestruct vSmartMOM_ModelA struct which holds all derived model parameters (including any computations)
Fields
paramsStruct with all individual parameters
aerosol_opticsTruncated aerosol optics
greek_rayleighGreek coefs in Rayleigh calculations
quad_pointsQuadrature points/weights, etc
τ_absArray to hold cross-sections over entire atmospheric profile
τ_raylRayleigh optical thickness
τ_aerAerosol optical thickness
obs_geomObservational Geometry (includes sza, vza, vaz)
profileAtmospheric 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 RadauQuadUse Gauss Radau quadrature scheme, which includes the SZA as point (see Sanghavi vSmartMOM)
vSmartMOM.CoreRT.GaussQuadHemisphere — Typestruct GaussQuadHemisphereUse Gauss quadrature scheme, define interval [-1,1] within an hemisphere (90⁰), repeat for both
vSmartMOM.CoreRT.GaussQuadFullSphere — Typestruct GaussQuadFullSphereUse 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