Esempio n. 1
0
class TestTwodGaussianPeak(unittest.TestCase):

	def setUp(self):
		self.ds = loadImageIntoSFH(TESTFILE)[0]
		self.p = TwodGaussianPeak()
		
	def test_process(self):
		dsyaxis = dsxaxis = 0# None # STUB
		result = self.p._process(self.ds, dsxaxis, dsyaxis)
		expected = [2.2549502730080174E-13,  # background
				 455.429215942832,  # peakx
				 401.3221935111784,  # peaky
				 20457.29,  # topx
				 34128.17,  # topyy
				 188.05936891187554,  # fwhmx
				 110.05648002510901,  # fwhmy
				 16255.505308303551]  # fwhmarea
		self.assert_(close(result, expected),"%s\n is not close to expected:\n%s"%(`result`,`expected`))


	def testProcess(self):
		result=self.p.process(self.ds, 0, 0)
Esempio n. 2
0
class TestTwodGaussianPeak(unittest.TestCase):
    def setUp(self):
        self.ds = loadImageIntoSFH(TESTFILE)[0]
        self.p = TwodGaussianPeak()

    def test_process(self):
        dsyaxis = dsxaxis = 0  # None # STUB
        result = self.p._process(self.ds, dsxaxis, dsyaxis)
        expected = [
            2.2549502730080174E-13,  # background
            455.429215942832,  # peakx
            401.3221935111784,  # peaky
            20457.29,  # topx
            34128.17,  # topyy
            188.05936891187554,  # fwhmx
            110.05648002510901,  # fwhmy
            16255.505308303551
        ]  # fwhmarea
        self.assert_(
            close(result, expected),
            "%s\n is not close to expected:\n%s" % ( ` result `, ` expected `))

    def testProcess(self):
        result = self.p.process(self.ds, 0, 0)
Esempio n. 3
0
def cameraFactory(cam_name, peak2d_name, max2d_name, camdet, camdet_for_snaps):
    # ----------------------------------------------------------------------
    try:
        print "Creating %s, %s and %s" % \
            (cam_name, peak2d_name, max2d_name)
        # This has no hardware triggered mode configured. This class is used to hijack its DetectorSnapper implementation.
        cam = SwitchableHardwareTriggerableProcessingDetectorWrapper(
            cam_name, camdet, None, camdet_for_snaps, [],
            panel_name=None, panel_name_rcp='Plot 1',
            toreplace=None, replacement=None, iFileLoader=TIFFImageLoader,
            fileLoadTimout=15, returnPathAsImageNumberOnly=True)
        peak2d = DetectorDataProcessorWithRoi(peak2d_name, cam, [TwodGaussianPeak()])
        max2d = DetectorDataProcessorWithRoi(max2d_name, cam, [SumMaxPositionAndValue()])
    # ----------------------------------------------------------------------
        return cam, peak2d, max2d
    except:
        import sys
        typ, exception, traceback = sys.exc_info()
        handle_messages.log(None, "%s error -  " % cam_name, typ, exception, traceback, False)
Esempio n. 4
0
        replacement=None,
        iFileLoader=TIFFImageLoader,
        fileLoadTimout=15,
        returnPathAsImageNumberOnly=True)
    pimteSMPV.display_image = True
    #pimteSMPV.processors=[DetectorDataProcessorWithRoi('max', pimte1det, [SumMaxPositionAndValue()], False)]
    pimteSMPV.processors = [
        DetectorDataProcessor('max', pimte1det, [SumMaxPositionAndValue()],
                              False)
    ]

    pimte2d = SwitchableHardwareTriggerableProcessingDetectorWrapper(
        'pimte2d',
        pimte1det,
        None,
        pimte1det_for_snaps,
        panel_name=None,
        panel_name_rcp='Plot 1',
        toreplace=None,
        replacement=None,
        iFileLoader=TIFFImageLoader,
        fileLoadTimout=15,
        returnPathAsImageNumberOnly=True)
    pimte2d.display_image = True
    #pimteSMPV.processors=[DetectorDataProcessorWithRoi('max', pimte1det, [TwodGaussianPeak()], False)]
    pimte2d.processors = [
        DetectorDataProcessor('max', pimte1det, [TwodGaussianPeak()], False)
    ]

