# Ing-AlexanderValdez # Monitoreo de Pedestal ############## IMPORTA LIBRERIAS ################### import os,numpy,h5py import sys,time import matplotlib.pyplot as plt #################################################### ################################################################# # LA FECHA 21-10-20 CORRESPONDE A LAS PRUEBAS DEL DIA MIERCOLES # 1:15:51 pm hasta 3:49:32 pm ################################################################# #path_ped = '/DATA_RM/TEST_PEDESTAL/P20211012-082745' path_ped = '/DATA_RM/TEST_PEDESTAL/P20211020-131248' # Metodo para verificar numero def isNumber(str): try: float(str) return True except: return False # Metodo para extraer el arreglo def getDatavaluefromDirFilename(path,file,value): dir_file= path+"/"+file fp = h5py.File(dir_file,'r') array = fp['Data'].get(value)[()] fp.close() return array # LISTA COMPLETA DE ARCHIVOS HDF5 Pedestal LIST= sorted(os.listdir(path_ped)) m=len(LIST) print("TOTAL DE ARCHIVOS DE PEDESTAL:",m) # Contadores temporales k= 0 l= 0 t= 0 # Marca de tiempo temporal time_ = numpy.zeros([m]) # creacion de for i in range(m): print("order:",i) tmp_azi_pos = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="azi_pos") tmp_ele_pos = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="ele_pos") tmp_azi_vel = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="azi_vel") tmp_ele_vel = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="azi_vel")# nuevo :D time_[i] = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="utc") k=k +tmp_azi_pos.shape[0] l=l +tmp_ele_pos.shape[0] t=t +tmp_azi_vel.shape[0] print("TOTAL DE MUESTRAS, ARCHIVOS X100:",k) time.sleep(5) ######CREACION DE ARREGLOS CANTIDAD DE VALORES POR MUESTRA################# azi_pos = numpy.zeros([k]) ele_pos = numpy.zeros([l]) time_azi_pos= numpy.zeros([k]) # Contadores temporales p=0 r=0 z=0 # VARIABLES TMP para almacenar azimuth, elevacion y tiempo #for filename in sorted(os.listdir(path_ped)): # CONDICION POR LEER EN TIEMPO REAL NO OFFLINE for filename in LIST: tmp_azi_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="azi_pos") tmp_ele_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="ele_pos") # CONDICION POR LEER EN TIEMPO REAL NO OFFLINE if z==(m-1): tmp_azi_time=numpy.arange(time_[z],time_[z]+1,1/(tmp_azi_pos.shape[0])) else: tmp_azi_time=numpy.arange(time_[z],time_[z+1],(time_[z+1]-time_[z])/(tmp_azi_pos.shape[0])) print(filename,time_[z]) print(z,tmp_azi_pos.shape[0]) i=0 for i in range(tmp_azi_pos.shape[0]): index=p+i azi_pos[index]=tmp_azi_pos[i] time_azi_pos[index]=tmp_azi_time[i] p=p+tmp_azi_pos.shape[0] i=0 for i in range(tmp_ele_pos.shape[0]): index=r+i ele_pos[index]=tmp_ele_pos[i] r=r+tmp_ele_pos.shape[0] z+=1 ######## GRAFIQUEMOS Y VEAMOS LOS DATOS DEL Pedestal fig, ax = plt.subplots(figsize=(16,8)) print(time_azi_pos.shape) print(azi_pos.shape) t=numpy.arange(time_azi_pos.shape[0])*0.01/(60.0) plt.plot(t,azi_pos,label='AZIMUTH_POS',color='blue') # AQUI ESTOY ADICIONANDO LA POSICION EN elevaciont=numpy.arange(len(ele_pos))*0.01/60.0 t=numpy.arange(len(ele_pos))*0.01/60.0 plt.plot(t,ele_pos,label='ELEVATION_POS',color='red')#*10 #ax.set_xlim(0, 9) ax.set_ylim(-5, 400) plt.ylabel("Azimuth Position") plt.xlabel("Muestra") plt.title('Azimuth Position vs Muestra ', fontsize=20) axes = plt.gca() axes.yaxis.grid() plt.xticks(fontsize=16) plt.yticks(fontsize=16) plt.show()