malta.model =========== .. py:module:: malta.model Classes ------- .. autoapisummary:: malta.model.sink malta.model.emissions Functions --------- .. autoapisummary:: malta.model.run_model malta.model.create_output malta.model.create_sink malta.model.create_emissions Module Contents --------------- .. py:function:: run_model(years_in, emissions, sink, ics=None, dt=28800, trans_dir=None, convection=True) Runs 2D model for time period specified. :param years_in: Whole years for which to run model. :type years_in: array/list :param emissions: Class containing emissions. :type emissions: class :param sink: Class containing sinks. :type sink: sink :param ics: Initial conditions of model. Defaults to None (zero initial conditions). :type ics: array, optional :param dt: Time step in seconds (recommended 8 hrs or less). Defaults to 8 hours. :type dt: float, optional :param trans_dir: Path to directory containing transport files. Defaults to None. :type trans_dir: str, optional :param convecton: Whether to use the convective scheme (much slower). Defaults to True. :type convecton: bool, optional :returns: xarray dataset containing outputs from model. :rtype: dataset .. py:function:: create_output(ds_out, c_arr_mm, cend, loss_mm, lifetime, lifetime_trop, lifetime_strat, B, B_trop, emissions, L, L_trop) Put variables into xarray dataset .. py:class:: sink(J_loss=None, OH_field=None, A_OH=None, ER_OH=None, Cl_field=None, A_Cl=None, ER_Cl=None, O1D_field=None, A_O1D=None, ER_O1D=None) Class to build single container for sink processes without passing loss fields into model or having to load them during run time. :param J_loss: Photolysis loss rate in each grid cell. Defaults to None. :type J_loss: array, optional :param OH_field: OH concentration in each grid cell. Defaults to None. :type OH_field: array, optional :param A_OH: Arrhenius A constant for OH. Defaults to None. :type A_OH: float, optional :param ER_OH: Arrhenius E/R constant for OH. Defaults to None. :type ER_OH: float, optional :param Cl_field: Cl loss rate in each grid cell. Defaults to None. :type Cl_field: float, optional :param A_Cl: Arrhenius A constant for Cl. Defaults to None. :type A_Cl: float, optional :param ER_Cl: Arrhenius E/R constant for Cl. Defaults to None. :type ER_Cl: float, optional :param O1D_field: O1D concentration in each grid cell. Defaults to None. :type O1D_field: array, optional :param A_O1D: Arrhenius A constant for O1D. Defaults to None. :type A_O1D: float, optional :param ER_O1D: Arrhenius E/R constant for O1D. Defaults to None. :type ER_O1D: float, optional .. py:attribute:: J_loss :value: None .. py:attribute:: OH_field :value: None .. py:attribute:: Cl_field :value: None .. py:attribute:: O1D_field :value: None .. py:attribute:: A_OH :value: None .. py:attribute:: ER_OH :value: None .. py:attribute:: A_Cl :value: None .. py:attribute:: ER_Cl :value: None .. py:attribute:: A_O1D :value: None .. py:attribute:: ER_O1D :value: None .. py:method:: losses(cin, dt, month, Temp=None) Computes losses in mole fraction field .. py:method:: first_order_loss(c_in, dt, sink) Compute first order loss in mol/mol/s .. py:method:: arrhenius_loss(c_in, dt, A, ER, field, Temp) Compute loss using arrhenius rate constant .. py:method:: arrhenius_rate_constant(A, ER, Temp) Compute arrhenius rate constant .. py:class:: emissions(emis, species, lat, mva, dz, R=6378100.0, emis_units='Gg', mf_units='ppt', monthly=False) Class to build single container for emissive processes. :param emis: Emissions for each year for each latitude. :type emis: array :param species: Species to emit. :type species: string :param lat: Latitude at grid cell edges. :type lat: array :param mva: Molar density of air (mol/m3) for each vertical layer. :type mva: array :param dz: Uniform vertical grid spacing. :type dz: array :param R: Radius of Earth in metres. Defaults to 6378.1e3. :type R: float, optional :param emis_units: Units of emissions (g, kg, Mg, Gg, Tg). Defaults to "Gg". :type emis_units: str, optional :param mf_units: Units of mole fractions (ppq, ppt, ppb, ppm). Defaults to "ppt". :type mf_units: str, optional .. py:attribute:: species .. py:attribute:: molmass .. py:attribute:: unit_scale :value: 1000000000000.0 .. py:attribute:: emis_scale :value: 1000000000.0 .. py:attribute:: mol_air_bx .. py:attribute:: ny .. py:attribute:: nz .. py:attribute:: emis .. py:attribute:: monthly :value: False .. py:method:: emit(dt, year, month=None) Function to emit emissions .. py:function:: create_sink(species) Function to create sink class from species .. py:function:: create_emissions(species, emis, distribute='uniform', weights=None, R=6378100.0, emis_units='Gg', mf_units='ppt', trans_dir=None, monthly=False) Wrapper to create emissions class. Provides a convenient way to distribute the global total of emissions. Emissions distributions have been interpolated from multiple data sources: "land"/"ocean" Olsen et al., 2001 (https://doi.org/10.1641/0006-3568(2001)051[0933:TEOTWA]2.0.CO;2) "population" GPWv4, average of 2000-2020 (https://doi.org/10.7927/H4JW8BX5) "gdp" Kammu et al., 2020, 1990-2015 average (https://doi.org/10.5061/dryad.dk1j0) :param species: Species to emit. :type species: str :param emis: Array of total global emissions for each year of run. :type emis: array :param distribute: How to distribute global total emissions. Options are: "uniform", "land", "ocean", "population" and "gdp". Defaults to "uniform". :type distribute: str, optional :param weights: Option to provide custom weights to distribute emissions in each latitude box. Can either be of length of latitudes or different weights for each year. Defaults to None. :type weights: array, optional :param R: Radius of Earth. Defaults to 6378.1e3. :type R: float, optional :param emis_units: Units of emissions (g, kg, Mg, Gg, Tg). Defaults to "Gg". :type emis_units: str, optional :param mf_units: Units of mole fractions (ppq, ppt, ppb, ppm). Defaults to "ppt". :type mf_units: str, optional :param trans_dir: Path to directory containing transport files. Defaults to None. :type trans_dir: str, optional :returns: Class containing emissoins information. :rtype: class