##// END OF EJS Templates
changes to integrate AMISR Reader with Voltage and Spectra Objs
changes to integrate AMISR Reader with Voltage and Spectra Objs

File last commit:

r475:b9af3aa878ca
r475:b9af3aa878ca
Show More
jrodata.py
689 lines | 16.5 KiB | text/x-python | PythonLexer
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 '''
$Author: murco $
$Id: JROData.py 173 2012-11-20 15:06:21Z murco $
'''
import os, sys
import copy
import numpy
Miguel Valdez
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
r224 import datetime
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Actulizacion de nombres en minusculas al importarlos en los modulos
r178 from jroheaderIO import SystemHeader, RadarControllerHeader
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450 def hildebrand_sekhon(data, navg):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
data = data.copy()
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450 sortdata = numpy.sort(data,axis=None)
lenOfData = len(sortdata)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 nums_min = lenOfData/10
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450 if (lenOfData/10) > 2:
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 nums_min = lenOfData/10
else:
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450 nums_min = 2
Daniel Valdez
A SpectraProc se agrega:...
r445 sump = 0.
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
sumq = 0.
j = 0
cont = 1
while((cont==1)and(j<lenOfData)):
Daniel Valdez
A SpectraProc se agrega:...
r445 sump += sortdata[j]
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
sumq += sortdata[j]**2
j += 1
if j > nums_min:
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450 rtest = float(j)/(j-1) + 1.0/navg
if ((sumq*j) > (rtest*sump**2)):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 j = j - 1
Daniel Valdez
A SpectraProc se agrega:...
r445 sump = sump - sortdata[j]
sumq = sumq - sortdata[j]**2
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 cont = 0
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450
lnoise = sump /j
stdv = numpy.sqrt((sumq - lnoise**2)/(j - 1))
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 return lnoise
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 class JROData:
# m_BasicHeader = BasicHeader()
# m_ProcessingHeader = ProcessingHeader()
systemHeaderObj = SystemHeader()
radarControllerHeaderObj = RadarControllerHeader()
# data = None
type = None
dtype = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # nChannels = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Daniel Valdez
Adicion de la clase RTIPlot
r207 # nHeights = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
nProfiles = None
heightList = None
channelList = None
flagNoData = True
flagTimeBlock = False
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 useLocalTime = False
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 utctime = None
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 timeZone = None
dstFlag = None
errorCount = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 blocksize = None
nCode = None
nBaud = None
code = None
Miguel Valdez
r232 flagDecodeData = False #asumo q la data no esta decodificada
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r232 flagDeflipData = False #asumo q la data no esta sin flip
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
flagShiftFFT = False
ippSeconds = None
timeInterval = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
nCohInt = None
noise = None
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
Adicion del factor de normalizacion en la clase Spectra....
r245 windowOfFilter = 1
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 #Speed of ligth
C = 3e8
frequency = 49.92e6
Daniel Valdez
Se agrega a JROData el flag realtime, para este caso se da prioridad al procesamiento de datos. Los graficos se generan solo cuando el tiempo de procesamiento es cercano al tiempo de adquisición.
r360
realtime = False
Daniel Valdez
Calculo y ploteo de la fase del Beacon
r453
beacon_heiIndexList = None
Daniel Valdez
se agregan variables para salvar graficos en disco para el ultimo bloque de datos
r457
last_block = None
blocknow = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
def __init__(self):
raise ValueError, "This class has not been implemented"
def copy(self, inputObj=None):
if inputObj == None:
return copy.deepcopy(self)
for key in inputObj.__dict__.keys():
self.__dict__[key] = inputObj.__dict__[key]
def deepcopy(self):
return copy.deepcopy(self)
Miguel Valdez
Se añadio el metodo isEmpty a JROData
r185 def isEmpty(self):
Daniel Valdez
Se agrega el archivo de test: test4NewSignalChain.py, este test funciona correctamente...
r189 return self.flagNoData
Miguel Valdez
Se añadio el metodo isEmpty a JROData
r185
Daniel Valdez
Adicion de la clase RTIPlot
r207 def getNoise(self):
raise ValueError, "Not implemented"
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 def getNChannels(self):
return len(self.channelList)
def getChannelIndexList(self):
return range(self.nChannels)
Daniel Valdez
Adicion de la clase RTIPlot
r207 def getNHeights(self):
return len(self.heightList)
def getHeiRange(self, extrapoints=0):
heis = self.heightList
# deltah = self.heightList[1] - self.heightList[0]
#
# heis.append(self.heightList[-1])
return heis
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 def getltctime(self):
if self.useLocalTime:
return self.utctime - self.timeZone*60
return self.utctime
Daniel Valdez
Adicion de la clase RTIPlot
r207 def getDatatime(self):
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 datatime = datetime.datetime.utcfromtimestamp(self.ltctime)
Miguel Valdez
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
r224 return datatime
def getTimeRange(self):
Daniel Valdez
Adicion de la clase RTIPlot
r207 datatime = []
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 datatime.append(self.ltctime)
datatime.append(self.ltctime + self.timeInterval)
Daniel Valdez
Adicion de la clase RTIPlot
r207
datatime = numpy.array(datatime)
return datatime
def getFmax(self):
PRF = 1./(self.ippSeconds * self.nCohInt)
fmax = PRF/2.
return fmax
def getVmax(self):
_lambda = self.C/self.frequency
Miguel Valdez
Bugs fixed: Eliminacion de numpy.abs() en el calculo de las cross-correlaciones y mejoras en los graficos de CrossSpectra
r227 vmax = self.getFmax() * _lambda
Daniel Valdez
Adicion de la clase RTIPlot
r207
return vmax
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 nChannels = property(getNChannels, "I'm the 'nChannel' property.")
channelIndexList = property(getChannelIndexList, "I'm the 'channelIndexList' property.")
Daniel Valdez
Adicion de la clase RTIPlot
r207 nHeights = property(getNHeights, "I'm the 'nHeights' property.")
noise = property(getNoise, "I'm the 'nHeights' property.")
Miguel Valdez
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
r224 datatime = property(getDatatime, "I'm the 'datatime' property")
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 ltctime = property(getltctime, "I'm the 'ltctime' property")
Daniel Valdez
Adicion de la clase RTIPlot
r207
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 class Voltage(JROData):
#data es un numpy array de 2 dmensiones (canales, alturas)
data = None
def __init__(self):
'''
Constructor
'''
self.radarControllerHeaderObj = RadarControllerHeader()
self.systemHeaderObj = SystemHeader()
self.type = "Voltage"
self.data = None
self.dtype = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # self.nChannels = 0
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Daniel Valdez
Adicion de la clase RTIPlot
r207 # self.nHeights = 0
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.nProfiles = None
self.heightList = None
self.channelList = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # self.channelIndexList = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.flagNoData = True
self.flagTimeBlock = False
self.utctime = None
Miguel Valdez
-Se ha cambiado la forma de calcular los segundos en tiempo local con el parametro Timezone tomado del archivo leido....
r344 self.timeZone = None
self.dstFlag = None
self.errorCount = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 self.nCohInt = None
self.blocksize = None
Miguel Valdez
r232
self.flagDecodeData = False #asumo q la data no esta decodificada
self.flagDeflipData = False #asumo q la data no esta sin flip
self.flagShiftFFT = False
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
def getNoisebyHildebrand(self):
"""
Determino el nivel de ruido usando el metodo Hildebrand-Sekhon
Return:
noiselevel
"""
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 for channel in range(self.nChannels):
daux = self.data_spc[channel,:,:]
self.noise[channel] = hildebrand_sekhon(daux, self.nCohInt)
return self.noise
def getNoise(self, type = 1):
self.noise = numpy.zeros(self.nChannels)
if type == 1:
noise = self.getNoisebyHildebrand()
return 10*numpy.log10(noise)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 class Spectra(JROData):
#data es un numpy array de 2 dmensiones (canales, perfiles, alturas)
data_spc = None
#data es un numpy array de 2 dmensiones (canales, pares, alturas)
data_cspc = None
#data es un numpy array de 2 dmensiones (canales, alturas)
data_dc = None
nFFTPoints = None
nPairs = None
pairsList = None
nIncohInt = None
wavelength = None #Necesario para cacular el rango de velocidad desde la frecuencia
nCohInt = None #se requiere para determinar el valor de timeInterval
Daniel Valdez
A SpectraProc se agrega:...
r445 ippFactor = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 def __init__(self):
'''
Constructor
'''
self.radarControllerHeaderObj = RadarControllerHeader()
self.systemHeaderObj = SystemHeader()
self.type = "Spectra"
# self.data = None
self.dtype = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # self.nChannels = 0
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Daniel Valdez
Adicion de la clase RTIPlot
r207 # self.nHeights = 0
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.nProfiles = None
self.heightList = None
self.channelList = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # self.channelIndexList = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.flagNoData = True
self.flagTimeBlock = False
self.utctime = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.nCohInt = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 self.nIncohInt = None
self.blocksize = None
self.nFFTPoints = None
self.wavelength = None
Miguel Valdez
r232
self.flagDecodeData = False #asumo q la data no esta decodificada
self.flagDeflipData = False #asumo q la data no esta sin flip
self.flagShiftFFT = False
Daniel Valdez
jrodata.py: el atributo ippFactor se inicia en 1...
r448
self.ippFactor = 1
Daniel Valdez
En jrodata.py se eliminan los metodos sorting_bruce, getNoisebySort, getNoisebyWindow....
r450
self.noise = None
Daniel Valdez
Calculo y ploteo de la fase del Beacon
r453
self.beacon_heiIndexList = []
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
def getNoisebyHildebrand(self):
"""
Determino el nivel de ruido usando el metodo Hildebrand-Sekhon
Return:
noiselevel
"""
Daniel Valdez
Bug Fixed: Actualizacion del valor estimado del ruido
r452 noise = numpy.zeros(self.nChannels)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 for channel in range(self.nChannels):
daux = self.data_spc[channel,:,:]
Daniel Valdez
Bug Fixed: Actualizacion del valor estimado del ruido
r452 noise[channel] = hildebrand_sekhon(daux, self.nIncohInt)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
Bug Fixed: Actualizacion del valor estimado del ruido
r452 return noise
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
el metodo getNoise en Spectra no requiere parametros de entrada.
r451 def getNoise(self):
Daniel Valdez
Bug Fixed: Actualizacion del valor estimado del ruido
r452 if self.noise != None:
return self.noise
else:
noise = self.getNoisebyHildebrand()
return noise
Daniel Valdez
Se agrega clase para ploteo de Espectros Cruzados.
r215
def getFreqRange(self, extrapoints=0):
Daniel Valdez
A SpectraProc se agrega:...
r445 deltafreq = self.getFmax() / (self.nFFTPoints*self.ippFactor)
Miguel Valdez
Bugs fixed: Eliminacion de numpy.abs() en el calculo de las cross-correlaciones y mejoras en los graficos de CrossSpectra
r227 freqrange = deltafreq*(numpy.arange(self.nFFTPoints+extrapoints)-self.nFFTPoints/2.) - deltafreq/2
Daniel Valdez
Se agrega clase para ploteo de Espectros Cruzados.
r215
return freqrange
def getVelRange(self, extrapoints=0):
Daniel Valdez
A SpectraProc se agrega:...
r445 deltav = self.getVmax() / (self.nFFTPoints*self.ippFactor)
Daniel Valdez
Se agrega clase para ploteo de Espectros Cruzados.
r215 velrange = deltav*(numpy.arange(self.nFFTPoints+extrapoints)-self.nFFTPoints/2.) - deltav/2
return velrange
def getNPairs(self):
return len(self.pairsList)
def getPairsIndexList(self):
return range(self.nPairs)
Daniel Valdez
Adicion del factor de normalizacion en la clase Spectra....
r245 def getNormFactor(self):
pwcode = 1
if self.flagDecodeData:
pwcode = numpy.sum(self.code[0]**2)
Daniel Valdez
se actualiza el calculo del factor de normalizacion
r463 #normFactor = min(self.nFFTPoints,self.nProfiles)*self.nIncohInt*self.nCohInt*pwcode*self.windowOfFilter
normFactor = self.nProfiles*self.nIncohInt*self.nCohInt*pwcode*self.windowOfFilter
Daniel Valdez
Adicion del factor de normalizacion en la clase Spectra....
r245
return normFactor
Miguel Valdez
Se agregaron las propiedades flag_cspc y flag_dc a la clase Spectra...
r266 def getFlagCspc(self):
if self.data_cspc == None:
return True
return False
def getFlagDc(self):
if self.data_dc == None:
return True
return False
Daniel Valdez
Se agrega clase para ploteo de Espectros Cruzados.
r215 nPairs = property(getNPairs, "I'm the 'nPairs' property.")
pairsIndexList = property(getPairsIndexList, "I'm the 'pairsIndexList' property.")
Daniel Valdez
Adicion del factor de normalizacion en la clase Spectra....
r245 normFactor = property(getNormFactor, "I'm the 'getNormFactor' property.")
Miguel Valdez
Se agregaron las propiedades flag_cspc y flag_dc a la clase Spectra...
r266 flag_cspc = property(getFlagCspc)
flag_dc = property(getFlagDc)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
class SpectraHeis(JROData):
data_spc = None
data_cspc = None
data_dc = None
nFFTPoints = None
nPairs = None
pairsList = None
nIncohInt = None
def __init__(self):
self.radarControllerHeaderObj = RadarControllerHeader()
self.systemHeaderObj = SystemHeader()
self.type = "SpectraHeis"
self.dtype = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # self.nChannels = 0
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Daniel Valdez
Adicion de la clase RTIPlot
r207 # self.nHeights = 0
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.nProfiles = None
self.heightList = None
self.channelList = None
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 # self.channelIndexList = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.flagNoData = True
self.flagTimeBlock = False
self.nPairs = 0
self.utctime = None
self.blocksize = None
Daniel Valdez
Se agrega el metodo FitsReader y el test FitsExp.py
r353
class Fits:
Daniel Valdez
En esta version se tiene:...
r439 heightList = None
channelList = None
flagNoData = True
flagTimeBlock = False
useLocalTime = False
utctime = None
timeZone = None
ippSeconds = None
timeInterval = None
nCohInt = None
nIncohInt = None
noise = None
windowOfFilter = 1
#Speed of ligth
C = 3e8
frequency = 49.92e6
realtime = False
Daniel Valdez
Se agrega el metodo FitsReader y el test FitsExp.py
r353 def __init__(self):
Daniel Valdez
En esta version se tiene:...
r439
self.type = "Fits"
self.nProfiles = None
self.heightList = None
self.channelList = None
# self.channelIndexList = None
self.flagNoData = True
Daniel Valdez
Se agrega el metodo FitsReader y el test FitsExp.py
r353 self.utctime = None
Daniel Valdez
En esta version se tiene:...
r439
self.nCohInt = None
self.nIncohInt = None
self.useLocalTime = True
# self.utctime = None
# self.timeZone = None
# self.ltctime = None
# self.timeInterval = None
# self.header = None
# self.data_header = None
# self.data = None
# self.datatime = None
# self.flagNoData = False
# self.expName = ''
# self.nChannels = None
# self.nSamples = None
# self.dataBlocksPerFile = None
# self.comments = ''
#
Daniel Valdez
Se agrega el metodo FitsReader y el test FitsExp.py
r353
def getltctime(self):
if self.useLocalTime:
return self.utctime - self.timeZone*60
return self.utctime
def getDatatime(self):
datatime = datetime.datetime.utcfromtimestamp(self.ltctime)
return datatime
def getTimeRange(self):
datatime = []
datatime.append(self.ltctime)
datatime.append(self.ltctime + self.timeInterval)
datatime = numpy.array(datatime)
return datatime
Daniel Valdez
En esta version se tiene:...
r439 def getHeiRange(self):
heis = self.heightList
return heis
Daniel Valdez
Se agrega el metodo FitsReader y el test FitsExp.py
r353 def isEmpty(self):
return self.flagNoData
Daniel Valdez
En esta version se tiene:...
r439 def getNHeights(self):
return len(self.heightList)
def getNChannels(self):
return len(self.channelList)
def getChannelIndexList(self):
return range(self.nChannels)
def getNoise(self, type = 1):
self.noise = numpy.zeros(self.nChannels)
if type == 1:
noise = self.getNoisebyHildebrand()
if type == 2:
noise = self.getNoisebySort()
if type == 3:
noise = self.getNoisebyWindow()
return noise
Daniel Valdez
Se agrega el metodo FitsReader y el test FitsExp.py
r353 datatime = property(getDatatime, "I'm the 'datatime' property")
Daniel Valdez
En esta version se tiene:...
r439 nHeights = property(getNHeights, "I'm the 'nHeights' property.")
nChannels = property(getNChannels, "I'm the 'nChannel' property.")
channelIndexList = property(getChannelIndexList, "I'm the 'channelIndexList' property.")
noise = property(getNoise, "I'm the 'nHeights' property.")
datatime = property(getDatatime, "I'm the 'datatime' property")
ltctime = property(getltctime, "I'm the 'ltctime' property")
Daniel Valdez
there is a new class AMISR to read HDF5 files from that AMISR system.
r473 ltctime = property(getltctime, "I'm the 'ltctime' property")
class AMISR:
def __init__(self):
self.flagNoData = True
self.data = None
self.utctime = None
self.type = "AMISR"
Daniel Valdez
AMISR Reader integration with Signal Chain Blocks, this time just only for Voltages to Profile Selection and Plotting Scope(Power,IQ) and Power Profile(dB). There is thwo python scripts as experiment's test.
r474 #propiedades para compatibilidad con Voltages
self.timeZone = 0#self.dataIn.timeZone
self.dstFlag = 0#self.dataIn.dstFlag
self.errorCount = 0#self.dataIn.errorCount
self.useLocalTime = True#self.dataIn.useLocalTime
self.radarControllerHeaderObj = None#self.dataIn.radarControllerHeaderObj.copy()
self.systemHeaderObj = None#self.dataIn.systemHeaderObj.copy()
self.channelList = [1]#self.dataIn.channelList esto solo aplica para el caso de AMISR
self.dtype = numpy.dtype([('real','<f4'),('imag','<f4')])
self.flagTimeBlock = None#self.dataIn.flagTimeBlock
#self.utctime = #self.firstdatatime
self.flagDecodeData = None#self.dataIn.flagDecodeData #asumo q la data esta decodificada
self.flagDeflipData = None#self.dataIn.flagDeflipData #asumo q la data esta sin flip
self.nCohInt = 1#self.dataIn.nCohInt
self.nIncohInt = 1
self.ippSeconds = 0.004#self.dataIn.ippSeconds, segun el filename/Setup/Tufile
self.windowOfFilter = None#self.dataIn.windowOfFilter
self.timeInterval = None#self.dataIn.timeInterval*self.dataOut.nFFTPoints*self.dataOut.nIncohInt
Daniel Valdez
changes to integrate AMISR Reader with Voltage and Spectra Objs
r475 self.frequency = 20000000#self.dataIn.frequency
Daniel Valdez
AMISR Reader integration with Signal Chain Blocks, this time just only for Voltages to Profile Selection and Plotting Scope(Power,IQ) and Power Profile(dB). There is thwo python scripts as experiment's test.
r474 self.realtime = 0#self.dataIn.realtime
#actualizar en la lectura de datos
self.heightList = None#self.dataIn.heightList
self.nProfiles = None#self.dataOut.nFFTPoints
self.nBaud = None#self.dataIn.nBaud
self.nCode = None#self.dataIn.nCode
self.code = None#self.dataIn.code
Daniel Valdez
there is a new class AMISR to read HDF5 files from that AMISR system.
r473 def isEmpty(self):
return self.flagNoData