Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
#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.")