- Home
- Documentation
- API reference
- Atmosphere
- hyperproc.atmos.engines
hyperproc.atmos.engines¶
Source-derived reference
Generated from the current hyperproc 0.1.2 checkout.
Implementation: hyperproc/atmos/engines.py. Signatures, defaults, docstrings, and expandable source are extracted statically; the module is not imported or executed. Names beginning with _ are implementation details, not a stable public API.
Use the function signature as the authority for individual parameter defaults and return annotations. Original docstrings sometimes group parameter names or wrap return descriptions across lines; these descriptions are preserved rather than inferred or rewritten.
6S and libRadtran look-up-table engines with the aerosol model exposed.
ISOFIT ships both engines but fixes their aerosol: the 6S input template writes
model 1 (continental) with 0.30 atm-cm ozone, and the libRadtran template uses
aerosol_default (rural). apply_oe cannot pick them at all; it only
writes an sRTMnet or MODTRAN engine block. hyperproc keeps apply_oe's
orchestration and swaps the engine block after it is written
(:mod:hyperproc.atmos._runner); the subclasses here read their settings from
a small JSON file beside the look-up table, written by the runner, so the
settings travel to the Ray workers inside the pickled engine instance.
Importing this module imports ISOFIT's engines (and through them torch), so
:mod:hyperproc.atmos.correct does not import it; only the runner does.
SIDECAR = 'hyperproc_engine.json'
module-attribute
¶
SixS
¶
Bases: SixSRT
6S with a selectable aerosol model and ozone column, at instrument wavelengths.
Two things differ from ISOFIT's class. The aerosol model (line 5 of the
6S input) and, when ozone is given, the ozone column (lines 4 and 10,
atm-cm) are edited into each input file after the parent writes it. And
the look-up table is stored at the instrument's wavelengths: ISOFIT keeps
6S output on 6S's own 2.5 nm grid and lets the forward model resample,
which the analytical line does not do (it fails with an 861 x 285 shape
mismatch), so each simulation is resampled here with the instrument's
FWHM, exactly as the sRTMnet route ends up at instrument resolution.
Ray workers run makeSim/readSim from the pickled instance, so the
settings are read before the parent's constructor, which may already
build the table.
Source code in hyperproc/atmos/engines.py
SIM_RANGE = (350.0, 2500.0)
class-attribute
instance-attribute
¶
hp_aerosol = SIXS_AEROSOL[s.get('aerosol_model', 'continental')]
instance-attribute
¶
hp_ozone = s.get('ozone')
instance-attribute
¶
__init__(full_config, wl=(), fwhm=(), **kwargs)
¶
Source code in hyperproc/atmos/engines.py
rebuild_cmd(point, wlinf, wlsup)
¶
Source code in hyperproc/atmos/engines.py
_sim_grid(file) -> np.ndarray
staticmethod
¶
The wavelengths (nm) of a 6S output file's spectral table.
Source code in hyperproc/atmos/engines.py
readSim(point)
¶
Source code in hyperproc/atmos/engines.py
LibRadTran
¶
Bases: LibRadTranRT
libRadtran with a selectable Shettle haze type on top of aerosol_default.
Ozone and CO2 come from the MODTRAN template ISOFIT writes (O3STR,
CO2MX); the runner edits O3STR there when ozone is given.