##// END OF EJS Templates
Adicion de directorios de procesamiento y utilitarios
Miguel Valdez -
r10:9523c526b618
parent child
Show More
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -1,213 +1,213
1 import numpy
1 import numpy
2 import plplot
2 import plplot
3
3
4 from BasicGraph import *
4 from BasicGraph import *
5
5
6 class Spectrum():
6 class Spectrum:
7
7
8 graphObjDict = {}
8 graphObjDict = {}
9 showColorbar = False
9 showColorbar = False
10 showPowerProfile = True
10 showPowerProfile = True
11
11
12 __szchar = 0.7
12 __szchar = 0.7
13
13
14 def __init__(self):
14 def __init__(self):
15
15
16 key = "spec"
16 key = "spec"
17
17
18 specObj = BasicGraph()
18 specObj = BasicGraph()
19 specObj.setName(key)
19 specObj.setName(key)
20
20
21 self.graphObjDict[key] = specObj
21 self.graphObjDict[key] = specObj
22
22
23
23
24 def setup(self, subpage, title="", xlabel="", ylabel="", colormap="jet", showColorbar=False, showPowerProfile=False):
24 def setup(self, subpage, title="", xlabel="", ylabel="", colormap="jet", showColorbar=False, showPowerProfile=False):
25 """
25 """
26 """
26 """
27
27
28 xi = 0.12; xw = 0.78; xf = xi + xw
28 xi = 0.12; xw = 0.78; xf = xi + xw
29 yi = 0.14; yw = 0.80; yf = yi + yw
29 yi = 0.14; yw = 0.80; yf = yi + yw
30
30
31 xcmapi = xcmapf = 0.; xpowi = xpowf = 0.
31 xcmapi = xcmapf = 0.; xpowi = xpowf = 0.
32
32
33 key = "spec"
33 key = "spec"
34 specObj = self.graphObjDict[key]
34 specObj = self.graphObjDict[key]
35 specObj.setSubpage(subpage)
35 specObj.setSubpage(subpage)
36 specObj.setSzchar(self.__szchar)
36 specObj.setSzchar(self.__szchar)
37 specObj.setOpt("bcnts","bcnts")
37 specObj.setOpt("bcnts","bcnts")
38 specObj.setup(title,
38 specObj.setup(title,
39 xlabel,
39 xlabel,
40 ylabel,
40 ylabel,
41 colormap)
41 colormap)
42
42
43 if showColorbar:
43 if showColorbar:
44 key = "colorbar"
44 key = "colorbar"
45
45
46 cmapObj = BasicGraph()
46 cmapObj = BasicGraph()
47 cmapObj.setName(key)
47 cmapObj.setName(key)
48 cmapObj.setSubpage(subpage)
48 cmapObj.setSubpage(subpage)
49 cmapObj.setSzchar(self.__szchar)
49 cmapObj.setSzchar(self.__szchar)
50 cmapObj.setOpt("bc","bcmt")
50 cmapObj.setOpt("bc","bcmt")
51 cmapObj.setup(title="dBs",
51 cmapObj.setup(title="dBs",
52 xlabel="",
52 xlabel="",
53 ylabel="",
53 ylabel="",
54 colormap=colormap)
54 colormap=colormap)
55
55
56 self.graphObjDict[key] = cmapObj
56 self.graphObjDict[key] = cmapObj
57
57
58 xcmapi = 0.
58 xcmapi = 0.
59 xcmapw = 0.05
59 xcmapw = 0.05
60 xw -= xcmapw
60 xw -= xcmapw
61
61
62 if showPowerProfile:
62 if showPowerProfile:
63 key = "powerprof"
63 key = "powerprof"
64
64
65 powObj = BasicGraph()
65 powObj = BasicGraph()
66 powObj.setName(key)
66 powObj.setName(key)
67 powObj.setSubpage(subpage)
67 powObj.setSubpage(subpage)
68 powObj.setSzchar(self.__szchar)
68 powObj.setSzchar(self.__szchar)
69 plplot.pllsty(2)
69 plplot.pllsty(2)
70 powObj.setOpt("bcntg","bc")
70 powObj.setOpt("bcntg","bc")
71 plplot.pllsty(1)
71 plplot.pllsty(1)
72 powObj.setup(title="Power Profile",
72 powObj.setup(title="Power Profile",
73 xlabel="dBs",
73 xlabel="dBs",
74 ylabel="")
74 ylabel="")
75
75
76 self.graphObjDict[key] = powObj
76 self.graphObjDict[key] = powObj
77
77
78 xpowi = 0.
78 xpowi = 0.
79 xpoww = 0.24
79 xpoww = 0.24
80 xw -= xpoww
80 xw -= xpoww
81
81
82 xf = xi + xw
82 xf = xi + xw
83 yf = yi + yw
83 yf = yi + yw
84 xcmapf = xf
84 xcmapf = xf
85
85
86 specObj.setScreenPos([xi, xf], [yi, yf])
86 specObj.setScreenPos([xi, xf], [yi, yf])
87
87
88 if showColorbar:
88 if showColorbar:
89 xcmapi = xf + 0.02
89 xcmapi = xf + 0.02
90 xcmapf = xcmapi + xcmapw
90 xcmapf = xcmapi + xcmapw
91 cmapObj.setScreenPos([xcmapi, xcmapf], [yi, yf])
91 cmapObj.setScreenPos([xcmapi, xcmapf], [yi, yf])
92
92
93 if showPowerProfile:
93 if showPowerProfile:
94 xpowi = xcmapf + 0.06
94 xpowi = xcmapf + 0.06
95 xpowf = xpowi + xpoww
95 xpowf = xpowi + xpoww
96 powObj.setScreenPos([xpowi, xpowf], [yi, yf])
96 powObj.setScreenPos([xpowi, xpowf], [yi, yf])
97
97
98
98
99 # specObj.initSubpage()
99 # specObj.initSubpage()
100 #
100 #
101 # if showColorbar:
101 # if showColorbar:
102 # cmapObj.initPlot()
102 # cmapObj.initPlot()
103 #
103 #
104 # if showPowerProfile:
104 # if showPowerProfile:
105 # powObj.initPlot()
105 # powObj.initPlot()
106
106
107 self.showColorbar = showColorbar
107 self.showColorbar = showColorbar
108 self.showPowerProfile = showPowerProfile
108 self.showPowerProfile = showPowerProfile
109
109
110 def setRanges(self, xrange, yrange, zrange):
110 def setRanges(self, xrange, yrange, zrange):
111
111
112 key = "spec"
112 key = "spec"
113 specObj = self.graphObjDict[key]
113 specObj = self.graphObjDict[key]
114 specObj.setRanges(xrange, yrange, zrange)
114 specObj.setRanges(xrange, yrange, zrange)
115
115
116 keyList = self.graphObjDict.keys()
116 keyList = self.graphObjDict.keys()
117
117
118 key = "colorbar"
118 key = "colorbar"
119 if key in keyList:
119 if key in keyList:
120 cmapObj = self.graphObjDict[key]
120 cmapObj = self.graphObjDict[key]
121 cmapObj.setRanges([0., 1.], zrange)
121 cmapObj.setRanges([0., 1.], zrange)
122
122
123 key = "powerprof"
123 key = "powerprof"
124 if key in keyList:
124 if key in keyList:
125 powObj = self.graphObjDict[key]
125 powObj = self.graphObjDict[key]
126 powObj.setRanges(zrange, yrange)
126 powObj.setRanges(zrange, yrange)
127
127
128 def plotData(self, data , xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None):
128 def plotData(self, data , xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None):
129
129
130 key = "spec"
130 key = "spec"
131 specObj = self.graphObjDict[key]
131 specObj = self.graphObjDict[key]
132 specObj.initSubpage()
132 specObj.initSubpage()
133
133
134 if xmin == None:
134 if xmin == None:
135 xmin = 0.
135 xmin = 0.
136
136
137 if xmax == None:
137 if xmax == None:
138 xmax = 1.
138 xmax = 1.
139
139
140 if ymin == None:
140 if ymin == None:
141 ymin = 0.
141 ymin = 0.
142
142
143 if ymax == None:
143 if ymax == None:
144 ymax = 1.
144 ymax = 1.
145
145
146 if zmin == None:
146 if zmin == None:
147 zmin = numpy.nanmin(data)
147 zmin = numpy.nanmin(data)
148
148
149 if zmax == None:
149 if zmax == None:
150 zmax = numpy.nanmax(data)
150 zmax = numpy.nanmax(data)
151
151
152 if not(specObj.hasRange):
152 if not(specObj.hasRange):
153 self.setRanges([xmin, xmax], [ymin,ymax], [zmin,zmax])
153 self.setRanges([xmin, xmax], [ymin,ymax], [zmin,zmax])
154
154
155 specObj.basicPcolorPlot(data, xmin, xmax, ymin, ymax, specObj.zrange[0], specObj.zrange[1])
155 specObj.basicPcolorPlot(data, xmin, xmax, ymin, ymax, specObj.zrange[0], specObj.zrange[1])
156
156
157 if self.showColorbar:
157 if self.showColorbar:
158 key = "colorbar"
158 key = "colorbar"
159 cmapObj = self.graphObjDict[key]
159 cmapObj = self.graphObjDict[key]
160 cmapObj.colorbarPlot()
160 cmapObj.colorbarPlot()
161
161
162 if self.showPowerProfile:
162 if self.showPowerProfile:
163 power = numpy.average(data, axis=1)
163 power = numpy.average(data, axis=1)
164
164
165 step = (ymax - ymin)/(power.shape[0]-1)
165 step = (ymax - ymin)/(power.shape[0]-1)
166 heis = numpy.arange(ymin, ymax + step, step)
166 heis = numpy.arange(ymin, ymax + step, step)
167
167
168 key = "powerprof"
168 key = "powerprof"
169 powObj = self.graphObjDict[key]
169 powObj = self.graphObjDict[key]
170 powObj.basicXYPlot(power, heis)
170 powObj.basicXYPlot(power, heis)
171
171
172 class CrossSpectrum():
172 class CrossSpectrum:
173 graphObjDict = {}
173 graphObjDict = {}
174 showColorbar = False
174 showColorbar = False
175 showPowerProfile = True
175 showPowerProfile = True
176
176
177 __szchar = 0.7
177 __szchar = 0.7
178 def __init__(self):
178 def __init__(self):
179 pass
179 pass
180
180
181 def setup(self):
181 def setup(self):
182 pass
182 pass
183
183
184 def plotData(self):
184 def plotData(self):
185 pass
185 pass
186
186
187 if __name__ == '__main__':
187 if __name__ == '__main__':
188
188
189 import numpy
189 import numpy
190 plplot.plsetopt("geometry", "%dx%d" %(350*2, 300*2))
190 plplot.plsetopt("geometry", "%dx%d" %(350*2, 300*2))
191 plplot.plsdev("xcairo")
191 plplot.plsdev("xcairo")
192 plplot.plscolbg(255,255,255)
192 plplot.plscolbg(255,255,255)
193 plplot.plscol0(1,0,0,0)
193 plplot.plscol0(1,0,0,0)
194 plplot.plinit()
194 plplot.plinit()
195 plplot.plssub(2, 2)
195 plplot.plssub(2, 2)
196
196
197 nx = 64
197 nx = 64
198 ny = 100
198 ny = 100
199
199
200 data = numpy.random.uniform(-50,50,(nx,ny))
200 data = numpy.random.uniform(-50,50,(nx,ny))
201
201
202 specObj = Spectrum()
202 specObj = Spectrum()
203 specObj.setup(1, "Spectrum", "Frequency", "Range", "br_green", False, False)
203 specObj.setup(1, "Spectrum", "Frequency", "Range", "br_green", False, False)
204 specObj.plotData(data)
204 specObj.plotData(data)
205
205
206 data = numpy.random.uniform(-50,50,(nx,ny))
206 data = numpy.random.uniform(-50,50,(nx,ny))
207
207
208 spec2Obj = Spectrum()
208 spec2Obj = Spectrum()
209 spec2Obj.setup(2, "Spectrum", "Frequency", "Range", "br_green", True, True)
209 spec2Obj.setup(2, "Spectrum", "Frequency", "Range", "br_green", True, True)
210 spec2Obj.plotData(data)
210 spec2Obj.plotData(data)
211
211
212 plplot.plend()
212 plplot.plend()
213 exit(0) No newline at end of file
213 exit(0)
@@ -1,245 +1,269
1 import numpy
1 import numpy
2
2
3 class PROCFLAG:
3 class PROCFLAG:
4 COHERENT_INTEGRATION = numpy.uint32(0x00000001)
4 COHERENT_INTEGRATION = numpy.uint32(0x00000001)
5 DECODE_DATA = numpy.uint32(0x00000002)
5 DECODE_DATA = numpy.uint32(0x00000002)
6 SPECTRA_CALC = numpy.uint32(0x00000004)
6 SPECTRA_CALC = numpy.uint32(0x00000004)
7 INCOHERENT_INTEGRATION = numpy.uint32(0x00000008)
7 INCOHERENT_INTEGRATION = numpy.uint32(0x00000008)
8 POST_COHERENT_INTEGRATION = numpy.uint32(0x00000010)
8 POST_COHERENT_INTEGRATION = numpy.uint32(0x00000010)
9 SHIFT_FFT_DATA = numpy.uint32(0x00000020)
9 SHIFT_FFT_DATA = numpy.uint32(0x00000020)
10
10
11 DATATYPE_CHAR = numpy.uint32(0x00000040)
11 DATATYPE_CHAR = numpy.uint32(0x00000040)
12 DATATYPE_SHORT = numpy.uint32(0x00000080)
12 DATATYPE_SHORT = numpy.uint32(0x00000080)
13 DATATYPE_LONG = numpy.uint32(0x00000100)
13 DATATYPE_LONG = numpy.uint32(0x00000100)
14 DATATYPE_INT64 = numpy.uint32(0x00000200)
14 DATATYPE_INT64 = numpy.uint32(0x00000200)
15 DATATYPE_FLOAT = numpy.uint32(0x00000400)
15 DATATYPE_FLOAT = numpy.uint32(0x00000400)
16 DATATYPE_DOUBLE = numpy.uint32(0x00000800)
16 DATATYPE_DOUBLE = numpy.uint32(0x00000800)
17
17
18 DATAARRANGE_CONTIGUOUS_CH = numpy.uint32(0x00001000)
18 DATAARRANGE_CONTIGUOUS_CH = numpy.uint32(0x00001000)
19 DATAARRANGE_CONTIGUOUS_H = numpy.uint32(0x00002000)
19 DATAARRANGE_CONTIGUOUS_H = numpy.uint32(0x00002000)
20 DATAARRANGE_CONTIGUOUS_P = numpy.uint32(0x00004000)
20 DATAARRANGE_CONTIGUOUS_P = numpy.uint32(0x00004000)
21
21
22 SAVE_CHANNELS_DC = numpy.uint32(0x00008000)
22 SAVE_CHANNELS_DC = numpy.uint32(0x00008000)
23 DEFLIP_DATA = numpy.uint32(0x00010000)
23 DEFLIP_DATA = numpy.uint32(0x00010000)
24 DEFINE_PROCESS_CODE = numpy.uint32(0x00020000)
24 DEFINE_PROCESS_CODE = numpy.uint32(0x00020000)
25
25
26 ACQ_SYS_NATALIA = numpy.uint32(0x00040000)
26 ACQ_SYS_NATALIA = numpy.uint32(0x00040000)
27 ACQ_SYS_ECHOTEK = numpy.uint32(0x00080000)
27 ACQ_SYS_ECHOTEK = numpy.uint32(0x00080000)
28 ACQ_SYS_ADRXD = numpy.uint32(0x000C0000)
28 ACQ_SYS_ADRXD = numpy.uint32(0x000C0000)
29 ACQ_SYS_JULIA = numpy.uint32(0x00100000)
29 ACQ_SYS_JULIA = numpy.uint32(0x00100000)
30 ACQ_SYS_XXXXXX = numpy.uint32(0x00140000)
30 ACQ_SYS_XXXXXX = numpy.uint32(0x00140000)
31
31
32 EXP_NAME_ESP = numpy.uint32(0x00200000)
32 EXP_NAME_ESP = numpy.uint32(0x00200000)
33 CHANNEL_NAMES_ESP = numpy.uint32(0x00400000)
33 CHANNEL_NAMES_ESP = numpy.uint32(0x00400000)
34
34
35 OPERATION_MASK = numpy.uint32(0x0000003F)
35 OPERATION_MASK = numpy.uint32(0x0000003F)
36 DATATYPE_MASK = numpy.uint32(0x00000FC0)
36 DATATYPE_MASK = numpy.uint32(0x00000FC0)
37 DATAARRANGE_MASK = numpy.uint32(0x00007000)
37 DATAARRANGE_MASK = numpy.uint32(0x00007000)
38 ACQ_SYS_MASK = numpy.uint32(0x001C0000)
38 ACQ_SYS_MASK = numpy.uint32(0x001C0000)
39
39
40 class BasicHeader:
40 class BasicHeader:
41
41
42 size = 0
42 size = 0
43 version = 0
43 version = 0
44 dataBlock = 0
44 dataBlock = 0
45 utc = 0
45 utc = 0
46 miliSecond = 0
46 miliSecond = 0
47 timeZone = 0
47 timeZone = 0
48 dstFlag = 0
48 dstFlag = 0
49 errorCount = 0
49 errorCount = 0
50 struct = numpy.dtype([
50 struct = numpy.dtype([
51 ('nSize','<u4'),
51 ('nSize','<u4'),
52 ('nVersion','<u2'),
52 ('nVersion','<u2'),
53 ('nDataBlockId','<u4'),
53 ('nDataBlockId','<u4'),
54 ('nUtime','<u4'),
54 ('nUtime','<u4'),
55 ('nMilsec','<u2'),
55 ('nMilsec','<u2'),
56 ('nTimezone','<i2'),
56 ('nTimezone','<i2'),
57 ('nDstflag','<i2'),
57 ('nDstflag','<i2'),
58 ('nErrorCount','<u4')
58 ('nErrorCount','<u4')
59 ])
59 ])
60
60
61 def __init__(self):
61 def __init__(self):
62 pass
62 pass
63
63
64 def read(self, fp):
64 def read(self, fp):
65
65
66 header = numpy.fromfile(fp, self.struct,1)
66 header = numpy.fromfile(fp, self.struct,1)
67 self.size = header['nSize'][0]
67 self.size = header['nSize'][0]
68 self.version = header['nVersion'][0]
68 self.version = header['nVersion'][0]
69 self.dataBlock = header['nDataBlockId'][0]
69 self.dataBlock = header['nDataBlockId'][0]
70 self.utc = header['nUtime'][0]
70 self.utc = header['nUtime'][0]
71 self.miliSecond = header['nMilsec'][0]
71 self.miliSecond = header['nMilsec'][0]
72 self.timeZone = header['nTimezone'][0]
72 self.timeZone = header['nTimezone'][0]
73 self.dstFlag = header['nDstflag'][0]
73 self.dstFlag = header['nDstflag'][0]
74 self.errorCount = header['nErrorCount'][0]
74 self.errorCount = header['nErrorCount'][0]
75
75
76 return 1
76 return 1
77
77
78 def copy(self):
78 def copy(self):
79
79
80 obj = BasicHeader()
80 obj = BasicHeader()
81 obj.size = self.size
81 obj.size = self.size
82
82
83
83
84 return obj
84 return obj
85
85
86 class SystemHeader:
86 class SystemHeader:
87 size = 0
87 size = 0
88 numSamples = 0
88 numSamples = 0
89 numProfiles = 0
89 numProfiles = 0
90 numChannels = 0
90 numChannels = 0
91 adcResolution = 0
91 adcResolution = 0
92 pciDioBusWidth = 0
92 pciDioBusWidth = 0
93 struct = numpy.dtype([
93 struct = numpy.dtype([
94 ('nSize','<u4'),
94 ('nSize','<u4'),
95 ('nNumSamples','<u4'),
95 ('nNumSamples','<u4'),
96 ('nNumProfiles','<u4'),
96 ('nNumProfiles','<u4'),
97 ('nNumChannels','<u4'),
97 ('nNumChannels','<u4'),
98 ('nADCResolution','<u4'),
98 ('nADCResolution','<u4'),
99 ('nPCDIOBusWidth','<u4'),
99 ('nPCDIOBusWidth','<u4'),
100 ])
100 ])
101
101
102 def __init__(self):
102 def __init__(self):
103 pass
103 pass
104
104
105 def read(self, fp):
105 def read(self, fp):
106 header = numpy.fromfile(fp,self.struct,1)
106 header = numpy.fromfile(fp,self.struct,1)
107 self.size = header['nSize'][0]
107 self.size = header['nSize'][0]
108 self.numSamples = header['nNumSamples'][0]
108 self.numSamples = header['nNumSamples'][0]
109 self.numProfiles = header['nNumProfiles'][0]
109 self.numProfiles = header['nNumProfiles'][0]
110 self.numChannels = header['nNumChannels'][0]
110 self.numChannels = header['nNumChannels'][0]
111 self.adcResolution = header['nADCResolution'][0]
111 self.adcResolution = header['nADCResolution'][0]
112 self.pciDioBusWidth = header['nPCDIOBusWidth'][0]
112 self.pciDioBusWidth = header['nPCDIOBusWidth'][0]
113
113
114
114
115 return 1
115 return 1
116
116
117 def copy(self):
118
119 obj = SystemHeader()
120 obj.size = self.size
121
122
123 return obj
124
117 class RadarControllerHeader:
125 class RadarControllerHeader:
118 size = 0
126 size = 0
119 expType = 0
127 expType = 0
120 nTx = 0
128 nTx = 0
121 ipp = 0
129 ipp = 0
122 txA = 0
130 txA = 0
123 txB = 0
131 txB = 0
124 numWindows = 0
132 numWindows = 0
125 numTaus = 0
133 numTaus = 0
126 codeType = 0
134 codeType = 0
127 line6Function = 0
135 line6Function = 0
128 line5Fuction = 0
136 line5Fuction = 0
129 fClock = 0
137 fClock = 0
130 prePulseBefore = 0
138 prePulseBefore = 0
131 prePulserAfter = 0
139 prePulserAfter = 0
132 rangeIpp = 0
140 rangeIpp = 0
133 rangeTxA = 0
141 rangeTxA = 0
134 rangeTxB = 0
142 rangeTxB = 0
135 struct = numpy.dtype([
143 struct = numpy.dtype([
136 ('nSize','<u4'),
144 ('nSize','<u4'),
137 ('nExpType','<u4'),
145 ('nExpType','<u4'),
138 ('nNTx','<u4'),
146 ('nNTx','<u4'),
139 ('fIpp','<f4'),
147 ('fIpp','<f4'),
140 ('fTxA','<f4'),
148 ('fTxA','<f4'),
141 ('fTxB','<f4'),
149 ('fTxB','<f4'),
142 ('nNumWindows','<u4'),
150 ('nNumWindows','<u4'),
143 ('nNumTaus','<u4'),
151 ('nNumTaus','<u4'),
144 ('nCodeType','<u4'),
152 ('nCodeType','<u4'),
145 ('nLine6Function','<u4'),
153 ('nLine6Function','<u4'),
146 ('nLine5Function','<u4'),
154 ('nLine5Function','<u4'),
147 ('fClock','<f4'),
155 ('fClock','<f4'),
148 ('nPrePulseBefore','<u4'),
156 ('nPrePulseBefore','<u4'),
149 ('nPrePulseAfter','<u4'),
157 ('nPrePulseAfter','<u4'),
150 ('sRangeIPP','<a20'),
158 ('sRangeIPP','<a20'),
151 ('sRangeTxA','<a20'),
159 ('sRangeTxA','<a20'),
152 ('sRangeTxB','<a20'),
160 ('sRangeTxB','<a20'),
153 ])
161 ])
154
162
155
163
156 def __init__(self):
164 def __init__(self):
157 pass
165 pass
158
166
159 def read(self, fp):
167 def read(self, fp):
160 header = numpy.fromfile(fp,self.struct,1)
168 header = numpy.fromfile(fp,self.struct,1)
161 self.size = header['nSize'][0]
169 self.size = header['nSize'][0]
162 self.expType = header['nExpType'][0]
170 self.expType = header['nExpType'][0]
163 self.nTx = header['nNTx'][0]
171 self.nTx = header['nNTx'][0]
164 self.ipp = header['fIpp'][0]
172 self.ipp = header['fIpp'][0]
165 self.txA = header['fTxA'][0]
173 self.txA = header['fTxA'][0]
166 self.txB = header['fTxB'][0]
174 self.txB = header['fTxB'][0]
167 self.numWindows = header['nNumWindows'][0]
175 self.numWindows = header['nNumWindows'][0]
168 self.numTaus = header['nNumTaus'][0]
176 self.numTaus = header['nNumTaus'][0]
169 self.codeType = header['nCodeType'][0]
177 self.codeType = header['nCodeType'][0]
170 self.line6Function = header['nLine6Function'][0]
178 self.line6Function = header['nLine6Function'][0]
171 self.line5Fuction = header['nLine5Function'][0]
179 self.line5Fuction = header['nLine5Function'][0]
172 self.fClock = header['fClock'][0]
180 self.fClock = header['fClock'][0]
173 self.prePulseBefore = header['nPrePulseBefore'][0]
181 self.prePulseBefore = header['nPrePulseBefore'][0]
174 self.prePulserAfter = header['nPrePulseAfter'][0]
182 self.prePulserAfter = header['nPrePulseAfter'][0]
175 self.rangeIpp = header['sRangeIPP'][0]
183 self.rangeIpp = header['sRangeIPP'][0]
176 self.rangeTxA = header['sRangeTxA'][0]
184 self.rangeTxA = header['sRangeTxA'][0]
177 self.rangeTxB = header['sRangeTxB'][0]
185 self.rangeTxB = header['sRangeTxB'][0]
178 # jump Dynamic Radar Controller Header
186 # jump Dynamic Radar Controller Header
179 jumpHeader = self.size - 116
187 jumpHeader = self.size - 116
180 fp.seek(fp.tell() + jumpHeader)
188 fp.seek(fp.tell() + jumpHeader)
181
189
182 return 1
190 return 1
183
191
192 def copy(self):
193
194 obj = RadarControllerHeader()
195 obj.size = self.size
196
197
198 return obj
199
184 class ProcessingHeader:
200 class ProcessingHeader:
185 size = 0
201 size = 0
186 dataType = 0
202 dataType = 0
187 blockSize = 0
203 blockSize = 0
188 profilesPerBlock = 0
204 profilesPerBlock = 0
189 dataBlocksPerFile = 0
205 dataBlocksPerFile = 0
190 numWindows = 0
206 numWindows = 0
191 processFlags = 0
207 processFlags = 0
192 coherentInt = 0
208 coherentInt = 0
193 incoherentInt = 0
209 incoherentInt = 0
194 totalSpectra = 0
210 totalSpectra = 0
195 struct = numpy.dtype([
211 struct = numpy.dtype([
196 ('nSize','<u4'),
212 ('nSize','<u4'),
197 ('nDataType','<u4'),
213 ('nDataType','<u4'),
198 ('nSizeOfDataBlock','<u4'),
214 ('nSizeOfDataBlock','<u4'),
199 ('nProfilesperBlock','<u4'),
215 ('nProfilesperBlock','<u4'),
200 ('nDataBlocksperFile','<u4'),
216 ('nDataBlocksperFile','<u4'),
201 ('nNumWindows','<u4'),
217 ('nNumWindows','<u4'),
202 ('nProcessFlags','<u4'),
218 ('nProcessFlags','<u4'),
203 ('nCoherentIntegrations','<u4'),
219 ('nCoherentIntegrations','<u4'),
204 ('nIncoherentIntegrations','<u4'),
220 ('nIncoherentIntegrations','<u4'),
205 ('nTotalSpectra','<u4')
221 ('nTotalSpectra','<u4')
206 ])
222 ])
207 samplingWindow = 0
223 samplingWindow = 0
208 structSamplingWindow = numpy.dtype([('h0','<f4'),('dh','<f4'),('nsa','<u4')])
224 structSamplingWindow = numpy.dtype([('h0','<f4'),('dh','<f4'),('nsa','<u4')])
209 numHeights = 0
225 numHeights = 0
210 firstHeight = 0
226 firstHeight = 0
211 deltaHeight = 0
227 deltaHeight = 0
212 samplesWin = 0
228 samplesWin = 0
213 spectraComb = 0
229 spectraComb = 0
214 numCode = 0
230 numCode = 0
215 codes = 0
231 codes = 0
216 numBaud = 0
232 numBaud = 0
217
233
218 def __init__(self):
234 def __init__(self):
219 pass
235 pass
220
236
221 def read(self, fp):
237 def read(self, fp):
222 header = numpy.fromfile(fp,self.struct,1)
238 header = numpy.fromfile(fp,self.struct,1)
223 self.size = header['nSize'][0]
239 self.size = header['nSize'][0]
224 self.dataType = header['nDataType'][0]
240 self.dataType = header['nDataType'][0]
225 self.blockSize = header['nSizeOfDataBlock'][0]
241 self.blockSize = header['nSizeOfDataBlock'][0]
226 self.profilesPerBlock = header['nProfilesperBlock'][0]
242 self.profilesPerBlock = header['nProfilesperBlock'][0]
227 self.dataBlocksPerFile = header['nDataBlocksperFile'][0]
243 self.dataBlocksPerFile = header['nDataBlocksperFile'][0]
228 self.numWindows = header['nNumWindows'][0]
244 self.numWindows = header['nNumWindows'][0]
229 self.processFlags = header['nProcessFlags']
245 self.processFlags = header['nProcessFlags']
230 self.coherentInt = header['nCoherentIntegrations'][0]
246 self.coherentInt = header['nCoherentIntegrations'][0]
231 self.incoherentInt = header['nIncoherentIntegrations'][0]
247 self.incoherentInt = header['nIncoherentIntegrations'][0]
232 self.totalSpectra = header['nTotalSpectra'][0]
248 self.totalSpectra = header['nTotalSpectra'][0]
233 self.samplingWindow = numpy.fromfile(fp,self.structSamplingWindow,self.numWindows)
249 self.samplingWindow = numpy.fromfile(fp,self.structSamplingWindow,self.numWindows)
234 self.numHeights = numpy.sum(self.samplingWindow['nsa'])
250 self.numHeights = numpy.sum(self.samplingWindow['nsa'])
235 self.firstHeight = self.samplingWindow['h0']
251 self.firstHeight = self.samplingWindow['h0']
236 self.deltaHeight = self.samplingWindow['dh']
252 self.deltaHeight = self.samplingWindow['dh']
237 self.samplesWin = self.samplingWindow['nsa']
253 self.samplesWin = self.samplingWindow['nsa']
238 self.spectraComb = numpy.fromfile(fp,'u1',2*self.totalSpectra)
254 self.spectraComb = numpy.fromfile(fp,'u1',2*self.totalSpectra)
239 if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE:
255 if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE:
240 self.numCode = numpy.fromfile(fp,'<u4',1)
256 self.numCode = numpy.fromfile(fp,'<u4',1)
241 self.numBaud = numpy.fromfile(fp,'<u4',1)
257 self.numBaud = numpy.fromfile(fp,'<u4',1)
242 self.codes = numpy.fromfile(fp,'<f4',self.numCode*self.numBaud).reshape(self.numBaud,self.numCode)
258 self.codes = numpy.fromfile(fp,'<f4',self.numCode*self.numBaud).reshape(self.numBaud,self.numCode)
243
259
244
260
245 return 1
261 return 1
262
263 def copy(self):
264
265 obj = ProcessingHeader()
266 obj.size = self.size
267
268
269 return obj No newline at end of file
@@ -1,17 +1,20
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class Correlation(Data):
7 class Correlation(Data):
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass
17 pass
18
19 def copy(self):
20 pass No newline at end of file
@@ -1,18 +1,21
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class Data:
7 class Data:
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass
17 pass
18
18
19 def copy(self):
20 pass
21 No newline at end of file
@@ -1,18 +1,21
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class Spectra(Data):
7 class Spectra(Data):
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass
17 pass
18
18
19 def copy(self):
20 pass
21 No newline at end of file
@@ -1,18 +1,30
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class Voltage(Data):
7 class Voltage(Data):
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 m_RadarControllerHeader= RadarControllerHeader()
14
15 m_ProcessingHeader= ProcessingHeader()
16
17 m_SystemHeader= SystemHeader()
18
19 m_BasicHeader= BasicHeader()
20
21
13 def __init__(self):
22 def __init__(self):
14 '''
23 '''
15 Constructor
24 Constructor
16 '''
25 '''
17 pass
26 pass
18
27
28 def copy(self):
29 pass
30 No newline at end of file
@@ -1,17 +1,17
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class CorrelationProcessor():
7 class CorrelationProcessor:
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass No newline at end of file
17 pass
@@ -1,17 +1,17
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class SpectraProcessor():
7 class SpectraProcessor:
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass No newline at end of file
17 pass
@@ -1,17 +1,17
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class VoltageProcessor():
7 class VoltageProcessor:
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass No newline at end of file
17 pass
@@ -1,18 +1,18
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class FtpServer():
7 class FtpServer:
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass
17 pass
18 No newline at end of file
18
@@ -1,17 +1,19
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 class FtpServerList():
7 class FtpServerList:
8 '''
8 '''
9 classdocs
9 classdocs
10 '''
10 '''
11
11
12
12
13 def __init__(self):
13 def __init__(self):
14 '''
14 '''
15 Constructor
15 Constructor
16 '''
16 '''
17 pass
17 pass
18 m_FtpServer= FtpServer()
19
General Comments 0
You need to be logged in to leave comments. Login now