コード例 #1
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Sep  5 21:07:23 2019

@author: ext-poulter_b
"""
import numpy as np
from matplotlib import pyplot as plt
from TimeCorrection import TimeCorrection
import ProcessedDataClass as PDC

XASProData = PDC.XASProData()
numstds = 4
minIzero = 0.015
lin_filter = 0.03
minTime = -5
maxTime = 30


def FilterData(xasrawdata, PlotOn, time_zero_mm):
    # numstds is the number of standard deviations to take from the median
    # minIzero sets the minimum permissable Izero
    # lin_filter sets upper and lower bounds for the filter
    # if time_zero_mm > 0:

    FilterParameters = [
        'numstds:' + str(numstds) + ' minIzero:' + str(minIzero) +
        ' lin_filter:' + str(lin_filter), 'minTime: ' + str(minTime),
        'maxTime: ' + str(maxTime)
    ]
コード例 #2
0
    FileNums = [106]
    xesRawData = loadData(FileNums, "XES", 1)

if ReLoadData:

    with open(folder + "xesRawData.pkl", "rb") as f:
        xesRawData = pickle.load(f)

confolder = "D://LCLS_Data/LCLS_python_data/XES_conversion_info/"
exists = os.path.isfile(confolder + "t0.pkl")

if exists:
    with open(confolder + "t0.pkl", "rb") as f:
        t0 = pickle.load(f)

    xesProData = PDC.XESProcessedData(TTDelay=1000 * xesRawData.TimeTool -
                                      1500 - t0)

    print('read in t0')
else:
    xesProData = PDC.XESProcessedData(TTDelay=1000 * xesRawData.TimeTool)

#xesProData = PDC.XESProcessedData(TTDelay = 1000*xesRawData.TimeTool)

xesProData.changeValue(UniAngle=np.unique(xesRawData.Angle))
#xesProData.changeValue(RowWOffset = xesRawData.RowlandY - xesRawData.Offset)
xesProData.changeValue(RowWOffset=xesRawData.RowlandY)

xesProData.makeLaserXES(xesRawData, MaxTime, MinTime, FPlots)
#xesProData.energyConversion(True)

UA = 75.445
コード例 #3
0
import numpy as np
import json
import os
from matplotlib import pyplot as plt
from scipy.optimize import curve_fit
from alvra_tools.load_data import *
from alvra_tools.channels import *
from alvra_tools.utils import errfunc_sigma, errfunc_fwhm
from LoadData import LoadData
from Filter import FilterData
import pickle
from make_bar_stamp import make_bar_stamp
from GetXES import get_xes_pumped
import ProcessedDataClass as PDC

rixsprodata = PDC.RIXSProData()
scannum = [7]
name = "2900eV_Rubpy3_pink_Cl3"
loadDir = "/das/work/p17/p17983/SwissFEL19DA/PostExperiment/Ben/Processed/RuBpy3/XES/Calibration/" + name + "/"
saveDir = "/das/work/p17/p17983/SwissFEL19DA/PostExperiment/Ben/Processed/RuBpy3/XES/Calibration/" + name + "/roi2/"
if not os.path.isdir(saveDir):
    os.mkdir(saveDir)
#
#with open(loadDir + "xasrawdata.pkl", "rb") as f:
#    xasrawdata = pickle.load(f)

filename_base = name + '%02d' % scannum[0] + "_step00"
scan_name = name + '%02d' % scannum[0]
DIR = '/das/work/p17/p17983/cropped_data/' + name + '/'
DIRBS = "/sf/alvra/data/p17983/raw/"
#numsteps = len(xasrawdata.Energy)
コード例 #4
0
plt.fill_between(Energy, stdev_high, stdev_low, alpha=0.3, color='blue')
plt.xlabel('energy (eV)')
plt.ylabel('Delta T / T')
plt.title('XAS')

plt.figure()
plt.plot(Energy, TFY_Difference)
plt.xlabel('energy (eV)')
plt.ylabel('absorption')



Dir = 'C:/Users/poult/Documents/Research/Beamtimes/SwissFEL_July_2019/Transfered_Data/Processed/RuDimerACN/TFY' \
      '/600fs/'
save = True
XASAveraged = PDC.XASAveraged()
XASAveraged.changeValue(Averaged_Spectrum_unpumped=TFYunpump,
                        Scans_in_average=scans,
                        Shots_Per_Point_unpumped=TotalShotsUnpumped,
                        Energy=Energy)
if save:
    with open(Dir + "Pumped_Averaged_600fs.pkl", "wb") as f:
        pickle.dump(XASAveraged, f)
    sp.savemat(
        'C:/Users/poult/Documents/Research/Beamtimes/SwissFEL_July_2019/Transfered_Data/Jan-16-2020/DimerACN/DifferenceSpectra_time_filter.mat',
        mdict={
            'pumped': TFYpump,
            'Difference_time_filter': TFY_Difference,
            'TotalShots_time_filter': TotalShotsPumped,
            'TotalShots_time_filter': TotalShotsUnpumped,
            'Energy': Energy,
コード例 #5
0
ファイル: Peaks_Main.py プロジェクト: cliekhus/LCLS2015
    #FileNums = [408, 409, 410, 413, 417, 418] #[398, 401, 402, 403, 404, 405, 407]
    #FileNumsC = list(range(348, 366+1))
    #FileNumsC = list(range(348, 359+1))
    FileNumsC = list(range(350, 359 + 1))
    FileNumsW = list(range(342, 347 + 1))
    peaksRawDataA = loadData(FileNumsA, "Peaks", 1)
    peaksRawDataC = loadData(FileNumsC, "Peaks", 1)
    peaksRawDataW = loadData(FileNumsW, "Peaks", 1)

if ReLoadData:

    with open(folder + "xasPeaksData.pkl", "rb") as f:
        peaksRawData = pickle.load(f)

xasPeaksDataC = PDC.PeaksProcessedData(
    TTSteps=np.linspace(750, 1500, NumTTStepsC + 1),
    Delay=1000 * peaksRawDataC.TimeTool + peaksRawDataC.StageDelay * 1e15)
xasPeaksDataC.makeProPeaks(peaksRawDataC, DorH, FPlots)
XASDiffPlotC = xasPeaksDataC.XASOn_Norm - xasPeaksDataC.XASOff_Norm

t0 = find_t0_XAS(xasPeaksDataC.TTSteps, XASDiffPlotC, False, True)

xasPeaksDataW = PDC.PeaksProcessedData(
    TTSteps=np.linspace(mintime, maxtime, NumTTStepsW + 1),
    Delay=1000 * peaksRawDataW.TimeTool + peaksRawDataW.StageDelay * 1e15 - t0)
xasPeaksDataW.makeProPeaks(peaksRawDataW, DorH, FPlots)
XASDiffPlotW = xasPeaksDataW.XASOn_Norm - xasPeaksDataW.XASOff_Norm
XASDiffErrorW = np.sqrt(
    (np.square(xasPeaksDataW.Error_On) + np.square(xasPeaksDataW.Error_Off)) /
    np.square(xasPeaksDataW.XASOff_Norm) + np.square(xasPeaksDataW.Error_Off) *
    np.square(XASDiffPlotW) / np.square(np.square(xasPeaksDataW.XASOff_Norm)))
コード例 #6
0
if ReEnterData:

    FileNumsP = list(range(123, 130 + 1))
    #FileNumsP = list(range(131, 140+1))
    peaksRawDataP = loadData(FileNumsP, "Peaks", 1)

if ReLoadData:

    with open(folder + "peaksRawDataP.pkl", "rb") as f:
        peaksRawDataP = pickle.load(f)

    with open(folder + "FileNumsP.pkl", "rb") as f:
        FileNumsP = pickle.load(f)

peaksProDataP = PDC.PeaksProcessedData(
    Delay=1000 * peaksRawDataP.TimeTool + peaksRawDataP.StageDelay * 1e15,
    RowWOffset=peaksRawDataP.RowlandY - peaksRawDataP.Offset)
peaksProDataP.makeProPeaks(peaksRawDataP, NumTTSteps, MinTime, MaxTime, FPlots)

#plus2 data

if ReEnterData:

    FileNumsP2 = list(range(155, 164 + 1))
    #FileNumsP2 = list(range(143, 154+1))
    peaksRawDataP2 = loadData(FileNumsP2, "Peaks", 1)

if ReLoadData:

    with open(folder + "peaksRawDataP2.pkl", "rb") as f:
        peaksRawDataP2 = pickle.load(f)
コード例 #7
0
    FileNums = list(range(190, 190 + 1))
    xesRawData = loadData(FileNums, "XES", 2)

if ReLoadData:

    with open(folder + "xesRawData.pkl", "rb") as f:
        xesRawData = pickle.load(f)

confolder = "D://LCLS_Data/LCLS_python_data/XES_conversion_info/"
exists = os.path.isfile(confolder + "t0.pkl")

if exists:
    with open(confolder + "t0.pkl", "rb") as f:
        t0 = pickle.load(f)

    xesProData = PDC.XESProcessedData(TTDelay=1000 * xesRawData.TimeTool -
                                      1400 - t0)

    print('read in t0')
else:
    xesProData = PDC.XESProcessedData(TTDelay=1000 * xesRawData.TimeTool)

xesProData.changeValue(UniAngle=np.unique(xesRawData.Angle))
xesProData.changeValue(RowWOffset=xesRawData.RowlandY - xesRawData.Offset)

xesProData.makeProXES(xesRawData, MaxTime, MinTime, FPlots)
xesProData.energyConversion(True)

numboot = 1000
startT = time.time()

for ii in range(numboot):
コード例 #8
0
ファイル: XAS_EnergyScan.py プロジェクト: cliekhus/LCLS2015
    
    #FileNums = list(range(384, 395+1))
    FileNums = list(range(372, 395+1))
    #FileNums = list(range(371,373+1))+list(range(375,377+1))+list(range(379,382+1))+list(range(384,391+1))+list(range(393,394+1))
    #FileNums = list(range(372, 372+1))
    xasRawData = loadData(FileNums, "XAS", 1)


if ReLoadData:

    with open(folder + "xasRawData.pkl", "rb") as f:
        xasRawData = pickle.load(f)

if Redot0:
        
    xasProData = PDC.XASProcessedData(TTSteps = np.linspace(-200,100,NumTTSteps+1), TTDelay = 1000*xasRawData.TimeTool, \
                                  XEnergy = np.round(xasRawData.XEnergyRaw*1000,1)*1)
    uniXEnergy = np.unique(xasProData.XEnergy)
    xasProData.changeValue(UniXEnergy = uniXEnergy[np.logical_and(uniXEnergy >= 7100, uniXEnergy <= 7130)])
    xasProData.makeProXAS(xasRawData, True, FPlots)
    
    
    
    
    
    
    
    XASDiff = np.empty((NumTTSteps, len(xasProData.UniXEnergy)))
    Peak = np.empty(NumTTSteps)
    
    for ii in range(NumTTSteps):
        xasdiff = xasProData.XASOn_Norm[ii] - xasProData.XASOff_Norm