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')
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')
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')
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')
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)
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')
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)
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)
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')
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)
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)