##// END OF EJS Templates
Se realizar la lectura en modo online llamando al metodo digitalRFReader(self.path) en reemplazo del metodo reload(), grabando previamente el path de lectura o directorio superior donde se almacena la data. Adicionalmente, se ha definido un tiempo de espera de 3 segundos para dar tiempo suficiente al programa de adquisicion de generar archivos. ...
Se realizar la lectura en modo online llamando al metodo digitalRFReader(self.path) en reemplazo del metodo reload(), grabando previamente el path de lectura o directorio superior donde se almacena la data. Adicionalmente, se ha definido un tiempo de espera de 3 segundos para dar tiempo suficiente al programa de adquisicion de generar archivos. El archivo jroIO_digitalRF.py utiliza la libreria digital_rf cuya version actual es la 2.62( 2017 ) ,esta libreria no tiene definido el metodo o clase reload, este metodo existe en la version 2.0(2014), si uno revisa el archivo jroIO_usrp.py, esta unidad de lectura trabaja con la version 2.0 llamada digital_rf_hdf5, para hacer uso de esta unidad de lectura se instalan los programas correspondiente pero el formato y la informacion difiere un poco de la version actual. Se infiere entonces que al desarrollar del archivo jroIO_digitalRF.py, esperaba que la libreria aun tenga incluido el metodo reload con el update de las versiones pero este ya no es parte del desarrollo, Se realizo la consulta al desarrollador actual de digitalRF Ryan Voltz si se iba a incluir a futuro pero indico que no era necesario.

File last commit:

r1014:c5cbd628ce0f merge
r1234:b6a76136b1f3
Show More
optimun_offset.py
117 lines | 3.1 KiB | text/x-python | PythonLexer
import h5py
import numpy
import matplotlib.pyplot as plt
import glob
import os
#---------------------- Functions ---------------------
def findFiles(path):
dirList = []
fileList = []
for thisPath in os.listdir(path):
dirList.append(os.path.join(path,thisPath))
dirList.sort()
for thisDirectory in dirList:
files = glob.glob1(thisDirectory, "*.hdf5")
files.sort()
for thisFile in files:
fileList.append(os.path.join(thisDirectory,thisFile))
return fileList
def readFiles(fileList):
meteors_array = numpy.zeros((1,4))
for thisFile in fileList:
#Leer
f1 = h5py.File(thisFile,'r')
grp1 = f1['Data']
grp2 = grp1['data_output']
meteors1 = grp2['table0'][:]
meteors_array = numpy.vstack((meteors_array,meteors1))
#cerrar
f1.close()
meteors_array = numpy.delete(meteors_array, 0, axis=0)
meteors_list = [meteors_array[:,0],meteors_array[:,1],meteors_array[:,2],meteors_array[:,3]]
return meteors_list
def estimateMean(offset_list):
mean_off = []
axisY_off = []
axisX_off = []
for thisOffset in offset_list:
mean_aux = numpy.mean(thisOffset, axis = 0)
mean_off.append(mean_aux)
axisX_off.append(numpy.array([0,numpy.size(thisOffset)]))
axisY_off.append(numpy.array([mean_aux,mean_aux]))
return mean_off, axisY_off, axisX_off
def plotPhases(offset0, axisY0, axisX0, title):
f, axarr = plt.subplots(4, sharey=True)
color = ['b','g','r','c']
# plt.grid()
for i in range(len(offset0)):
thisMeteor = offset0[i]
thisY = axisY0[i]
thisX = axisX0[i]
thisColor = color[i]
opt = thisColor + 'o'
axarr[i].plot(thisMeteor,opt)
axarr[i].plot(thisX, thisY, thisColor)
axarr[i].set_ylabel('Offset ' + str(i))
plt.ylim((-180,180))
axarr[0].set_title(title + ' Offsets')
axarr[3].set_xlabel('Number of estimations')
return
def filterOffsets(offsets0, stdvLimit):
offsets1 = []
for thisOffset in offsets0:
pstd = numpy.std(thisOffset)*stdvLimit
pmean = numpy.mean(thisOffset)
outlier1 = thisOffset > pmean - pstd
outlier2 = thisOffset < pmean + pstd
not_outlier = numpy.logical_and(outlier1,outlier2)
thisOffset1 = thisOffset[not_outlier]
offsets1.append(thisOffset1)
return offsets1
#---------------------- Setup ---------------------------
<<<<<<< HEAD
path = '/home/nanosat/Pictures/JASMET30_mp/201608/phase'
=======
path = '/home/jespinoza/Pictures/JASMET30/201608/phase'
>>>>>>> master
stdvLimit = 0.5
#---------------------- Script ---------------------------
fileList = findFiles(path)
offsets0 = readFiles(fileList)
mean0, axisY0, axisX0 = estimateMean(offsets0)
plotPhases(offsets0, axisY0, axisX0, 'Original')
offsets1 = filterOffsets(offsets0, stdvLimit)
mean1, axisY1, axisX1 = estimateMean(offsets1)
plotPhases(offsets1, axisY1, axisX1, 'Filtered')
print "Original Offsets: %.2f, %.2f, %.2f, %.2f" % (mean0[0],mean0[1],mean0[2],mean0[3])
print "Filtered Offsets: %.2f, %.2f, %.2f, %.2f" % (mean1[0],mean1[1],mean1[2],mean1[3])
plt.show()