Source code for pycif.plugins.models.lmdz_acc.io.outputs2native_adj

import datetime
import glob
import os

import numpy as np
import pandas as pd
import xarray as xr

from .....utils.datastores.empty import init_empty
from .inputs.make_endconcs import make_endconcs
from .inputs.obs import make_obs


[docs] def outputs2native_adj( self, data2dump, input_type, datei, datef, runsubdir, mode="fwd", dump=True, onlyinit=False, do_simu=True, 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(datei, datef) ddf = max(datei, datef) # Hour steps of the sub-run hour_dates = pd.date_range(ddi, ddf, freq="1h") for trid in data2dump: mod_input = trid[0] trcr = trid[1] if mod_input != "endconcs": if onlyinit: make_obs( self, ddi, data2dump[trid][ddi], runsubdir, "fwd", trcr, input_type, do_simu, ) else: make_obs( self, ddi, data2dump[trid][ddi], runsubdir, "adj", trcr, input_type, do_simu, ) elif mod_input == "endconcs": if not onlyinit: make_endconcs( self, data2dump, runsubdir, mode, ddi, ddf, onlyinit, check_transforms=check_transforms, )