Source code for pycif.plugins.transforms.complex.diagmet.propagate_incompatible

import numpy as np


[docs] def propagate_incompatible_domain(self, trans_mapper, trid_in, mode="backward"): meteo_parameters_3d = self.model.meteo_parameters_3d meteo_parameters_2d = self.model.meteo_parameters_2d domains = [trans_mapper["outputs"][trid_out]["domain"] for trid_out in trans_mapper["outputs"] ] # Get 3D domains and check if incompatible domains_3d = [ d for d in domains if d.nlev > 1 ] domain_3d = domains_3d[0] for dom3d in domains_3d: if dom3d != domain_3d: raise Exception( "More than two output 3D domains in diagmet. This should not happen" ) # Get 3D domains and check if incompatible domains_2d = [ d for d in domains if d.nlev == 1 ] domain_2d = domains_2d[0] for dom2d in domains_2d: if dom2d != domain_2d: raise Exception( "More than two output 2D domains in diagmet. This should not happen" ) # Now fetch the correct domain trans_mapper["inputs"][trid_in]["domain"] = \ domain_2d if trid_in in self.meteo_parameters_2d_in else domain_3d