コード例 #1
0
    def read_data_two(self):            
            
        self.a1,self.b1,self.num1=read_two_columns_from_dialog('Select First Input File',self.master)
        
        self.a1=array(self.a1)
        self.b1=array(self.b1)        
        
        dur1=self.a1[self.num1-1]-self.a1[0]
        self.dt1=dur1/float(self.num1)
        
        self.sr1=1./self.dt1
        
        self.sr1,self.dt1=sample_rate_check(self.a1,self.b1,self.num1,self.sr1,self.dt1)
        
###
        
        self.a2,self.b2,self.num2=read_two_columns_from_dialog('Select Second Input File',self.master)
        
        self.a2=array(self.a2)
        self.b2=array(self.b2)        
        
        dur2=self.a2[self.num2-1]-self.a2[0]
        self.dt2=dur2/float(self.num2)
        
        self.sr2=1./self.dt2
        
        self.sr2,self.dt2=sample_rate_check(self.a2,self.b2,self.num2,self.sr2,self.dt2)        

###
        plt.clf()
        plt.figure(1)

        plt.plot(self.a1, self.b1, linewidth=1.0,color='b')        # disregard error
 
        
        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())  
        plt.title('First Input Time History')
    
        plt.draw()

        plt.figure(2)

        plt.plot(self.a2, self.b2, linewidth=1.0,color='b')        # disregard error
 
        
        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())  
        plt.title('Second Input Time History')
    
        plt.draw()

        print ("\n file 1: samples = %d " % self.num1)
        print ("\n file 2: samples = %d " % self.num2)        
        
        self.button_calculate.config(state = 'normal')    
コード例 #2
0
    def read_data(self):            
            
        self.a,self.b,self.num=read_two_columns_from_dialog('Select Input File',self.master)
        
        self.a=array(self.a)
        self.b=array(self.b)        
        
        dur=self.a[self.num-1]-self.a[0]
        self.dt=dur/float(self.num)
        
        self.sr=1./self.dt
        
        self.sr,self.dt=sample_rate_check(self.a,self.b,self.num,self.sr,self.dt)
        
        plt.ion()
        plt.clf()
        plt.figure(1)

        plt.plot(self.a, self.b, linewidth=1.0,color='b')        # disregard error
 
        
        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())  
        plt.title('Input Time History')
    
        plt.draw()
        plt.show()

        print ("\n samples = %d " % self.num)
        
        self.button_calculate.config(state = 'normal')    
コード例 #3
0
    def read_data(self):

        self.a,self.b,self.num=\
            read_two_columns_from_dialog('Select Acceleration File',self.master)

        dur = self.a[self.num - 1] - self.a[0]
        self.dt = dur / float(self.num)

        self.sr = 1. / self.dt

        self.sr, self.dt = sample_rate_check(self.a, self.b, self.num, self.sr,
                                             self.dt)

        plt.ion()
        plt.clf()
        plt.figure(1)

        plt.plot(self.a, self.b, linewidth=1.0, color='b')  # disregard error

        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel('Accel (G)')
        plt.title('Base Input Time History')

        plt.draw()

        print("\n samples = %d " % self.num)

        self.button_calculate.config(state='normal')
        self.button_tripartite.config(state='disabled')
コード例 #4
0
    def read_data(self):            
            
        self.ttime,self.y,self.num=read_two_columns_from_dialog('Select Input File',self.master)
        
        self.ns=self.num
        
        dur=self.ttime[self.num-1]-self.ttime[0]
        self.dt=dur/float(self.num)
        
        self.sr=1./self.dt
        
        self.sr,self.dt=sample_rate_check(self.ttime,self.y,self.num,self.sr,self.dt)
        
        plt.ion()
        plt.clf()
        plt.figure(1)

        plt.plot(self.ttime, self.y, linewidth=1.0,color='b')        # disregard error
       
        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())  
        plt.title('Time History')
    
        plt.draw()

        print ("\n Input Signal ")
        print ("\n samples = %d " % self.num)
        
        sr,self.dt,ave,sd,rms,skewness,kurtosis,dur=signal_stats(self.ttime, self.y,self.num) 
 
        self.button_calculate.config(state = 'normal')  
