Source code for taurex.data.profiles.chemistry.gas.constantgas

from .gas import Gas
from taurex.util import molecule_texlabel
import numpy as np


[docs]class ConstantGas(Gas): """ Constant gas profile. Molecular abundace is constant at each layer of the atmosphere Parameters ----------- molecule_name : str Name of molecule mix_ratio : float Mixing ratio of the molecule """ def __init__(self, molecule_name='H2O', mix_ratio=1e-5): super().__init__('ConstantGas', molecule_name) self._mix_ratio = mix_ratio self.add_active_gas_param() @property def mixProfile(self): """ Mixing profile Returns ------- mix: :obj:`array` Mix ratio for molecule at each layer """ return self._mix_array
[docs] def initialize_profile(self, nlayers=None, temperature_profile=None, pressure_profile=None, altitude_profile=None): self._mix_array = self._mix_ratio*np.ones(nlayers)
[docs] def add_active_gas_param(self): """ Adds the mixing ratio as a fitting parameter as the name of the molecule """ mol_name = self.molecule param_name = self.molecule param_tex = molecule_texlabel(mol_name) def read_mol(self): return self._mix_ratio def write_mol(self, value): self._mix_ratio = value read_mol.__doc__ = f"{mol_name} constant mix ratio (VMR)" fget = read_mol fset = write_mol bounds = [1.0e-12, 0.1] default_fit = False self.add_fittable_param(param_name, param_tex, fget, fset, 'log', default_fit, bounds)
[docs] def write(self, output): gas_entry = super().write(output) gas_entry.write_scalar('mix_ratio', self._mix_ratio) return gas_entry
[docs] @classmethod def input_keywords(self): return ['constant', ]