Exemple #1
0
    def set_param(self):  #Pick up experimental parameters from Cine filename
        #Sample fileCine is "PIV_sv_vp_left_100mmzeiss_fps3000_8holes_D20mm_span10000micron_freq5Hz_v400mms_1"
        file = self.Sdata.fileCine

        self.Xplane = browse.get_number(file, "_X", "mm", from_end=False)
        self.Zplane = browse.get_number(file, "_Z", "mm", from_end=False)
        self.fps = browse.get_number(file, "_fps", "_", from_end=False)
        self.H0 = browse.get_number(file, "_H", "mm", from_end=False)
        self.stroke = browse.get_number(file, "_S", "mm", from_end=False)

        if file.find('_sv') > 0:
            self.typeview = 'sv'  #side view
        elif file.find('_fv') > 0:
            self.typeview = 'fv'  #front view
        elif file.find('bv'):
            self.typeview = 'bv'  #bv...?
        else:
            self.typeview = 'NA'

        if file.find('_hp') > 0:  #horizontal plane
            self.typeplane = 'hp'
        else:
            if file.find('_vp') > 0:  #vertical plane
                self.typeplane = 'vp'
            else:
                self.typeplane = 'NA'

        if (not hasattr(self, 'im0')) or (self.im0 == 0):
            pass
Exemple #2
0
 def read_ref(self, Ref):
     self.ref_indexA = browse.get_number(
         self.ref_Header[1], 'A: im', '.tiff', from_end=False
     )  # image names are localized in the second line of the ASCII file
     self.ref_indexB = browse.get_number(self.ref_Header[1],
                                         'B: im',
                                         '.tiff',
                                         from_end=False)
     return super(Mdata_PIVlab, self).read_ref(Ref)
Exemple #3
0
 def get_PIVparams(self, dataDir):
     self.Dt = browse.get_number(dataDir,
                                 '_Dt_',
                                 '_',
                                 display=False,
                                 from_end=False)
     self.W = browse.get_number(dataDir,
                                '_W',
                                'pix',
                                display=False,
                                from_end=False)
Exemple #4
0
    def set_scales(self):
        # ft is in ms, time elapsed between two consecutive images
        ft = 1000. / self.param.fps
        # timescale is the time resolution of the PIV  measurements
        num = browse.get_number(self.dataDir, "_at", "fps")
        if num > 0:
            timescale = num * ft / 1000.
        else:
            timescale = 1

        fx = self.param.fx

        return ft, timescale, fx
Exemple #5
0
    def load_ref(self):
        # do it locally, from the first image
        fileList, nt = self.get_fileList(True)
        self.im_index = [
            browse.get_number(name, self.rootfile, self.frmt, False)
            for name in fileList
        ]

        if nt > 0:
            Ref = np.load(fileList[0])
        else:
            Ref = None
        #        S.close()
        return Ref
Exemple #6
0
def get_data(fileList):
    dataList = []
    for name in fileList:
        W = browse.get_number(name, '_W', 'pix_')
        Dt = int(browse.get_string(name, 'pix_Dt_', '_'))
        Header, Data = rw_data.read_dataFile(name, ',', ',')
        #    indexA=browse.get_number(Header[1],'A: im','.tiff') #name of the image is localized on the second line of the ASCII file
        #    indexB=browse.get_number(Header[1],'B: im','.tiff')
        Data = pivlab.switch_keys(Data)
        dataList.append(Data)
        for key in ['u', 'v']:
            Data[key] = (cdata.rm_nans([np.asarray(Data[key])], d=1,
                                       rate=0.05))[0]

    return dataList
Exemple #7
0
 def add_param(self, name, unit):
     value = browse.get_number(self.Sdata.fileCine,
                               '_' + name,
                               unit + '_',
                               from_end=True)
     setattr(self.param, name, value)
