def EnterPSD(): """ a = frequency column b = PSD column num = number of coordinates slope = slope between coordinate pairs """ print (" ") print (" The input file must have two columns: \n freq(Hz) & accel(G^2/Hz)") print (" (Find dialog box) ") a,b,num =read_two_columns_from_dialog('Select PSD file') print ("\n samples = %d " % num) a=array(a) b=array(b) nm1=num-1 slope =zeros(nm1,'f') ra=0 for i in range (0,nm1): # s=log(b[i+1]/b[i])/log(a[i+1]/a[i]) slope[i]=s # if s < -1.0001 or s > -0.9999: ra+= ( b[i+1] * a[i+1]- b[i]*a[i])/( s+1.) else: ra+= b[i]*a[i]*log( a[i+1]/a[i]) omega=2*pi*a bv=zeros(num,'f') bd=zeros(num,'f') for i in range (0,num): bv[i]=b[i]/omega[i]**2 bv=bv*386**2 rv=0 for i in range (0,nm1): # s=log(bv[i+1]/bv[i])/log(a[i+1]/a[i]) # if s < -1.0001 or s > -0.9999: rv+= ( bv[i+1] * a[i+1]- bv[i]*a[i])/( s+1.) else: rv+= bv[i]*a[i]*log( a[i+1]/a[i]) for i in range (0,num): bd[i]=bv[i]/omega[i]**2 rd=0 for i in range (0,nm1): # s=log(bd[i+1]/bd[i])/log(a[i+1]/a[i]) # if s < -1.0001 or s > -0.9999: rd+= ( bd[i+1] * a[i+1]- bd[i]*a[i])/( s+1.) else: rd+= bd[i]*a[i]*log( a[i+1]/a[i]) rms=sqrt(ra) three_rms=3*rms print (" ") print (" *** Input PSD *** ") print (" ") print (" Acceleration ") print (" Overall = %10.3g GRMS" % rms) print (" = %10.3g 3-sigma" % three_rms) grms=rms vrms=sqrt(rv) vthree_rms=3*vrms print (" ") print (" Velocity ") print (" Overall = %10.3g in/sec rms" % vrms) print (" = %10.3g in/sec 3-sigma" % vthree_rms) drms=sqrt(rd) dthree_rms=3*drms print (" ") print (" Displacement ") print (" Overall = %10.3g in rms" % drms) print (" = %10.3g in 3-sigma" % dthree_rms) return a,b,grms,num,slope