jroamisr.py
87 lines
| 2.8 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) | ||
|
r1167 | for key in list(inputObj.__dict__.keys()): | ||
|
r491 | self.__dict__[key] = inputObj.__dict__[key] | ||
|
r501 | |||
r1338 | @property | |||
def nHeights(self): | ||||
|
r501 | |||
return len(self.heightList) | ||||
|
r491 | |||
def isEmpty(self): | ||||
|
r501 | return self.flagNoData | ||
|
r587 | |||
r1338 | @property | |||
def timeInterval(self): | ||||
|
r587 | |||
r1338 | return self.ippSeconds * self.nCohInt | |||