@@ -11,7 +11,7 class Data: | |||||
11 | ''' |
|
11 | ''' | |
12 | classdocs |
|
12 | classdocs | |
13 | ''' |
|
13 | ''' | |
14 |
|
|
14 | type = None | |
15 |
|
15 | |||
16 | def __init__(self): |
|
16 | def __init__(self): | |
17 | ''' |
|
17 | ''' | |
@@ -50,7 +50,7 class JROData(Data): | |||||
50 | m_ProcessingHeader = ProcessingHeader() |
|
50 | m_ProcessingHeader = ProcessingHeader() | |
51 | m_SystemHeader = SystemHeader() |
|
51 | m_SystemHeader = SystemHeader() | |
52 | m_BasicHeader = BasicHeader() |
|
52 | m_BasicHeader = BasicHeader() | |
53 | m_Noise = Noise() |
|
53 | m_NoiseObj = Noise() | |
54 |
|
54 | |||
55 | data = None |
|
55 | data = None | |
56 | dataType = None |
|
56 | dataType = None |
@@ -56,16 +56,18 class BasicHeader(Header): | |||||
56 | pass |
|
56 | pass | |
57 |
|
57 | |||
58 | def read(self, fp): |
|
58 | def read(self, fp): | |
59 |
|
59 | try: | ||
60 | header = numpy.fromfile(fp, self.struct,1) |
|
60 | header = numpy.fromfile(fp, self.struct,1) | |
61 | self.size = header['nSize'][0] |
|
61 | self.size = header['nSize'][0] | |
62 | self.version = header['nVersion'][0] |
|
62 | self.version = header['nVersion'][0] | |
63 | self.dataBlock = header['nDataBlockId'][0] |
|
63 | self.dataBlock = header['nDataBlockId'][0] | |
64 | self.utc = header['nUtime'][0] |
|
64 | self.utc = header['nUtime'][0] | |
65 | self.miliSecond = header['nMilsec'][0] |
|
65 | self.miliSecond = header['nMilsec'][0] | |
66 | self.timeZone = header['nTimezone'][0] |
|
66 | self.timeZone = header['nTimezone'][0] | |
67 | self.dstFlag = header['nDstflag'][0] |
|
67 | self.dstFlag = header['nDstflag'][0] | |
68 | self.errorCount = header['nErrorCount'][0] |
|
68 | self.errorCount = header['nErrorCount'][0] | |
|
69 | except: | |||
|
70 | return 0 | |||
69 |
|
71 | |||
70 | return 1 |
|
72 | return 1 | |
71 |
|
73 | |||
@@ -104,14 +106,16 class SystemHeader(Header): | |||||
104 |
|
106 | |||
105 |
|
107 | |||
106 | def read(self, fp): |
|
108 | def read(self, fp): | |
107 | header = numpy.fromfile(fp,self.struct,1) |
|
109 | try: | |
108 | self.size = header['nSize'][0] |
|
110 | header = numpy.fromfile(fp,self.struct,1) | |
109 |
self. |
|
111 | self.size = header['nSize'][0] | |
110 |
self.num |
|
112 | self.numSamples = header['nNumSamples'][0] | |
111 |
self.num |
|
113 | self.numProfiles = header['nNumProfiles'][0] | |
112 |
self. |
|
114 | self.numChannels = header['nNumChannels'][0] | |
113 |
self. |
|
115 | self.adcResolution = header['nADCResolution'][0] | |
114 |
|
116 | self.pciDioBusWidth = header['nPCDIOBusWidth'][0] | ||
|
117 | except: | |||
|
118 | return 0 | |||
115 |
|
119 | |||
116 | return 1 |
|
120 | return 1 | |
117 |
|
121 | |||
@@ -184,27 +188,30 class RadarControllerHeader(Header): | |||||
184 |
|
188 | |||
185 |
|
189 | |||
186 | def read(self, fp): |
|
190 | def read(self, fp): | |
187 | header = numpy.fromfile(fp,self.struct,1) |
|
191 | try: | |
188 | self.size = header['nSize'][0] |
|
192 | header = numpy.fromfile(fp,self.struct,1) | |
189 |
self. |
|
193 | self.size = header['nSize'][0] | |
190 |
self. |
|
194 | self.expType = header['nExpType'][0] | |
191 |
self. |
|
195 | self.nTx = header['nNTx'][0] | |
192 |
self. |
|
196 | self.ipp = header['fIpp'][0] | |
193 |
self.tx |
|
197 | self.txA = header['fTxA'][0] | |
194 |
self. |
|
198 | self.txB = header['fTxB'][0] | |
195 |
self.num |
|
199 | self.numWindows = header['nNumWindows'][0] | |
196 |
self. |
|
200 | self.numTaus = header['nNumTaus'][0] | |
197 |
self. |
|
201 | self.codeType = header['nCodeType'][0] | |
198 |
self.line |
|
202 | self.line6Function = header['nLine6Function'][0] | |
199 |
self. |
|
203 | self.line5Function = header['nLine5Function'][0] | |
200 |
self. |
|
204 | self.fClock = header['fClock'][0] | |
201 |
self.prePulse |
|
205 | self.prePulseBefore = header['nPrePulseBefore'][0] | |
202 |
self. |
|
206 | self.prePulserAfter = header['nPrePulseAfter'][0] | |
203 |
self.range |
|
207 | self.rangeIpp = header['sRangeIPP'][0] | |
204 |
self.rangeTx |
|
208 | self.rangeTxA = header['sRangeTxA'][0] | |
205 | # jump Dynamic Radar Controller Header |
|
209 | self.rangeTxB = header['sRangeTxB'][0] | |
206 | jumpHeader = self.size - 116 |
|
210 | # jump Dynamic Radar Controller Header | |
207 | self.dynamic = numpy.fromfile(fp,numpy.dtype('byte'),jumpHeader) |
|
211 | jumpHeader = self.size - 116 | |
|
212 | self.dynamic = numpy.fromfile(fp,numpy.dtype('byte'),jumpHeader) | |||
|
213 | except: | |||
|
214 | return 0 | |||
208 |
|
215 | |||
209 | return 1 |
|
216 | return 1 | |
210 |
|
217 | |||
@@ -287,34 +294,36 class ProcessingHeader(Header): | |||||
287 | self.shif_fft = False |
|
294 | self.shif_fft = False | |
288 |
|
295 | |||
289 | def read(self, fp): |
|
296 | def read(self, fp): | |
290 | header = numpy.fromfile(fp,self.struct,1) |
|
297 | try: | |
291 | self.size = header['nSize'][0] |
|
298 | header = numpy.fromfile(fp,self.struct,1) | |
292 |
self. |
|
299 | self.size = header['nSize'][0] | |
293 |
self. |
|
300 | self.dataType = header['nDataType'][0] | |
294 |
self. |
|
301 | self.blockSize = header['nSizeOfDataBlock'][0] | |
295 |
self. |
|
302 | self.profilesPerBlock = header['nProfilesperBlock'][0] | |
296 | self.numWindows = header['nNumWindows'][0] |
|
303 | self.dataBlocksPerFile = header['nDataBlocksperFile'][0] | |
297 | self.processFlags = header['nProcessFlags'] |
|
304 | self.numWindows = header['nNumWindows'][0] | |
298 | self.coherentInt = header['nCoherentIntegrations'][0] |
|
305 | self.processFlags = header['nProcessFlags'] | |
299 |
self. |
|
306 | self.coherentInt = header['nCoherentIntegrations'][0] | |
300 |
self. |
|
307 | self.incoherentInt = header['nIncoherentIntegrations'][0] | |
301 | self.samplingWindow = numpy.fromfile(fp,self.structSamplingWindow,self.numWindows) |
|
308 | self.totalSpectra = header['nTotalSpectra'][0] | |
302 | self.numHeights = numpy.sum(self.samplingWindow['nsa']) |
|
309 | self.samplingWindow = numpy.fromfile(fp,self.structSamplingWindow,self.numWindows) | |
303 |
self. |
|
310 | self.numHeights = numpy.sum(self.samplingWindow['nsa']) | |
304 |
self. |
|
311 | self.firstHeight = self.samplingWindow['h0'] | |
305 |
self. |
|
312 | self.deltaHeight = self.samplingWindow['dh'] | |
306 | self.spectraComb = numpy.fromfile(fp,'u1',2*self.totalSpectra) |
|
313 | self.samplesWin = self.samplingWindow['nsa'] | |
307 |
|
314 | self.spectraComb = numpy.fromfile(fp,'u1',2*self.totalSpectra) | ||
308 | if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE: |
|
315 | ||
309 | self.numCode = numpy.fromfile(fp,'<u4',1) |
|
316 | if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE: | |
310 |
self.num |
|
317 | self.numCode = numpy.fromfile(fp,'<u4',1) | |
311 | self.codes = numpy.fromfile(fp,'<f4',self.numCode*self.numBaud).reshape(self.numBaud,self.numCode) |
|
318 | self.numBaud = numpy.fromfile(fp,'<u4',1) | |
312 |
|
319 | self.codes = numpy.fromfile(fp,'<f4',self.numCode*self.numBaud).reshape(self.numBaud,self.numCode) | ||
313 | if self.processFlags & PROCFLAG.SHIFT_FFT_DATA == PROCFLAG.SHIFT_FFT_DATA: |
|
|||
314 | self.shif_fft = True |
|
|||
315 | else: |
|
|||
316 | self.shif_fft = False |
|
|||
317 |
|
320 | |||
|
321 | if self.processFlags & PROCFLAG.SHIFT_FFT_DATA == PROCFLAG.SHIFT_FFT_DATA: | |||
|
322 | self.shif_fft = True | |||
|
323 | else: | |||
|
324 | self.shif_fft = False | |||
|
325 | except: | |||
|
326 | return 0 | |||
318 |
|
327 | |||
319 | return 1 |
|
328 | return 1 | |
320 |
|
329 |
@@ -13,6 +13,7 class Spectra(JROData): | |||||
13 | classdocs |
|
13 | classdocs | |
14 | ''' |
|
14 | ''' | |
15 |
|
15 | |||
|
16 | type = "Spectra" | |||
16 | data_spc = None |
|
17 | data_spc = None | |
17 | data_cspc = None |
|
18 | data_cspc = None | |
18 | data_dc = None |
|
19 | data_dc = None | |
@@ -32,11 +33,13 class Spectra(JROData): | |||||
32 |
|
33 | |||
33 | self.m_BasicHeader = BasicHeader() |
|
34 | self.m_BasicHeader = BasicHeader() | |
34 |
|
35 | |||
35 |
|
|
36 | m_NoiseObj = Noise() | |
36 |
|
37 | |||
37 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) |
|
38 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) | |
38 | self.data_spc = None |
|
39 | self.data_spc = None | |
|
40 | ||||
39 | self.data_cspc = None |
|
41 | self.data_cspc = None | |
|
42 | ||||
40 | self.data_dc = None |
|
43 | self.data_dc = None | |
41 |
|
44 | |||
42 | self.heights = None |
|
45 | self.heights = None |
@@ -13,6 +13,7 class Voltage(JROData): | |||||
13 | classdocs |
|
13 | classdocs | |
14 | ''' |
|
14 | ''' | |
15 |
|
15 | |||
|
16 | type = "Voltage" | |||
16 | data = None |
|
17 | data = None | |
17 | profileIndex = None |
|
18 | profileIndex = None | |
18 |
|
19 | |||
@@ -29,7 +30,7 class Voltage(JROData): | |||||
29 |
|
30 | |||
30 | self.m_BasicHeader= BasicHeader() |
|
31 | self.m_BasicHeader= BasicHeader() | |
31 |
|
32 | |||
32 |
|
|
33 | m_NoiseObj = Noise() | |
33 |
|
34 | |||
34 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) |
|
35 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) | |
35 | self.data = None |
|
36 | self.data = None |
General Comments 0
You need to be logged in to leave comments.
Login now