except:
    localStation_exception(sys.exc_info(), "creating pimte objects")
Esempio n. 5
0
print "             Use pil1.setFile('path/','prefix') to set the image directory and name"
print "             Current image directory: ", pil1.getFilePath();
print "             Current image prefix: ",    pil1.getFilePrefix();


#pilatus_processors=[SumMaxPositionAndValue(), TwodGaussianPeak()];
#pil1da = DetectorAnalyserClass("pil1da", pil1, ps100k_processors, panel_name="Pilatus100K", iFileLoader=PilatusTiffLoader);
#pil1da.setAlive(False);

#For the RCP GUI
print "Usage: use pil1stats to find the key statistics values such as minium, maxium  with locations, sum, mean and standard deviation"
pil1stats = DetectorAnalyserClass("pil1stats", pil1, [MinMaxSumMeanDeviationProcessor()], panelName="Area Detector", iFileLoader=PilatusTiffLoader);
pil1stats.setAlive(True);

print "Usage: use pil1fit for peak fitting"
pil1fit = DetectorAnalyserClass("pil1fit", pil1, [TwodGaussianPeak()], panelName="Area Detector", iFileLoader=PilatusTiffLoader);
pil1fit.setAlive(True);

print "Usage: use pilroi for Region Of Interest operations"
print "For example: pil1roi.setRoi(starX, starY, width, height) to set up the ROI"
print "             pil1roi.getRoi(starX, starY, width, height) to get current ROI"
print "             pil1roi.getGuiRoi(starX, starY, width, height) to set ROI info from GUI selection"
print "             pil1roi.createMask(low, high) to mask out pixels out of low/high region"
print "             pil1roi.setAlive(True) to enable the data display on GUI panel"
print "             pil1roi.setAlive(False) to stop data update on GUI panel"
pil1roi = DetectorAnalyserWithRectangularROIClass("pil1roi", pil1, [MinMaxSumMeanDeviationProcessor()], panelName="Area Detector", iFileLoader=PilatusTiffLoader);

pil1roi.setAlive(True);
pil1roi.setPassive(False);
#pil1roi.clearRoi();
#pil1roi.setRoi(0,0,100,100);
Esempio n. 6
0
                              dummyCamera, [SumProcessor()],
                              panelName=viewerName,
                              iFileLoader=PilatusTiffLoader)
dcsum.setAlive(True)

print "Usage: use dcstats to find the key statistics values such as minium, maxium  with locations, sum, mean and standard deviation"
dcstats = AnalyserDetectorClass("dcstats",
                                dummyCamera,
                                [MinMaxSumMeanDeviationProcessor()],
                                panelName=viewerName,
                                iFileLoader=PilatusTiffLoader)
dcstats.setAlive(True)

print "Usage: use dcfit for peak fitting"
dcfit = AnalyserDetectorClass("dcfit",
                              dummyCamera, [TwodGaussianPeak()],
                              panelName=viewerName,
                              iFileLoader=PilatusTiffLoader)
dcfit.setAlive(True)

dcroi = AnalyserWithRectangularROIClass("dcroi",
                                        dummyCamera,
                                        [MinMaxSumMeanDeviationProcessor()],
                                        panelName=viewerName,
                                        iFileLoader=PilatusTiffLoader)

dcroi.setAlive(True)
#dcroi.setPassive(False);
#dcroi.clearRoi();

#dcroi.setRoi(0,0,100,100);
Esempio n. 7
0
	def setUp(self):
		self.ds = loadImageIntoSFH(TESTFILE)[0]
		self.p = TwodGaussianPeak()
