vSmartMOM Module Methods & Types
Defining Parameters for RT Simulation
vSmartMOM.IO.parameters_from_yaml — FunctionLoad parameters from a file path using the formats registry
Load parameters from an IOSource using the formats registry
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
Take the parameters specified in the vSmartMOMParameters struct, and calculate derived attributes into a vSmartMOMModel
Performing the RT Simulation
vSmartMOM.CoreRT.rt_run — Functionrt_run(model::vSmartMOM_Model; i_band::Integer = 1)Perform Radiative Transfer calculations using given parameters if no Raman is used
rt_run(S_type::AbstractRamanType,model::vSmartMOM_Model; i_band::Integer = 1)Perform Radiative Transfer calculations using given parameters and AbstractRaman type
Types
Parameters Type
vSmartMOM.CoreRT.vSmartMOM_Parameters — Typestruct vSmartMOM_ParametersA 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 donBandlater)depol: Depolarization factorfloat_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 profileprofile_reduction_n: Length of profile reductionabsorption_params: Optional struct that holds all absorption-related parametersscattering_params: Optional 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
params: Struct with all individual parametersaerosol_optics: Truncated aerosol opticsgreek_rayleigh: Greek coefs in Rayleigh calculationsquad_points: Quadrature points/weights, etcτ_abs: Array to hold cross-sections over entire atmospheric profileτ_rayl: Rayleigh optical thicknessτ_aer: Aerosol optical thicknessobs_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 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