Source code for pycif.plugins.obsoperators.standard.transforms.utils.propagate_parameters

import copy


[docs] def propagate_parameters(all_transforms, mapper): parameters2propagate = { "force_loadin": False, "loadin_perturb_full_vertical": True, "surface_level": 0 } # Propagates backwards to precursors for transform in all_transforms.attributes[::-1]: transf = getattr(all_transforms, transform) transf_mapper = mapper[transform] # Propagate outputs to inputs for trid in transf_mapper["inputs"]: if trid in transf_mapper["outputs"]: for p2prop, default_val in parameters2propagate.items(): parameter_out = \ transf_mapper["outputs"][trid].get(p2prop, default_val) if parameter_out != default_val: transf_mapper["inputs"][trid][p2prop] = parameter_out # Loop over precursors to propagate info to them precursors = transf_mapper["precursors"] for trid in precursors: for p2prop, default_val in parameters2propagate.items(): parameter_ref = \ transf_mapper["inputs"][trid].get(p2prop, default_val) for tr in precursors[trid]: if parameter_ref != default_val: mapper[tr]["outputs"][trid][p2prop] = \ parameter_ref