コード例 #5
0
    def read_data(self):            
            
        self.a,self.b,self.num=read_two_columns_from_dialog('Select Input File',self.master)
        
        dur=self.a[self.num-1]-self.a[0]
        self.dt=dur/float(self.num)
        
        self.sr=1./self.dt
        
        self.sr,self.dt=sample_rate_check(self.a,self.b,self.num,self.sr,self.dt)
        
        plt.ion()
        plt.clf()
        plt.figure(1)

        plt.plot(self.a, self.b, linewidth=1.0,color='b')        # disregard error
       
        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())  
        plt.title('Time History')
    
        plt.draw()

        print ("\n samples = %d " % self.num)
        
        self.button_process.config(state = 'normal')   
                   
        out1=str('%8.4g' %self.a[0])
        out2=str('%8.4g' %self.a[self.num-1])
        
        self.tmir.set(out1) 
        self.tmer.set(out2)         
コード例 #6
0
    def read_data(self):

        self.t, self.b, self.num = read_two_columns_from_dialog(
            'Select Input File', self.master)

        dur = self.t[self.num - 1] - self.t[0]
        self.dt = dur / float(self.num)

        self.sr = 1. / self.dt

        self.sr, self.dt = sample_rate_check(self.t, self.b, self.num, self.sr,
                                             self.dt)

        self.button_calculate.config(state='normal')
コード例 #7
0
    def read_data(self):

        self.a, self.b, self.num = read_two_columns_from_dialog(
            'Select Input File', self.master)

        dur = self.a[self.num - 1] - self.a[0]
        self.dt = dur / float(self.num)

        self.sr = 1. / self.dt

        self.sr, self.dt = sample_rate_check(self.a, self.b, self.num, self.sr,
                                             self.dt)

        plt.ion()
        plt.clf()
        plt.figure(1)

        plt.plot(self.a, self.b, linewidth=1.0, color='b')  # disregard error

        plt.grid(True)
        plt.xlabel('Time (sec)')
        ##        plt.ylabel(self.y_string.get())
        plt.title('Input Time History')

        nat = int(self.Lbat.curselection()[0])

        str = self.iur.get()

        if (nat == 0):
            out1 = 'Accel (' + str + ')'
        if (nat == 1):
            out1 = 'Velocity (' + str + ')'
        if (nat == 2):
            out1 = 'Disp (' + str + ')'
        if (nat == 3):
            out1 = 'Force (' + str + ')'
        if (nat == 4):
            out1 = 'Pressure (' + str + ')'
        if (nat == 5):
            out1 = 'Stress (' + str + ')'

        plt.ylabel(out1)

        plt.draw()

        print("\n samples = %d " % self.num)

        self.button_calculate.config(state='normal')

        self.advise(self)
コード例 #8
0
    def read_data(self):       
        
        self.button_calculate.config(state = 'normal')   
            
        self.ttime,self.y,self.num=read_two_columns_from_dialog('Select Input File',self.master)
        
        self.y_original=self.y        
        
        self.ns=self.num
        
        dur=self.ttime[self.num-1]-self.ttime[0]
        self.dt=dur/float(self.num)
        
        self.sr=1./self.dt
        
        self.sr,self.dt=sample_rate_check(self.ttime,self.y,self.num,self.sr,self.dt)
        
      
        
        plt.ion()
        plt.clf()
        plt.figure(1)

        plt.plot(self.ttime, self.y, linewidth=1.0,color='b')        # disregard error
       
        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())  
        plt.title('Time History')
        
        nn=len(self.ttime)        
        

        if(nn>=1000000):
            ymin, ymax = plt.ylim()
            ymin=2*ymin
            ymax=2*ymax   
            plt.ylim( ymin, ymax ) 
        
    
        plt.draw()

        print ("\n samples = %d " % self.num)
コード例 #9
0
    def read_data(self):

        self.a, self.b, self.num = read_two_columns_from_dialog(
            'Select Input File', self.master)

        self.dur = self.a[self.num - 1] - self.a[0]
        self.dt = self.dur / float(self.num)

        self.sr = 1. / self.dt

        self.sr, self.dt = sample_rate_check(self.a, self.b, self.num, self.sr,
                                             self.dt)

        plt.ion()
        plt.clf()

        self.plot_input(self)

        print("\n samples = %d " % self.num)

        self.button_calculate.config(state='normal')
