Example #1
0
    def __init__(self, files):
        mydata = {}
        self.counts = {}
        self.ei = {}
        self.ef = {}
        self.timestamp = {}

        for key, myfilestr in files.iteritems():
            mydatareader = readncnr.datareader()
            mydata[key] = mydatareader.readbuffer(myfilestr)
            self.counts[key] = N.array(mydata[key].data["Detector"])
            self.timestamp[key] = N.array(mydata[key].data["timestamp"])
            # TODO currently, we assume that the files are taken at the same points--is this safe?
            self.length = self.counts[key].shape[0]
            a2 = N.array(mydata[key].data["A2"])
            a6 = N.array(mydata[key].data["A5"]) * 2.0
            # TODO who's bright idea was it to have A6 listed as "IN"
            # TODO we also assume that the energies will be the same!!!
            dmono = mydata[key].header["dmono"]
            dana = mydata[key].header["dana"]
            # print a6
            self.ei = calc_energy(a2, dmono)
            self.ef = calc_energy(a6, dana)
            # print self.length
        # print mydata[key].data.keys()
        return
Example #2
0
def read_order_files(mydirectory,myfilebase,myend):
    myfilebaseglob=myfilebase+'*.'+myend
    print myfilebaseglob
    flist = SU.ffind(mydirectory, shellglobs=(myfilebaseglob,))
    #SU.printr(flist)
    mydatareader=readncnr.datareader()
    temp=N.array([])
    I=N.array([])
    Ierr=N.array([])
    count=0
    mon0=5.0e4
    for currfile in flist:
        print currfile
        mydata=mydatareader.readbuffer(currfile)
        if count==0:
            #mon0=mydata.header['count_info']['monitor']
            mon0=5.0e4
        mon=mydata.header['count_info']['monitor']
        #print count, mon0,mon
        temp=N.concatenate((temp,N.array(mydata.data['temp'])))
        It=N.array(mydata.data['counts'])
        Iterr=N.sqrt(It)
        It=It*mon0/mon
        Iterr=Iterr*mon0/mon
        I=N.concatenate((I,It))
        Ierr=N.concatenate((Ierr,Iterr))
        #print I
        #print Iterr
    #xa,ya,za=prep_data2(Qx,Qy,Counts);
        count=count+1
    return temp,I,Ierr
Example #3
0
    def __init__(self, files):
        mydata = {}
        self.counts = {}
        self.ei = {}
        self.ef = {}
        self.timestamp = {}

        for key, myfilestr in files.iteritems():
            mydatareader = readncnr.datareader()
            mydata[key] = mydatareader.readbuffer(myfilestr)
            self.counts[key] = N.array(mydata[key].data['Detector'])
            self.timestamp[key] = N.array(mydata[key].data['timestamp'])
            #TODO currently, we assume that the files are taken at the same points--is this safe?
            self.length = self.counts[key].shape[0]
            a2 = N.array(mydata[key].data['A2'])
            a6 = N.array(mydata[key].data['A5']) * 2.0
            #TODO who's bright idea was it to have A6 listed as "IN"
            #TODO we also assume that the energies will be the same!!!
            dmono = mydata[key].header['dmono']
            dana = mydata[key].header['dana']
            #print a6
            self.ei = calc_energy(a2, dmono)
            self.ef = calc_energy(a6, dana)
            #print self.length
        #print mydata[key].data.keys()
        return
Example #4
0
def read_order_files(mydirectory, myfilebase, myend):
    myfilebaseglob = myfilebase + '*.' + myend
    print myfilebaseglob
    flist = SU.ffind(mydirectory, shellglobs=(myfilebaseglob, ))
    #SU.printr(flist)
    mydatareader = readncnr.datareader()
    temp = N.array([])
    I = N.array([])
    Ierr = N.array([])
    count = 0
    mon0 = 5.0e4
    for currfile in flist:
        print currfile
        mydata = mydatareader.readbuffer(currfile)
        if count == 0:
            #mon0=mydata.header['count_info']['monitor']
            mon0 = 5.0e4
        mon = mydata.header['count_info']['monitor']
        #print count, mon0,mon
        temp = N.concatenate((temp, N.array(mydata.data['temp'])))
        It = N.array(mydata.data['counts'])
        Iterr = N.sqrt(It)
        It = It * mon0 / mon
        Iterr = Iterr * mon0 / mon
        I = N.concatenate((I, It))
        Ierr = N.concatenate((Ierr, Iterr))
        #print I
        #print Iterr
        #xa,ya,za=prep_data2(Qx,Qy,Counts);
        count = count + 1
    return temp, I, Ierr
Example #5
0
def readmeshfiles_direct(mydirectory,myfilebase,myend):
    myfilebaseglob=myfilebase+'*.'+myend
    print myfilebaseglob
    flist = SU.ffind(mydirectory, shellglobs=(myfilebaseglob,))
    #SU.printr(flist)
    mydatareader=readncnr.datareader()
    Qx=N.array([])
    Qy=N.array([])
    Qz=N.array([])
    Counts=N.array([])
    for currfile in flist:
        print currfile
        mydata=mydatareader.readbuffer(currfile)
        Qx=N.concatenate((Qx,N.array(mydata.data['Qx'])))
        Qy=N.concatenate((Qy,N.array(mydata.data['Qy'])))
        Qz=N.concatenate((Qz,N.array(mydata.data['Qz'])))
        Counts=N.concatenate((Counts,N.array(mydata.data['Detector'])))
    #xa,ya,za=prep_data2(Qx,Qy,Counts);
    return Qx,Qy,Counts
Example #6
0
def readmeshfiles_direct(mydirectory, myfilebase, myend):
    myfilebaseglob = myfilebase + '*.' + myend
    print myfilebaseglob
    flist = SU.ffind(mydirectory, shellglobs=(myfilebaseglob, ))
    #SU.printr(flist)
    mydatareader = readncnr.datareader()
    Qx = N.array([])
    Qy = N.array([])
    Qz = N.array([])
    Counts = N.array([])
    for currfile in flist:
        print currfile
        mydata = mydatareader.readbuffer(currfile)
        Qx = N.concatenate((Qx, N.array(mydata.data['Qx'])))
        Qy = N.concatenate((Qy, N.array(mydata.data['Qy'])))
        Qz = N.concatenate((Qz, N.array(mydata.data['Qz'])))
        Counts = N.concatenate((Counts, N.array(mydata.data['Detector'])))
    #xa,ya,za=prep_data2(Qx,Qy,Counts);
    return Qx, Qy, Counts