##// END OF EJS Templates
DATAIO.py:...
DATAIO.py: Contiene las clases JRODatareader y JRODataWriter, que contienen metodos necesarios para leer y escribir archivos en formato jicamarca o pdata (.r o .pdata). Valentin Sarmiento - martes 10 de abril de 2012

File last commit:

r53:f934921c259c
r58:d07c26af67ec
Show More
VoltageIO.py
463 lines | 13.5 KiB | text/x-python | PythonLexer
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 '''
Created on 23/01/2012
Daniel Valdez
Fijando variables svn:keywords Author Id
r16 @author $Author$
@version $Id$
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 '''
import os, sys
import numpy
import glob
import fnmatch
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 import time, datetime
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Los campos de Author y Id fueron agregados a todos los modulos
r18 path = os.path.split(os.getcwd())[0]
sys.path.append(path)
Miguel Valdez
r49 from Model.JROHeader import *
Miguel Valdez
r11 from Model.Voltage import Voltage
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
r49 from IO.DataIO import JRODataReader
from IO.DataIO import JRODataWriter
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
r49 class VoltageReader(JRODataReader):
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 """
Esta clase permite leer datos de voltage desde archivos en formato rawdata (.r). La lectura
de los datos siempre se realiza por bloques. Los datos leidos (array de 3 dimensiones:
perfiles*alturas*canales) son almacenados en la variable "buffer".
Esta clase contiene instancias (objetos) de las clases BasicHeader, SystemHeader,
RadarControllerHeader y Voltage. Los tres primeros se usan para almacenar informacion de la
cabecera de datos (metadata), y el cuarto (Voltage) para obtener y almacenar un perfil de
datos desde el "buffer" cada vez que se ejecute el metodo "getData".
Example:
dpath = "/home/myuser/data"
startTime = datetime.datetime(2010,1,20,0,0,0,0,0,0)
endTime = datetime.datetime(2010,1,21,23,59,59,0,0,0)
readerObj = VoltageReader()
readerObj.setup(dpath, startTime, endTime)
while(True):
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 #to get one profile
profile = readerObj.getData()
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 #print the profile
print profile
#If you want to see all datablock
print readerObj.datablock
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
if readerObj.noMoreFiles:
break
"""
Victor Sarmiento
VOTAJEIO.py:...
r46
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Victor Sarmiento
VOTAJEIO.py:...
r46 def __init__(self,m_Voltage=None):
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 """
Inicializador de la clase VoltageReader para la lectura de datos de voltage.
Input:
m_Voltage : Objeto de la clase Voltage. Este objeto sera utilizado para
almacenar un perfil de datos cada vez que se haga un requerimiento
(getData). El perfil sera obtenido a partir del buffer de datos,
si el buffer esta vacio se hara un nuevo proceso de lectura de un
bloque de datos.
Si este parametro no es pasado se creara uno internamente.
Variables afectadas:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.m_BasicHeader
self.m_SystemHeader
self.m_RadarControllerHeader
self.m_ProcessingHeader
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 Return:
Void
"""
Miguel Valdez
r11 if m_Voltage == None:
m_Voltage = Voltage()
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
if not(isinstance(m_Voltage, Voltage)):
raise ValueError, "in VoltageReader, m_Voltage must be an Voltage class object"
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj = m_Voltage
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.m_BasicHeader = BasicHeader()
self.m_SystemHeader = SystemHeader()
self.m_RadarControllerHeader = RadarControllerHeader()
self.m_ProcessingHeader = ProcessingHeader()
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.fp = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.idFile = None
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.startDateTime = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.endDateTime = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.dataType = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.fileSizeByHeader = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.pathList = []
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
self.filenameList = []
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.lastUTTime = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.maxTimeStep = 30
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.flagIsNewFile = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.ippSeconds = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
self.flagResetProcessing = 0
self.flagIsNewBlock = 0
self.noMoreFiles = 0
self.nReadBlocks = 0
self.online = 0
self.filename = None
self.fileSize = None
self.firstHeaderSize = 0
self.basicHeaderSize = 24
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.idProfile = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.datablock = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex = 9999
Miguel Valdez
El modulo de búsqueda de archivos fue corregido
r12
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.delay = 7 #seconds
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.nTries = 3 #quantity tries
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.nFiles = 3 #number of files for searching
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.year = 0
Daniel Valdez
En IO/Header.py:...
r15
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.doy = 0
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.set = 0
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.ext = ".r"
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.path = None
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.optchar = "D"
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.pts2read = 0
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.blocksize = 0
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.utc = 0
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Victor Sarmiento
VOTAJEIO.py:...
r46 self.nBlocks = 0
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 def hasNotDataInBuffer(self):
if self.datablockIndex >= self.m_ProcessingHeader.profilesPerBlock:
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 return 1
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 return 0
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 def getBlockDimension(self):
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.pts2read = self.m_ProcessingHeader.profilesPerBlock * self.m_ProcessingHeader.numHeights * self.m_SystemHeader.numChannels
self.blocksize = self.pts2read
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 def readBlock(self):
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 """
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 readBlock lee el bloque de datos desde la posicion actual del puntero del archivo
(self.fp) y actualiza todos los parametros relacionados al bloque de datos
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 (metadata + data). La data leida es almacenada en el buffer y el contador del buffer
es seteado a 0
Inputs:
None
Return:
None
Victor Sarmiento
VOTAJEIO.py:...
r46 Affected:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.datablock
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.flagIsNewFile
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.idProfile
self.flagIsNewBlock
self.nReadBlocks
Victor Sarmiento
VOTAJEIO.py:...
r46 Exceptions:
Si un bloque leido no es un bloque valido
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 """
Victor Sarmiento
VOTAJEIO.py:...
r46 blockOk_flag = False
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 fpointer = self.fp.tell()
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 junk = numpy.fromfile( self.fp, self.dataType, self.pts2read )
Victor Sarmiento
VoltageIO.py...
r37
if self.online:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 if junk.size != self.blocksize:
for nTries in range( self.nTries ):
Victor Sarmiento
VOTAJEIO.py:...
r46 print "\tWaiting for the next block, try %03d ..." % (nTries+1)
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 time.sleep( self.delay )
self.fp.seek( fpointer )
fpointer = self.fp.tell()
junk = numpy.fromfile( self.fp, self.dataType, self.pts2read )
if junk.size == self.blocksize:
Victor Sarmiento
VOTAJEIO.py:...
r46 blockOk_flag = True
Victor Sarmiento
VoltageIO.py...
r37 break
Victor Sarmiento
VOTAJEIO.py:...
r46
if not( blockOk_flag ):
return 0
Victor Sarmiento
VoltageIO.py...
r37
Victor Sarmiento
VOTAJEIO.py:...
r46 try:
junk = junk.reshape( (self.m_ProcessingHeader.profilesPerBlock, self.m_ProcessingHeader.numHeights, self.m_SystemHeader.numChannels) )
except:
print "Data file %s is invalid" % self.filename
return 0
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Victor Sarmiento
VOTAJEIO.py:...
r46 #data = junk['real'] + junk['imag']*1j
self.datablock = junk['real'] + junk['imag']*1j
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex = 0
self.flagIsNewFile = 0
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.idProfile = 0
Miguel Valdez
Se añadio dos atributos a la clase de lectura de voltajes: nReadBlocks y flagIsNewBlock.
r13 self.flagIsNewBlock = 1
Victor Sarmiento
VOTAJEIO.py:...
r46
Miguel Valdez
Se añadio dos atributos a la clase de lectura de voltajes: nReadBlocks y flagIsNewBlock.
r13 self.nReadBlocks += 1
Victor Sarmiento
VOTAJEIO.py:...
r46 self.nBlocks += 1
return 1
def getData(self):
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 """
getData obtiene una unidad de datos del buffer de lectura y la copia a la clase "Voltage"
con todos los parametros asociados a este (metadata). cuando no hay datos en el buffer de
Miguel Valdez
El modulo de búsqueda de archivos fue corregido
r12 lectura es necesario hacer una nueva lectura de los bloques de datos usando "readNextBlock"
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20
Ademas incrementa el contador del buffer en 1.
Return:
data : retorna un perfil de voltages (alturas * canales) copiados desde el
buffer. Si no hay mas archivos a leer retorna None.
Variables afectadas:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj
self.datablockIndex
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.idProfile
Victor Sarmiento
VoltageIO.py...
r37 Affected:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj
self.datablockIndex
Victor Sarmiento
VoltageIO.py...
r37 self.flagResetProcessing
self.flagIsNewBlock
self.idProfile
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 """
Victor Sarmiento
VOTAJEIO.py:...
r46 if self.noMoreFiles: return 0
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 self.flagResetProcessing = 0
Miguel Valdez
Se añadio dos atributos a la clase de lectura de voltajes: nReadBlocks y flagIsNewBlock.
r13 self.flagIsNewBlock = 0
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 if self.hasNotDataInBuffer():
Victor Sarmiento
VoltageIO.py...
r37
Victor Sarmiento
VOTAJEIO.py:...
r46 if not( self.readNextBlock() ):
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.setNextFile()
Victor Sarmiento
VOTAJEIO.py:...
r46 return 0
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj.m_BasicHeader = self.m_BasicHeader.copy()
self.m_DataObj.m_ProcessingHeader = self.m_ProcessingHeader.copy()
self.m_DataObj.m_RadarControllerHeader = self.m_RadarControllerHeader.copy()
self.m_DataObj.m_SystemHeader = self.m_SystemHeader.copy()
self.m_DataObj.heights = self.heights
self.m_DataObj.dataType = self.dataType
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Estructura de directorios del modelo agregada.
r9 if self.noMoreFiles == 1:
Miguel Valdez
r11 print 'Process finished'
Victor Sarmiento
VOTAJEIO.py:...
r46 return 0
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Los campos de Author y Id fueron agregados a todos los modulos
r18 #data es un numpy array de 3 dmensiones (perfiles, alturas y canales)
Daniel Valdez
En IO/Header.py:...
r15
Victor Sarmiento
VOTAJEIO.py:...
r46 if self.datablock == None:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj.flagNoData = True
Victor Sarmiento
VOTAJEIO.py:...
r46 return 0
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 time = self.m_BasicHeader.utc + self.datablockIndex * self.ippSeconds
self.utc = time
#self.m_DataObj.m_BasicHeader.utc = time
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj.flagNoData = False
self.m_DataObj.flagResetProcessing = self.flagResetProcessing
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj.data = self.datablock[self.datablockIndex,:,:]
self.m_DataObj.idProfile = self.idProfile
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex += 1
Miguel Valdez
Dentro del paquete IO se agrego un sufijo "IO" a todos los modulos
r20 self.idProfile += 1
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
#call setData - to Data Object
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 return 1 #self.m_DataObj.data
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
r49 class VoltageWriter( JRODataWriter ):
Victor Sarmiento
VoltageIO.py...
r37 """
Esta clase permite escribir datos de voltajes a archivos procesados (.r). La escritura
de los datos siempre se realiza por bloques.
"""
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22 __configHeaderFile = 'wrSetHeadet.txt'
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Victor Sarmiento
VOTAJEIO.py:...
r46 def __init__(self,m_Voltage=None):
Victor Sarmiento
VoltageIO.py...
r37 """
Inicializador de la clase VoltageWriter para la escritura de datos de espectros.
Affected:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj
Victor Sarmiento
VoltageIO.py...
r37 self.m_BasicHeader
self.m_SystemHeader
self.m_RadarControllerHeader
self.m_ProcessingHeader
Return: None
"""
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19 if m_Voltage == None:
m_Voltage = Voltage()
Miguel Valdez
Estructura de directorios del modelo agregada.
r9
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.m_DataObj = m_Voltage
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.fp = None
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.format = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.blocksCounter = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.setFile = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.flagIsNewFile = 1
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.datablock = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex = 0
self.dataType = None
self.ext = ".r"
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.path = None
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.optchar = "D"
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.shapeBuffer = None
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19 self.nWriteBlocks = 0
self.flagIsNewBlock = 0
self.noMoreFiles = 0
self.filename = None
self.m_BasicHeader= BasicHeader()
self.m_SystemHeader = SystemHeader()
self.m_RadarControllerHeader = RadarControllerHeader()
self.m_ProcessingHeader = ProcessingHeader()
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 def hasAllDataInBuffer(self):
if self.datablockIndex >= self.m_ProcessingHeader.profilesPerBlock:
return 1
return 0
Victor Sarmiento
VoltageIO.py...
r37
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 def setBlockDimension(self):
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.shapeBuffer = (self.m_ProcessingHeader.profilesPerBlock,
self.m_ProcessingHeader.numHeights,
self.m_SystemHeader.numChannels )
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablock = numpy.zeros(self.shapeBuffer, numpy.dtype('complex'))
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 def writeBlock(self):
Victor Sarmiento
VoltageIO.py...
r37 """
Escribe el buffer en el file designado
Affected:
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex
self.flagIsNewFile
Victor Sarmiento
VoltageIO.py...
r37 self.flagIsNewBlock
self.nWriteBlocks
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.blocksCounter
Victor Sarmiento
VoltageIO.py...
r37
Return: None
"""
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 data = numpy.zeros( self.shapeBuffer, self.dataType )
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 data['real'] = self.datablock.real
data['imag'] = self.datablock.imag
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Victor Sarmiento
VoltageIO.py...
r37 data = data.reshape( (-1) )
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 data.tofile( self.fp )
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.datablock.fill(0)
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex = 0
self.flagIsNewFile = 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19 self.flagIsNewBlock = 1
self.nWriteBlocks += 1
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.blocksCounter += 1
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Victor Sarmiento
VOTAJEIO.py:...
r46 def putData(self):
Victor Sarmiento
VoltageIO.py...
r37 """
Setea un bloque de datos y luego los escribe en un file
Affected:
self.flagIsNewBlock
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex
Victor Sarmiento
VoltageIO.py...
r37
Return:
0 : Si no hay data o no hay mas files que puedan escribirse
1 : Si se escribio la data de un bloque en un file
"""
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19 self.flagIsNewBlock = 0
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 if self.m_DataObj.flagNoData:
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23 return 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 if self.m_DataObj.flagResetProcessing:
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.datablock.fill(0)
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex = 0
self.setNextFile()
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablock[self.datablockIndex,:,:] = self.m_DataObj.data
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 self.datablockIndex += 1
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
Miguel Valdez
Se modifico la clase JRODataReader y JRODataWriter para albergar todos los metodos comunes entre Voltaje y Espectra. Solo los metodos particulares se dejaron en la clase VoltageReader, VoltageWriter, SpectraReader y SpectraWriter
r53 if self.hasAllDataInBuffer():
self.getHeader()
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19 self.writeNextBlock()
if self.noMoreFiles:
Miguel Valdez
Optimización del modulo de escritura de voltajes.
r23 #print 'Process finished'
return 0
Daniel Valdez
inicializacion de atributos en el metodo __init__ de la clase IO.Voltage ...
r19
return 1
Daniel Valdez
Modulo de Escritura de Voltage formato Jicamarca.
r22