Esempio n. 8
0
from gdascripts.analysis.datasetprocessor.twod.SumMaxPositionAndValue import SumMaxPositionAndValue
from gdascripts.analysis.datasetprocessor.twod.TwodGaussianPeak import TwodGaussianPeak
from utils.ExceptionLogs import localStation_exception
import sys
try: # Based in I16 configuration GDA-mt/configurations/i16-config/scripts/localStation.py at 3922edf
    global pixis1det, pixis1det_for_snaps # require beans from PIXIS_nx.xml

    # the pixis has no hardware triggered mode configured. This class is used to hijack its DetectorSnapper implementation.
    pixis = SwitchableHardwareTriggerableProcessingDetectorWrapper('pixis', pixis1det, None, pixis1det_for_snaps, [], panel_name=None, panel_name_rcp='Plot 1', toreplace=None, replacement=None, iFileLoader=TIFFImageLoader, fileLoadTimout=15, returnPathAsImageNumberOnly=True)

    pixisSMPV = SwitchableHardwareTriggerableProcessingDetectorWrapper(
        'pixisSMPV', pixis1det, None, pixis1det_for_snaps,
        panel_name=None, panel_name_rcp='Plot 1',
        toreplace=None, replacement=None, iFileLoader=TIFFImageLoader,
        fileLoadTimout=15, returnPathAsImageNumberOnly=True)
    pixisSMPV.display_image = True
    #pixisSMPV.processors=[DetectorDataProcessorWithRoi('max', pixis1det, [SumMaxPositionAndValue()], False)]
    pixisSMPV.processors=[DetectorDataProcessor        ('max', pixis1det, [SumMaxPositionAndValue()], False)]

    pixis2d = SwitchableHardwareTriggerableProcessingDetectorWrapper(
        'pixis2d', pixis1det, None, pixis1det_for_snaps,
        panel_name=None, panel_name_rcp='Plot 1',
        toreplace=None, replacement=None, iFileLoader=TIFFImageLoader,
        fileLoadTimout=15, returnPathAsImageNumberOnly=True)
    pixis2d.display_image = True
    #pixisSMPV.processors=[DetectorDataProcessorWithRoi('max', pixis1det, [TwodGaussianPeak()], False)]
    pixis2d.processors=[DetectorDataProcessor        ('max', pixis1det, [TwodGaussianPeak()], False)]

except:
    localStation_exception(sys.exc_info(), "creating pixis objects")
Esempio n. 9
0
 def setUp(self):
     self.ds = loadImageIntoSFH(TESTFILE)[0]
     self.p = TwodGaussianPeak()
Esempio n. 10
0
from gdascripts.scannable.detector.ProcessingDetectorWrapper import SwitchableHardwareTriggerableProcessingDetectorWrapper
from uk.ac.diamond.scisoft.analysis.io import TIFFImageLoader
from gdascripts.scannable.detector.DetectorDataProcessor import DetectorDataProcessor,\
    DetectorDataProcessorWithRoi
from gdascripts.analysis.datasetprocessor.twod.SumMaxPositionAndValue import SumMaxPositionAndValue
from gdascripts.analysis.datasetprocessor.twod.TwodGaussianPeak import TwodGaussianPeak
import sys
from utils.ExceptionLogs import localStation_exception
from gdaserver import pimtetiff

print "-"*100
print "Create PIMTE detector wrapper to support TIFF image process and plot in 'Plot 1' view"
print "    1. 'pimteSMPV'  - show image in 'Plot 1' view and maximum positions, maximum intensity, and total intensity;"
print "    2. 'pimte2d'    - show image in 'Plot 1' view and background, peakx+xoffset, peaky+yoffset, topx, topy, fwhmx, fwhmy, fwhmarea of the image"

