def gen_REAV(fechas=[ dt.datetime.strftime(dt.datetime.utcnow() - dt.timedelta(hours=24), '%Y-%m-%d %H:%M'), dt.datetime.utcnow().strftime("%Y-%m-%d %H:%M") ], ML=">1.5", ms=2, anchomap=40): """Genera un REAV semiautomático (guardado en el directorio de trabajo), basándose en la búsqueda de eventos del último día LOCALIZADOS :param fechas: Par [fecha inicial,fecha final], por defecto busca en las últimas 24 horas :type fechas: [str,str], opcional :param ML: Magnitud local mínima para la búsqueda de eventos. Por defecto busca eventos con ML>1.5 :type ML: float, opcional :param ms: Factor de escala para el símbolo (circulito) de la localización, por defecto=4 :type ms: float, opcional :param anchomap: Extensión de ancho del mapa ploteado. Por defecto = 80 km :type anchomap: float, opcional :returns: Documento .doc :Ejemplo: >>> import sys >>> sys.path.append('//172.16.40.10/Sismologia/pyOvdas_lib/') >>> import ovdas_reportes_scripts as reportes >>> reportes.gen_REAV(fechas=["2019-12-01T00:00","2019-12-05T00:00"],ML=2.0,ms=3,anchomap=40) >>> 0 - Tatara, VT con ML: 2.3 (201912020039) 1 - Nevados de Chillan, LP con ML: 3.4 (201912011618) 2 - Nevados de Chillan, EX con ML: 3.4 (201912011529) Seleccione el evento: >>> 1 Mapa generado, en proceso etapa de generación de DOC """ #cargar los eventos del ultimo dia con ML>1.5 import ovdas_getfromdb_lib as gdb import ovdas_figure_lib as ffig import ovdas_doc_lib as doc import ovdas_formulas_lib as formu import pandas as pd a = gdb.extraer_eventos(inicio=fechas[0], final=fechas[1], ML=ML, volcan='*') volcanes_data = gdb.volc_metadata(volc='all') #permitir seleccionar uno i = 0 a = pd.DataFrame(a) a.reset_index() print(a) for index, row in a.iterrows(): print( str(i) + " - " + volcanes_data[volcanes_data.id == row.idvolc].nombre_db.iloc[0]) i = i + 1 '''
def localizar_NLL(idev,year,realtime=True,fini='',ffin=''): VpVs=1.78 yNum,zNum=2000,1050 ro = 2.7 #Densidad gridsize = 0.1 #Initial cell size in km signature = 'Sergi' import sys import pandas as pd pd.options.mode.chained_assignment = None # default='warn' sys.path.append('//172.16.40.10/sismologia/pyovdas_lib/') import ovdas_getfromdb_lib as gdb import datetime as dt VpVs=1.78 yNum,zNum=2000,1050 ro = 2.7 #Densidad gridsize = 0.1 #Initial cell size in km signature = 'Sergi' if realtime==True: fini = dt.datetime.strftime(dt.datetime.utcnow() - dt.timedelta(days=1), '%Y-%m-%d') ffin = dt.datetime.strftime(dt.datetime.utcnow() + dt.timedelta(days=1), '%Y-%m-%d') #ev = pd.DataFrame(gdb.extraer_eventos(inicio=fini,final=ffin,ml='>0',volcan='*')).tail(1) ev = pd.DataFrame(gdb.extraer_eventos(inicio=fini,final=ffin,ml='>0',volcan='*')) ev = ev[ev.idevento==idev] ev = ev[ev.fecha.dt.year==year] evsel=ev from pylib.func_main import pyNLL from obspy import read_events hypo, NLL,voldf = pyNLL(yNum,zNum,gridsize,VpVs,ro,evsel,signature) cat = read_events("loc/last.hyp") lonN=cat[0].origins[0].longitude latN=cat[0].origins[0].latitude profN=cat[0].origins[0].depth/1000 erlonN = cat[0].origins[0].longitude_errors.uncertainty erlatN = cat[0].origins[0].latitude_errors.uncertainty erzN=cat[0].origins[0].depth_errors.uncertainty/1000 volnet = gdb.get_metadata_wws(volcan='*') volnet = volnet[volnet.tipo=='SISMOLOGICA'] estas,fases =[],[] for i in range(0,len(cat[0].picks)): esta = cat[0].picks[i].waveform_id.station_code fase = cat[0].picks[i].phase_hint estas.append(esta[:-1]) fases.append(fase) estadf = pd.DataFrame([estas,fases]).T NLL=[latN,lonN,profN,erlonN,erlatN,erzN] return NLL,estadf,hypo,evsel,voldf
Created on Mon Apr 19 09:16:29 2021 @author: sergio.morales """ fini = '2018-02-01' ffin = '2018-12-31' import sys import os import pandas as pd pd.options.mode.chained_assignment = None # default='warn' sys.path.append('//172.16.40.10/sismologia/pyovdas_lib/') import ovdas_getfromdb_lib as gdb import datetime as dt evs = pd.DataFrame( gdb.extraer_eventos(inicio=fini, final=ffin, volcan='*', ml='>0')) realtime = False for i in range(0, len(evs)): raiz = '//172.16.40.102/Monitoreo/Procesamiento/autoNLLoc/' ev = evs[evs.index == i] from autoNLL_do import localizar_NLL idev = ev.idevento.iloc[0] year = ev.fecha.iloc[0].year try: NLL, estadf, hypo, ev, voldf = localizar_NLL(idev, year, realtime, fini, ffin) volcan = voldf.nombre_db.iloc[0] fecha = str(ev.fecha.dt.year.iloc[0]) + str( ev.fecha.dt.month.iloc[0]).zfill(2) + str(
def do(fecha): raiz = '//172.16.40.102/Monitoreo/Procesamiento/autoNLLoc/' import sys import os from autoNLL_do import localizar_NLL import pandas as pd pd.options.mode.chained_assignment = None # default='warn' sys.path.append('//172.16.40.10/sismologia/pyovdas_lib/') import ovdas_getfromdb_lib as gdb import datetime as dt fini = dt.datetime.strftime(dt.datetime.utcnow() - dt.timedelta(days=1), '%Y-%m-%d') ffin = dt.datetime.strftime(dt.datetime.utcnow() + dt.timedelta(days=1), '%Y-%m-%d') #ev = pd.DataFrame(gdb.extraer_eventos(inicio=fini,final=ffin,ml='>0',volcan='*')).tail(1) ev = pd.DataFrame( gdb.extraer_eventos(inicio=fini, final=ffin, volcan='*', ml='>0')).tail(1) last_loc_hypo = str(ev['idevento'].iloc[0]) + '-' + str( ev.fecha.iloc[0].year) print("Último evento localizado por Hypo: " + last_loc_hypo) last_loc_NLL = open('lastloc.txt').read().splitlines()[0] print("Último evento localizado por NLL: " + last_loc_NLL) try: with open("lastloc.txt", "w") as text_file: print(f"{last_loc_hypo}", file=text_file) if last_loc_hypo == last_loc_NLL: print('No hay eventos nuevos localizados') else: print('A localizar!') idev = ev.idevento.iloc[0] year = ev.fecha.dt.year.iloc[0] NLL, estadf, hypo, ev, voldf = localizar_NLL(idev, year) #plot_ev(estadf, NLL, hypo, ev) volcan = voldf.nombre_db.iloc[0] fecha = str(ev.fecha.dt.year.iloc[0]) + str( ev.fecha.dt.month.iloc[0]).zfill(2) + str( ev.fecha.dt.day.iloc[0]).zfill(2) #Guardar file = fecha + '_' + volcan + "_NLLoc.csv" row = (str(ev.fecha.iloc[0]) + ' ' + str(NLL[0]) + ' ' + str(NLL[1]) + ' ' + str(NLL[2]) + ' ' + str(NLL[3]) + ' ' + str(NLL[4]) + ' ' + str(NLL[5]) + ' ' + str(ev.tipoevento.iloc[0]) + ' ' + str(ev.idevento.iloc[0]) + '-' + str(ev.fecha.iloc[0].year)) df = pd.DataFrame([row]) raiz = raiz + str(ev.fecha.dt.year.iloc[0]) + '/' + str( ev.fecha.dt.month.iloc[0]).zfill(2) + '/' + str( ev.fecha.dt.day.iloc[0]).zfill(2) + '/' if (os.path.exists(raiz + file) == True): df.to_csv(raiz + file, sep=';', index=False, mode='a', header=False) else: df.to_csv(raiz + file, sep=';', index=False, header=False) #file = open("evlocs/"+str(idev)+'-'+str(year)+".txt", "w") #row = str(NLL[0])+' '+str(NLL[1])+' '+str(NLL[2])+' '+str(NLL[3])+' '+str(NLL[4])+' '+str(NLL[5]) #file.write(row) #file.close() except: print('Problema con el lastloc.txt, se intentará nuevamente')
3: 'lonN', 4: 'profN', 5: 'erlonN', 6: 'erlatN', 7: 'erprofN', 8: 'tipoev', 9: 'id-year' }) df_N = df_N.set_index('id-year', drop=True) df_N = df_N[~df_N.index.duplicated(keep='first')] ffin = dt.datetime.strftime(fin + dt.timedelta(days=1), '%Y-%m-%d') fini = dt.datetime.strftime(ini, '%Y-%m-%d') df_H = pd.DataFrame( gdb.extraer_eventos(inicio=fini, final=ffin, volcan=volcan, ml='>0', tipoevento='VT')) df_H['id-year'] = df_H.idevento.astype(str) + '-' + df_H.fecha.dt.year.astype( str) df_H = df_H.set_index('id-year', drop=True) df_H['profH'] = voldf.nref.iloc[0] / 1000 - df_H['profundidad'] M = pd.concat([df_N, df_H], axis=1) del df_H, df_N, df, df2, df3 M = M[M['hora'].notnull()] M = M[M['cod'].notna()] #%% volnet = gdb.get_metadata_wws(volcan=volcan) volnet = volnet[volnet.tipo == 'SISMOLOGICA'] #%%