コード例 #10
0
    def calculate_invfft(cls, self):

        print(" Calculating inverse FFT ")

        YI = ifft(self.Y)

        print(" YIR")

        YIR = YI.real

        print(" psd_th")

        self.psd_th = YIR[0:self.np]

        self.np = len(self.psd_th)

        self.TT = linspace(0, (self.np - 1) * self.dt, self.np)

        print(" ")
        print("num_fft=%d " % self.num_fft)
        print("np=%d      " % self.np)

        stddev = std(self.psd_th)

        self.psd_th *= (self.spec_grms / stddev)

        #### check psd ############################################################

        a = self.TT
        b = self.psd_th

        self.num = len(a)

        sr, dt, mean, sd, rms, skew, kurtosis, dur = signal_stats(
            a, b, self.num)

        self.sr, self.dt = sample_rate_check(a, b, self.num, sr, dt)
コード例 #11
0
    def read_data(self):

        self.a, self.b, self.num = read_two_columns_from_dialog(
            'Select Input File', self.master)

        dur = self.a[self.num - 1] - self.a[0]
        self.dt = dur / float(self.num)

        self.sr = 1. / self.dt

        sr, dt, mean, sd, rms, skew, kurtosis, dur = signal_stats(
            self.a, self.b, self.num)

        bb = self.b - mean

        v = differentiate_function(bb, self.num, self.dt)

        rf = (np.std(v) / np.std(self.b)) / (2 * np.pi)

        amax = max(self.b)
        amin = min(self.b)
        aamin = abs(amin)

        mmax = amax

        if (aamin > mmax):
            mmax = aamin

        crest = mmax / sd

        ###############################################################################

        y = np.zeros(self.num, 'f')
        self.v = np.zeros(self.num, 'f')

        y = self.b
        k = 0
        self.v[0] = y[0]

        k = 1

        for i in range(1, (self.num - 1)):

            slope1 = (y[i] - y[i - 1])
            slope2 = (y[i + 1] - y[i])

            if ((slope1 * slope2) <= 0):
                self.v[k] = y[i]
                k += 1

        last_v = k
        self.v[k] = y[self.num - 1]

        self.v = abs(self.v[0:last_v])

        #        for i in range (0,last_v):
        #            print ("%8.4g" %self.v[i])

        ###############################################################################

        q_sr = " sample rate = %8.4g sps \n" % sr
        q_dt = "   time step = %8.4g sec \n\n" % dt

        q_dur = "    duration = %8.4g sec  \n" % dur
        q_num = "         num = %9.6g  \n\n" % self.num

        q_mean = "        mean = %8.4g \n" % mean
        q_sd = "     std dev = %8.4g \n" % sd
        q_rms = "         rms = %8.4g \n\n" % rms

        q_max = "         max = %8.4g \n" % amax
        q_min = "         min = %8.4g \n" % amin
        q_crest = "crest factor = %8.4g \n\n" % crest

        q_skew = "    skewness = %8.4g \n" % skew
        q_kurt = "    kurtosis = %8.4g \n\n" % kurtosis

        q_rf = " Rice Characteristic Frequency \n   = %8.4g Hz " % rf

        self.textWidget.delete(1.0, tk.END)

        self.textWidget.insert('1.0', q_sr)
        self.textWidget.insert('end', q_dt)

        self.textWidget.insert('end', q_dur)
        self.textWidget.insert('end', q_num)

        self.textWidget.insert('end', q_max)
        self.textWidget.insert('end', q_min)
        self.textWidget.insert('end', q_crest)

        self.textWidget.insert('end', q_mean)
        self.textWidget.insert('end', q_sd)
        self.textWidget.insert('end', q_rms)

        self.textWidget.insert('end', q_skew)
        self.textWidget.insert('end', q_kurt)

        self.textWidget.insert('end', q_rf)

        self.sr, self.dt = sample_rate_check(self.a, self.b, self.num, self.sr,
                                             self.dt)

        self.button_replot_histogram.config(state='normal')

        plt.ion()
        plt.clf()
        plt.close(1)
        plt.figure(1)

        plt.plot(self.a, self.b, linewidth=1.0, color='b')  # disregard error

        plt.grid(True)
        plt.xlabel('Time (sec)')
        plt.ylabel(self.y_string.get())
        plt.title('Input Time History')

        plt.draw()

        print("\n samples = %d " % self.num)

        self.plot_histogram(self)