Ejemplo n.º 1
0
    def synchro_on_scanning(self,sfscanning,timehistory,meashistory,sfscanrange=None):
        """
        Calculate the average of tensmon or humidity informations on each x-ray scans performed. A trick to improve rapidity of calculation have been set.
        @param sfscanning  : specfile of the scanning history
        @param timehistory,meashistory : time and values of measurements performed on tensmon of hummon.
        @param sfscanrange : list of scannumber to synchronize
        """
        scannumbers = SpecTools.get_NumberOfScans(sfscanning)
        averageshistory = []
        idx = 0
        if sfscanrange == None:
            scanrange = range(1,scannumbers+1)
        else:
            scanrange = sfscanrange

        for scan in scanrange:
            scan_starttime = SpecTools.get_ScanStartingTime(self.scanning,scan)
            idx_ini,val_ini = NumpyTools.find_nearest(scan_starttime,timehistory)
            idx = idx_ini
            scan_endtime   = SpecTools.get_ScanEndingTime(self.scanning,scan)
            idx_end,val_end = NumpyTools.find_nearest(scan_endtime,timehistory)
            idx = idx_end
            avghistory = numpy.mean(meashistory[idx_ini:idx_end])
            averageshistory.append(avghistory)
            print scan, scan_starttime, scan_endtime, idx_ini, idx_end, avghistory 
        self.scanning_scannumbers = range(1,scannumbers+1)
        self.scanning_measurements = numpy.array(averageshistory)