def doDisplayWorkflow(self, workflow: Workflow): currentwidget = self.reducetabview.currentWidget() data = currentwidget.header.meta_array('primary')[currentwidget.timeIndex(currentwidget.timeLine)[0]] ai = self.calibrationsettings.AI('pilatus2M') ai.detector = detectors.Pilatus2M() mask = self.maskingworkflow.lastresult[0]['mask'].value if self.maskingworkflow.lastresult else None outputwidget = currentwidget def showDisplay(*results): outputwidget.setResults(results) workflow.execute(None, data=data, ai=ai, mask=mask, callback_slot=showDisplay, threadkey='display')
def doSimulateWorkflow(self, workflow: Workflow): data = self.calibrationtabview.currentWidget().header.meta_array('primary')[0] ai = self.calibrationsettings.AI('pilatus2M') ai.detector = detectors.Pilatus2M() calibrant = self.calibrationpanel.parameter['Calibrant Material'] outputwidget = self.calibrationtabview.currentWidget() def showSimulatedCalibrant(result=None): outputwidget.setCalibrantImage(result['data'].value) workflow.execute(None, data=data, ai=ai, calibrant=calibrant, callback_slot=showSimulatedCalibrant, threadkey='simulate')
def doCalibrateWorkflow(self, workflow: Workflow): data = self.calibrationtabview.currentWidget().header.meta_array('primary')[0] device = self.calibrationpanel.parameter['Device'] ai = self.calibrationsettings.AI('pilatus2M') ai.detector = detectors.Pilatus2M() c = calibrant.ALL_CALIBRANTS('AgBh') def setAI(result): self.calibrationsettings.setAI(result['ai'].value, device) self.doMaskingWorkflow(self.maskingworkflow) workflow.execute(None, data=data, ai=ai, calibrant=c, callback_slot=setAI, threadkey='calibrate')
def addDevice(self, device): if device: try: self.setSilence(True) devicechild = DeviceParameter(device) self.addChild(devicechild) ai = AzimuthalIntegrator(wavelength=self['Wavelength']) ai.detector = detectors.Pilatus2M() self.AIs[device] = ai self.multiAI.ais = list(self.AIs.values()) finally: self.setSilence(False)
def test_FourierCalibrationWorkflow(): workflow = FourierCalibrationWorkflow() data = fabio.open('/home/rp/data/YL1031/AGB_5S_USE_2_2m.edf').data ai = AzimuthalIntegrator() ai.set_wavelength(124e-12) ai.detector = detectors.Pilatus2M() c = calibrant.ALL_CALIBRANTS('AgBh') print( workflow.execute(None, data=data, ai=ai, calibrant=c, callback_slot=print))
def doMaskingWorkflow(self, workflow: Workflow): if not self.checkPolygonsSet(workflow): data = self.calibrationtabview.currentWidget().header.meta_array('primary')[0] ai = self.calibrationsettings.AI('pilatus2M') ai.detector = detectors.Pilatus2M() outputwidget = self.masktabview.currentWidget() def showMask(result=None): if result: outputwidget.setMaskImage(result['mask'].value) else: outputwidget.setMaskImage(None) self.doDisplayWorkflow(self.displayworkflow) self.doReduceWorkflow(self.reduceworkflow) workflow.execute(None, data=data, ai=ai, callback_slot=showMask, threadkey='masking')
def doReduceWorkflow(self, workflow: Workflow): multimode = self.reduceplot.toolbar.multiplot.isChecked() currentwidget = self.reducetabview.currentWidget() data = currentwidget.header.meta_array('primary') if not multimode: data = [data[currentwidget.timeIndex(currentwidget.timeLine)[0]]] ai = self.calibrationsettings.AI('pilatus2M') ai.detector = detectors.Pilatus2M() ai = [ai] * len(data) mask = [self.maskingworkflow.lastresult[0]['mask'].value if self.maskingworkflow.lastresult else None] * len( data) outputwidget = self.reduceplot outputwidget.clear() def showReduce(*results): outputwidget.appendResult(results) workflow.execute_all(None, data=data, ai=ai, mask=mask, callback_slot=showReduce, threadkey='reduce')