def from_dict(d, t=None): ''' Convert the dictionary to a detector model Params: d The dictionary of parameters t The template dictionary to use Returns: The detector model ''' from dxtbx.model import Detector, HierarchicalDetector # If None, return None if d == None: if t == None: return None else: return from_dict(t, None) elif t != None: if isinstance(d, list): d = { 'panels' : d } d2 = dict(t.items() + d.items()) else: if isinstance(d, list): d = { 'panels' : d } # Create the model from the dictionary if "hierarchy" in d: return HierarchicalDetector.from_dict(d) else: return Detector.from_dict(d)
def _detector_from_dict(obj): ''' Get the detector from a dictionary. ''' from dxtbx.model import Detector, HierarchicalDetector if 'hierarchy' in obj: return HierarchicalDetector.from_dict(obj) else: return Detector.from_dict(obj)
def load_models(obj): try: beam = Beam.from_dict(blist[obj['beam']]) except Exception: beam = None try: dobj = dlist[obj['detector']] if 'hierarchy' in dobj: detector = HierarchicalDetector.from_dict(dobj) else: detector = Detector.from_dict(dobj) except Exception: detector = None try: gonio = Goniometer.from_dict(glist[obj['goniometer']]) except Exception: gonio = None try: scan = Scan.from_dict(slist[obj['scan']]) except Exception: scan = None return beam, detector, gonio, scan