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