Source code for pycif.plugins.models.lmdz_old.io.outputs2native

from .....utils.datastores.empty import init_empty

from .outputs.read_sim import read_sim
from .outputs.fetch_end import fetch_end

sim_outputs = ("concs", "pressure", "dpressure", "airm", "hlay")


[docs] def outputs2native( self, data2dump, input_type, di, df, runsubdir, mode="fwd", dump=True, onlyinit=False, check_transforms=False, **kwargs ): """Reads outputs to pycif objects. If the mode is 'fwd' or 'tl', only observation-like outputs are extracted. For the 'adj' mode, all outputs relative to model sensitivity are extracted. Dumps to a NetCDF file with output concentrations if needed Args: self (pycif.utils.classes.models.Model): Model object runsubdir (str): current sub-sumilation directory mode (str): running mode; one of: 'fwd', 'tl', 'adj'; default is 'fwd' dump (bool): dumping outputs or not; default is True Return: dict """ ddi = min(di, df) ddf = max(di, df) if not hasattr(self, "dataobs"): self.dataobs = {spec: init_empty() for spec in self.chemistry.acspecies.attributes} # If no data to extract, pass if not data2dump: return data2dump # Read simulations if input_type is "concs" if input_type in sim_outputs and not onlyinit: return read_sim(self, data2dump, runsubdir, mode, ddi, ddf) # Fetch end concentration if input_type is endconcs elif input_type == "endconcs": return fetch_end( self, data2dump, runsubdir, mode, ddi, ddf, check_transforms=check_transforms, onlyinit=onlyinit ) else: return data2dump