jroamisr.py
87 lines
| 2.9 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" | ||||
r1396 | # propiedades para compatibilidad con Voltages | |||
self.timeZone = 0 # timezone like jroheader, difference in minutes between UTC and localtime | ||||
self.dstFlag = 0 # self.dataIn.dstFlag | ||||
self.errorCount = 0 # self.dataIn.errorCount | ||||
self.useLocalTime = True # self.dataIn.useLocalTime | ||||
|
r491 | |||
r1396 | 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')]) | ||||
|
r491 | |||
r1396 | self.flagDiscontinuousBlock = None # self.dataIn.flagDiscontinuousBlock | |||
# 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 | ||||
|
r491 | |||
r1396 | self.nCohInt = 1 # self.dataIn.nCohInt | |||
|
r491 | self.nIncohInt = 1 | ||
r1396 | self.ippSeconds = None # self.dataIn.ippSeconds, segun el filename/Setup/Tufile | |||
self.windowOfFilter = None # self.dataIn.windowOfFilter | ||||
|
r491 | |||
r1396 | self.timeInterval = None # self.dataIn.timeInterval*self.dataOut.nFFTPoints*self.dataOut.nIncohInt | |||
self.frequency = None # self.dataIn.frequency | ||||
self.realtime = 0 # self.dataIn.realtime | ||||
|
r491 | |||
r1396 | # actualizar en la lectura de datos | |||
self.heightList = None # self.dataIn.heightList | ||||
self.nProfiles = None # Number of samples or nFFTPoints | ||||
|
r491 | self.nRecords = None | ||
self.nBeams = None | ||||
r1396 | self.nBaud = None # self.dataIn.nBaud | |||
self.nCode = None # self.dataIn.nCode | ||||
self.code = None # self.dataIn.code | ||||
|
r491 | |||
r1396 | # consideracion para los Beams | |||
|
r491 | 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 | |||