Exemple #8
0
    def time_axis(self):
        # generation of a time axis : not for PIVlab, use directly the header of the files (much more precise and flexible !)
        fileList, nt = self.get_fileList(False)

        if hasattr(self.Sdata, 'fileCine'):
            if os.path.isfile(self.Sdata.fileCine):
                times = time_step_sample.get_cine_time(
                    self.Sdata.fileCine, False
                )  ## If the boolean is True, it may sometimes crush. Log says that it cannot plot NaN values. The source of NaN is unknown. - Takumi 9/28/17
            else:
                # do a global search using file_architecture.py
                Dircine = file_architecture.get_dir(self.Id.date)
                fileCine = Dircine + '/' + os.path.basename(
                    self.Sdata.fileCine)
                print(fileCine)
                times = time_step_sample.get_cine_time(
                    fileCine, False
                )  ## If the boolean is True, it may sometimes crush. Log says that it cannot plot NaN values. The source of NaN is unknown. - Takumi 9/28/17
        else:
            times = None

            #   self.im_index=np.zeros(nt)
        self.im_indexA = np.zeros(nt)
        self.im_indexB = np.zeros(nt)

        c = 0
        for i, filename in enumerate(fileList):
            Header = rw_data.read_Header(filename, ',')

            if Header == []:
                c += 1
                print("Header missing for : " + filename + ". delete file")
                print(Header)
                os.remove(filename)
            else:
                indexA = browse.get_number(
                    Header[1], 'A: im', '.tiff', from_end=False
                )  # name of the image is localized on the second line of the ASCII file
                indexB = browse.get_number(Header[1],
                                           'B: im',
                                           '.tiff',
                                           from_end=False)
                if indexA == 0:  # Header is given in another format
                    indexA = browse.get_number(
                        Header[1], ': im', '.tiff', from_end=False
                    )  # name of the image is localized on the second line of the ASCII file
                    indexB = browse.get_number(Header[1],
                                               '& im',
                                               '.tiff',
                                               from_end=False)
                self.im_indexA[i] = indexA
                self.im_indexB[i] = indexB
            self.im_index = self.im_indexA.tolist()

        # print("files un-able to read : "+str(c))

        if times is not None:
            a = self.im_indexA.astype(
                int
            )  #Convert a numpy array into int for later use as a counter  -added by takumi 08/15/2017
            b = self.im_indexB.astype(
                int
            )  #Convert a numpy array into int for later use as a counter  -added by takumi 08/15/2017

            Dt = [times[i] - times[j] for i, j in zip(b, a)]
            t = [times[int(i)] for i in self.im_index]
        else:
            Dt = [i - j for i, j in zip(self.im_indexB, self.im_indexA)]
            t = [int(i) for i in self.im_index]

        # super(Mdata_PIVlab,self).time_axis()
        return t, Dt
Exemple #9
0
def review():
    folder = '/Volumes/Stephane/Vortex_Turbulence/'

    folders = glob.glob(folder + '*')

    l_vortices = []

    D = {}
    D['v'] = []
    D['fx'] = []
    D['fps'] = []
    D['date'] = []
    D['index'] = []
    # D['Sdata_file']=[]
    D['cinefile'] = []

    for f in folders:
        # print(f)
        l = glob.glob(f + '/PIV*A0mm*.cine')
        l_vortices = l_vortices + l

    # print(l_vortices)

    for cinefile in l_vortices:
        s = browse.get_string(cinefile, '', '/PIV')
        date = s[-10:]

        filename = os.path.dirname(file_architecture.os_i(
            cinefile)) + '/Sdata_' + date + '/Cine_index_' + date + '.txt'
        if os.path.exists(filename):

            Header, data = rw_data.read_dataFile(filename,
                                                 Hdelimiter='\t',
                                                 Ddelimiter='\t')
            #  print(data)
            # print(data)
            # print("l : "+l)
            #    print(data['Names'])
            # print(file_architecture.os_i(cinefile))
            index = \
            np.where([file_architecture.os_i(cinefile) == file_architecture.os_i(name) for name in data['Names']])[0][0]
            index = int(data['Index'][index])

            v = browse.get_number(cinefile, '_v', 'mms')
            if v == -1:
                v = browse.get_number(cinefile, 'mm_v', 'mm')
            fps = browse.get_number(cinefile, '_fps', '_')

            S = Sdata_manip.load_Sdata(date, index)
            fx = S.param.fx

            D['date'].append(date)
            D['index'].append(index)
            D['v'].append(v)
            D['fps'].append(fps)
            D['fx'].append(fx)
            #        D['Sdata_file'].append(filename)

            D['cinefile'].append(cinefile)

    print(D['v'])

    filename = './Vortices/free_index_no_cine.txt'
    rw_data.write_a_dict(filename, D, delimiter='\t')