try: # Based in I16 configuration GDA-mt/configurations/i16-config/scripts/localStation.py at 3922edf

    # the pimte has no hardware triggered mode configured. This class is used to hijack its DetectorSnapper implementation.
    pimte_tiff = SwitchableHardwareTriggerableProcessingDetectorWrapper(
        'pimte_tiff', pimtetiff, None, None, [], 
        panel_name=None, panel_name_rcp='Plot 1', 
        toreplace=None, replacement=None, iFileLoader=TIFFImageLoader, 
        fileLoadTimout=15, returnPathAsImageNumberOnly=True)

    #pimteSMPV = DetectorDataProcessorWithRoi('pimteSMPV', pimte_tiff, [SumMaxPositionAndValue()])
    pimteSMPV = DetectorDataProcessor('pimteSMPV', pimte_tiff, [SumMaxPositionAndValue()])
    #pimte2d = DetectorDataProcessorWithRoi('pimte2d', pimte_tiff, [TwodGaussianPeak()])
    pimte2d = DetectorDataProcessor('pimte2d', pimte_tiff, [TwodGaussianPeak()])

except:
    localStation_exception(sys.exc_info(), "creating pimte objects")
Esempio n. 11
0
from gdascripts.scannable.detector.ProcessingDetectorWrapper import ProcessingDetectorWrapper, BodgedProcessingDetectorWrapper
from gdascripts.scannable.detector.DetectorDataProcessor import DetectorDataProcessor, DetectorDataProcessorWithRoi
from gdascripts.analysis.datasetprocessor.twod.TwodGaussianPeak import TwodGaussianPeak
from gdascripts.analysis.datasetprocessor.twod.SumMaxPositionAndValue import SumMaxPositionAndValue
from gdascripts.scannable.detector.dummy.focused_beam_dataset import CreateImageReadingDummyDetector

f = DummyPD("f")

pildet = CreateImageReadingDummyDetector.create(f)
pil = BodgedProcessingDetectorWrapper('pil', pildet, [], panel_name='Data Vector')

peak2d = DetectorDataProcessorWithRoi('peak2d', pil, [TwodGaussianPeak()])
max2d = DetectorDataProcessorWithRoi('max2d', pil, [SumMaxPositionAndValue()])

pos f 430
Esempio n. 12
0
	def setUp(self):
		self.det = MockDetector(TESTFILE)
		self.peak = DetectorDataProcessorWithRoi('peak', None, [TwodGaussianPeak()])
		self.pdw = ProcessingDetectorWrapper('test', self.det, [self.peak])
		self.peak.det = self.pdw
		self.pdw.display_image = False
Esempio n. 13
0
pilatusPortNumber = 41234;


##Create a Pilatus detector client from the factory and connect to the EPICS, which handles the camserver operation
pf = PilatusFactory();
p1e = pf.create('p1e', PilatusInfo.PILATUS_TYPE_100K_EPICS);
pvRoot = 'BL07I-EA-PILAT-01:';
p1e.setup(pvRoot);

##Step 3. Create a GDA pseudo device that use the pilatus detector client
ps100k = PilatusPseudoDeviceClass('ps100k', 'p1e');
ps100k.setFile('pilatus100k/im4/','test');
ps100k.setAlive(False);


ps100k_processors=[SumMaxPositionAndValue(), TwodGaussianPeak()];
pda = DetectorAnalyserClass('pda', ps100k, ps100k_processors, panel_name='Pilatus', iFileLoader=PilatusTiffLoader);
pda.setAlive(False);

pdamax = DetectorAnalyserClass('pdamax', ps100k, [SumMaxPositionAndValue()], panel_name='Pilatus', iFileLoader=PilatusTiffLoader);
pdamax.setAlive(False);

pdapeak = DetectorAnalyserClass('pdapeak', ps100k, [TwodGaussianPeak()], panel_name='Pilatus', iFileLoader=PilatusTiffLoader);
pdapeak.setAlive(False);

#pdaRoi = DetectorWithROIClass('pdaRoi', ps100k, [DummyTwodPorcessor()], panel_name='Pilatus', iFileLoader=PilatusTiffLoader);
pdaroi = DetectorWithROIClass('pdaroi', ps100k, [SumMaxPositionAndValue()], panel_name='Pilatus', iFileLoader=PilatusTiffLoader);
pdaroi.setAlive(True);
#pdaRoi.setRoi(0,0,100,100);
pdaroi.setRoi(240, 100, 100, 50);