jroamisr.py
89 lines
| 3.0 KiB
| text/x-python
|
PythonLexer
|
r491 | import numpy | |
|
r568 | import copy | |
|
r491 | ||
|
r501 | class Beam: | |
def __init__(self): | |||
self.codeList = [] | |||
self.azimuthList = [] | |||
self.zenithList = [] | |||
|
r491 | class AMISR: | |
def __init__(self): | |||
self.flagNoData = True | |||
self.data = None | |||
self.utctime = None | |||
self.type = "AMISR" | |||
#propiedades para compatibilidad con Voltages | |||
|
r497 | self.timeZone = 0#timezone like jroheader, difference in minutes between UTC and localtime | |
|
r491 | 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 = [0]#self.dataIn.channelList esto solo aplica para el caso de AMISR | |||
self.dtype = numpy.dtype([('real','<f4'),('imag','<f4')]) | |||
|
r568 | self.flagDiscontinuousBlock = None#self.dataIn.flagDiscontinuousBlock | |
|
r491 | #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 = None#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 | |||
self.frequency = None#self.dataIn.frequency | |||
self.realtime = 0#self.dataIn.realtime | |||
#actualizar en la lectura de datos | |||
self.heightList = None#self.dataIn.heightList | |||
self.nProfiles = None#Number of samples or nFFTPoints | |||
self.nRecords = None | |||
self.nBeams = None | |||
self.nBaud = None#self.dataIn.nBaud | |||
self.nCode = None#self.dataIn.nCode | |||
self.code = None#self.dataIn.code | |||
#consideracion para los Beams | |||
self.beamCodeDict = None | |||
self.beamRangeDict = None | |||
|
r499 | self.beamcode = None | |
self.azimuth = None | |||
self.zenith = None | |||
self.gain = None | |||
|
r497 | self.npulseByFrame = None | |
|
r501 | self.profileIndex = None | |
self.beam = Beam() | |||
|
r491 | def copy(self, inputObj=None): | |
|
r611 | if inputObj is None: | |
|
r491 | return copy.deepcopy(self) | |
for key in inputObj.__dict__.keys(): | |||
self.__dict__[key] = inputObj.__dict__[key] | |||
|
r501 | ||
def getNHeights(self): | |||
return len(self.heightList) | |||
|
r491 | ||
def isEmpty(self): | |||
|
r501 | return self.flagNoData | |
|
r587 | ||
def getTimeInterval(self): | |||
timeInterval = self.ippSeconds * self.nCohInt | |||
return timeInterval | |||
|
r501 | ||
|
r587 | timeInterval = property(getTimeInterval, "I'm the 'timeInterval' property") | |
|
r501 | nHeights = property(getNHeights, "I'm the 'nHeights' property.") |