def update(): global curveX, curveY, curveZ, curveTX, curveTY, curveTZ, indx, datoX,datoY,datoZ readData= lector.obtener_datos() #function that reads data from the sensor it returns a list of 3 elements as the y-coordinates for the updating plots datoX[indx]=float(readData[0]) datoY[indx]=float(readData[1])+0.13 datoZ[indx]=float(readData[2])-10.35 if indx==(ancho-1): datoX[0:ancho-2] = datoX[1:ancho-1] datoY[0:ancho-2] = datoY[1:ancho-1] datoZ[0:ancho-2] = datoZ[1:ancho-1] datoX[ancho-2]=float(readData[0]) datoY[ancho-2]=float(readData[1])+0.13-0.4 datoZ[ancho-2]=float(readData[2])-10.35 #datoX=np.zeros(ancho,dtype=float) #datoY=np.zeros(ancho,dtype=float) #datoZ=np.zeros(ancho,dtype=float) #indx=0 else: indx+=1 curvaX.setData(datoX) curvaY.setData(datoY) curvaZ.setData(datoZ) curvaTX.setData(trans.espectro_frecuencia(datoX)) curvaTY.setData(trans.espectro_frecuencia(datoY)) curvaTZ.setData(trans.espectro_frecuencia(datoZ)) umbral_X = float(stalta.classicSTALTAPy(fil.band_pass_filter(trans.espectro_frecuencia(datoX)))) umbral_Y = float(stalta.classicSTALTAPy(fil.band_pass_filter(trans.espectro_frecuencia(datoY)))) umbral_Z = float(stalta.classicSTALTAPy(fil.band_pass_filter(trans.espectro_frecuencia(datoZ)))) if((umbral_X + umbral_Z + umbral_Y) >= 2): umbral_X = 0 umbral_Y = 0 umbral_Z = 0 d = QtGui.QMessageBox() d.setWindowTitle('ALERTA') d.setText("Posible sismo") d.exec_() app.processEvents()
#Se recopilan los datos del sismograma contenido en un archivo de texto def obtenerDatos(nombre_archivo): datos = np.loadtxt(nombre_archivo) return datos nombre_archivo = input("Ingrese nombre del archivo (sismograma):\n ") opcion = input( "Mostrar graficos de tiempo y frecuencia = 1 |||| Mostrar gráfico STA/LTA = 2: \n") datos_sismo = obtenerDatos(nombre_archivo) if opcion == '1': gr.graficoPrueba() else: if opcion == '2': datos_freq = tr.espectroFrecuencia(datos_sismo) datos_filtrados = fil.band_pass_filter(datos_freq, 0.5, 0.9, 200) sta_lta = stlt.classicSTALTAPy(datos_filtrados) umbral = 1.5 for i in range(0, len(sta_lta)): razon = sta_lta[i] if (razon > umbral): print("Se detecto onda P") print(i) break plt.plot(sta_lta) plt.show() else: print("Opción inválida.")