Source code for pycif.plugins.models.template.ini_mapper

import datetime
import numpy as np
from logging import info

from ....utils.classes.setup import Setup
from ....utils.classes.domains import Domain

from ....utils.check.errclass import PluginError


[docs]def ini_mapper(model, general_mapper={}, backup_comps={}, transforms_order=[], ref_transform="", transform_name="", all_transforms=None, **kwargs): if model.empty_mapper: mapper = {"inputs": {}, "outputs": {}} if model.only_outputs: output_intervals = { ddi: np.append( model.tstep_dates[ddi][:-1, np.newaxis], model.tstep_dates[ddi][1:, np.newaxis], axis=1) for ddi in model.tstep_dates} mapper = { "inputs": {}, "outputs": { ("concs", spec): { "force_loadout": True, "input_dates": output_intervals, "domain": model.domain, "sampled": True, "sparse_data": False, } for spec in model.chemistry.acspecies.attributes }} # Update the transform so it can start the pipeline getattr(all_transforms, transform_name).start_pipe = True if model.include_fluxes: input_intervals = { ddi: np.append( model.input_dates[ddi][:, np.newaxis], model.input_dates[ddi][:, np.newaxis] + datetime.timedelta(hours=1), axis=1) for ddi in model.input_dates} mapper["inputs"] = { ("flux", spec): { "input_dates": input_intervals, "force_dump": True, "sparse_data": False } for spec in model.chemistry.emis_species.attributes } # Update the transform so it can start the pipeline getattr(all_transforms, transform_name).start_pipe = True info("The model was initialized with the following mapper:") info(mapper) return mapper