@@ -15,6 +15,8 from jrodata import * | |||||
15 | from jroheaderIO import * |
|
15 | from jroheaderIO import * | |
16 | from jroprocessing import * |
|
16 | from jroprocessing import * | |
17 |
|
17 | |||
|
18 | LOCALTIME = -18000 | |||
|
19 | ||||
18 | def isNumber(str): |
|
20 | def isNumber(str): | |
19 | """ |
|
21 | """ | |
20 | Chequea si el conjunto de caracteres que componen un string puede ser convertidos a un numero. |
|
22 | Chequea si el conjunto de caracteres que componen un string puede ser convertidos a un numero. | |
@@ -55,7 +57,7 def isThisFileinRange(filename, startUTSeconds, endUTSeconds): | |||||
55 | Si la cabecera no puede ser leida. |
|
57 | Si la cabecera no puede ser leida. | |
56 |
|
58 | |||
57 | """ |
|
59 | """ | |
58 | basicHeaderObj = BasicHeader() |
|
60 | basicHeaderObj = BasicHeader(LOCALTIME) | |
59 |
|
61 | |||
60 | try: |
|
62 | try: | |
61 | fp = open(filename,'rb') |
|
63 | fp = open(filename,'rb') | |
@@ -101,7 +103,7 def isFileinThisTime(filename, startTime, endTime): | |||||
101 | except: |
|
103 | except: | |
102 | raise IOError, "The file %s can't be opened" %(filename) |
|
104 | raise IOError, "The file %s can't be opened" %(filename) | |
103 |
|
105 | |||
104 | basicHeaderObj = BasicHeader() |
|
106 | basicHeaderObj = BasicHeader(LOCALTIME) | |
105 | sts = basicHeaderObj.read(fp) |
|
107 | sts = basicHeaderObj.read(fp) | |
106 | fp.close() |
|
108 | fp.close() | |
107 |
|
109 | |||
@@ -217,7 +219,7 class JRODataIO: | |||||
217 |
|
219 | |||
218 | isConfig = False |
|
220 | isConfig = False | |
219 |
|
221 | |||
220 | basicHeaderObj = BasicHeader() |
|
222 | basicHeaderObj = BasicHeader(LOCALTIME) | |
221 |
|
223 | |||
222 | systemHeaderObj = SystemHeader() |
|
224 | systemHeaderObj = SystemHeader() | |
223 |
|
225 | |||
@@ -722,7 +724,7 class JRODataReader(JRODataIO, ProcessingUnit): | |||||
722 | neededSize = self.processingHeaderObj.blockSize + self.firstHeaderSize |
|
724 | neededSize = self.processingHeaderObj.blockSize + self.firstHeaderSize | |
723 |
|
725 | |||
724 | if neededSize == 0: |
|
726 | if neededSize == 0: | |
725 | basicHeaderObj = BasicHeader() |
|
727 | basicHeaderObj = BasicHeader(LOCALTIME) | |
726 | systemHeaderObj = SystemHeader() |
|
728 | systemHeaderObj = SystemHeader() | |
727 | radarControllerHeaderObj = RadarControllerHeader() |
|
729 | radarControllerHeaderObj = RadarControllerHeader() | |
728 | processingHeaderObj = ProcessingHeader() |
|
730 | processingHeaderObj = ProcessingHeader() | |
@@ -1204,7 +1206,7 class VoltageReader(JRODataReader): | |||||
1204 |
|
1206 | |||
1205 | self.optchar = "D" |
|
1207 | self.optchar = "D" | |
1206 |
|
1208 | |||
1207 | self.basicHeaderObj = BasicHeader() |
|
1209 | self.basicHeaderObj = BasicHeader(LOCALTIME) | |
1208 |
|
1210 | |||
1209 | self.systemHeaderObj = SystemHeader() |
|
1211 | self.systemHeaderObj = SystemHeader() | |
1210 |
|
1212 | |||
@@ -1486,7 +1488,7 class VoltageWriter(JRODataWriter): | |||||
1486 |
|
1488 | |||
1487 | self.filename = None |
|
1489 | self.filename = None | |
1488 |
|
1490 | |||
1489 | self.basicHeaderObj = BasicHeader() |
|
1491 | self.basicHeaderObj = BasicHeader(LOCALTIME) | |
1490 |
|
1492 | |||
1491 | self.systemHeaderObj = SystemHeader() |
|
1493 | self.systemHeaderObj = SystemHeader() | |
1492 |
|
1494 | |||
@@ -1800,7 +1802,7 class SpectraReader(JRODataReader): | |||||
1800 |
|
1802 | |||
1801 | self.optchar = "P" |
|
1803 | self.optchar = "P" | |
1802 |
|
1804 | |||
1803 | self.basicHeaderObj = BasicHeader() |
|
1805 | self.basicHeaderObj = BasicHeader(LOCALTIME) | |
1804 |
|
1806 | |||
1805 | self.systemHeaderObj = SystemHeader() |
|
1807 | self.systemHeaderObj = SystemHeader() | |
1806 |
|
1808 | |||
@@ -2150,7 +2152,7 class SpectraWriter(JRODataWriter): | |||||
2150 |
|
2152 | |||
2151 | self.filename = None |
|
2153 | self.filename = None | |
2152 |
|
2154 | |||
2153 | self.basicHeaderObj = BasicHeader() |
|
2155 | self.basicHeaderObj = BasicHeader(LOCALTIME) | |
2154 |
|
2156 | |||
2155 | self.systemHeaderObj = SystemHeader() |
|
2157 | self.systemHeaderObj = SystemHeader() | |
2156 |
|
2158 |
@@ -39,8 +39,10 class BasicHeader(Header): | |||||
39 | errorCount = None |
|
39 | errorCount = None | |
40 | struct = None |
|
40 | struct = None | |
41 | datatime = None |
|
41 | datatime = None | |
|
42 | ||||
|
43 | __LOCALTIME = None | |||
42 |
|
44 | |||
43 | def __init__(self): |
|
45 | def __init__(self, localtime=0): | |
44 |
|
46 | |||
45 | self.size = 0 |
|
47 | self.size = 0 | |
46 | self.version = 0 |
|
48 | self.version = 0 | |
@@ -61,6 +63,7 class BasicHeader(Header): | |||||
61 | ('nErrorCount','<u4') |
|
63 | ('nErrorCount','<u4') | |
62 | ]) |
|
64 | ]) | |
63 |
|
65 | |||
|
66 | self.__LOCALTIME = localtime | |||
64 |
|
67 | |||
65 | def read(self, fp): |
|
68 | def read(self, fp): | |
66 | try: |
|
69 | try: | |
@@ -74,9 +77,13 class BasicHeader(Header): | |||||
74 | self.dstFlag = int(header['nDstflag'][0]) |
|
77 | self.dstFlag = int(header['nDstflag'][0]) | |
75 | self.errorCount = int(header['nErrorCount'][0]) |
|
78 | self.errorCount = int(header['nErrorCount'][0]) | |
76 |
|
79 | |||
|
80 | self.utc += self.__LOCALTIME | |||
|
81 | ||||
77 | self.datatime = datetime.datetime.utcfromtimestamp(self.utc) |
|
82 | self.datatime = datetime.datetime.utcfromtimestamp(self.utc) | |
|
83 | ||||
78 | except Exception, e: |
|
84 | except Exception, e: | |
79 |
print "BasicHeader: " |
|
85 | print "BasicHeader: " | |
|
86 | print e | |||
80 | return 0 |
|
87 | return 0 | |
81 |
|
88 | |||
82 | return 1 |
|
89 | return 1 |
@@ -7,6 +7,8 class CrossSpectraPlot(Figure): | |||||
7 | __isConfig = None |
|
7 | __isConfig = None | |
8 | __nsubplots = None |
|
8 | __nsubplots = None | |
9 |
|
9 | |||
|
10 | WIDTH = None | |||
|
11 | HEIGHT = None | |||
10 | WIDTHPROF = None |
|
12 | WIDTHPROF = None | |
11 | HEIGHTPROF = None |
|
13 | HEIGHTPROF = None | |
12 | PREFIX = 'cspc' |
|
14 | PREFIX = 'cspc' | |
@@ -16,8 +18,8 class CrossSpectraPlot(Figure): | |||||
16 | self.__isConfig = False |
|
18 | self.__isConfig = False | |
17 | self.__nsubplots = 4 |
|
19 | self.__nsubplots = 4 | |
18 |
|
20 | |||
19 |
self.WIDTH = |
|
21 | self.WIDTH = 250 | |
20 |
self.HEIGHT = |
|
22 | self.HEIGHT = 250 | |
21 | self.WIDTHPROF = 0 |
|
23 | self.WIDTHPROF = 0 | |
22 | self.HEIGHTPROF = 0 |
|
24 | self.HEIGHTPROF = 0 | |
23 |
|
25 | |||
@@ -271,6 +273,11 class RTIPlot(Figure): | |||||
271 |
|
273 | |||
272 | noise = dataOut.getNoise() |
|
274 | noise = dataOut.getNoise() | |
273 |
|
275 | |||
|
276 | thisDatetime = dataOut.datatime | |||
|
277 | title = "RTI: %s" %(thisDatetime.strftime("%d-%b-%Y")) | |||
|
278 | xlabel = "Velocity (m/s)" | |||
|
279 | ylabel = "Range (Km)" | |||
|
280 | ||||
274 | if not self.__isConfig: |
|
281 | if not self.__isConfig: | |
275 |
|
282 | |||
276 | nplots = len(channelIndexList) |
|
283 | nplots = len(channelIndexList) | |
@@ -288,11 +295,7 class RTIPlot(Figure): | |||||
288 |
|
295 | |||
289 | self.name = thisDatetime.strftime("%Y%m%d_%H%M%S") |
|
296 | self.name = thisDatetime.strftime("%Y%m%d_%H%M%S") | |
290 | self.__isConfig = True |
|
297 | self.__isConfig = True | |
291 |
|
|
298 | ||
292 | thisDatetime = dataOut.datatime |
|
|||
293 | title = "RTI: %s" %(thisDatetime.strftime("%d-%b-%Y")) |
|
|||
294 | xlabel = "Velocity (m/s)" |
|
|||
295 | ylabel = "Range (Km)" |
|
|||
296 |
|
299 | |||
297 | self.setWinTitle(title) |
|
300 | self.setWinTitle(title) | |
298 |
|
301 | |||
@@ -339,8 +342,8 class SpectraPlot(Figure): | |||||
339 | self.__isConfig = False |
|
342 | self.__isConfig = False | |
340 | self.__nsubplots = 1 |
|
343 | self.__nsubplots = 1 | |
341 |
|
344 | |||
342 |
self.WIDTH = 30 |
|
345 | self.WIDTH = 230 | |
343 |
self.HEIGHT = |
|
346 | self.HEIGHT = 250 | |
344 | self.WIDTHPROF = 120 |
|
347 | self.WIDTHPROF = 120 | |
345 | self.HEIGHTPROF = 0 |
|
348 | self.HEIGHTPROF = 0 | |
346 |
|
349 | |||
@@ -669,7 +672,7 class ProfilePlot(Figure): | |||||
669 |
|
672 | |||
670 | self.saveFigure(figpath, figfile) |
|
673 | self.saveFigure(figpath, figfile) | |
671 |
|
674 | |||
672 |
class Coherence |
|
675 | class CoherenceMap(Figure): | |
673 | __isConfig = None |
|
676 | __isConfig = None | |
674 | __nsubplots = None |
|
677 | __nsubplots = None | |
675 |
|
678 | |||
@@ -736,6 +739,12 class CoherencePlot(Figure): | |||||
736 | if timerange != None: |
|
739 | if timerange != None: | |
737 | self.timerange = timerange |
|
740 | self.timerange = timerange | |
738 |
|
741 | |||
|
742 | if pairsIndexList == []: | |||
|
743 | return | |||
|
744 | ||||
|
745 | if len(pairsIndexList) > 4: | |||
|
746 | pairsIndexList = pairsIndexList[0:4] | |||
|
747 | ||||
739 | tmin = None |
|
748 | tmin = None | |
740 | tmax = None |
|
749 | tmax = None | |
741 | x = dataOut.getTimeRange() |
|
750 | x = dataOut.getTimeRange() |
@@ -1079,9 +1079,10 class IncohInt(Operation): | |||||
1079 | dataOut.flagNoData = True |
|
1079 | dataOut.flagNoData = True | |
1080 |
|
1080 | |||
1081 | if self.__dataReady: |
|
1081 | if self.__dataReady: | |
1082 | dataOut.data_spc = avgdata_spc |
|
1082 | ||
1083 |
dataOut.data_ |
|
1083 | dataOut.data_spc = avgdata_spc / self.n | |
1084 |
dataOut.data_ |
|
1084 | dataOut.data_cspc = avgdata_cspc / self.n | |
|
1085 | dataOut.data_dc = avgdata_dc / self.n | |||
1085 |
|
1086 | |||
1086 | dataOut.nIncohInt *= self.n |
|
1087 | dataOut.nIncohInt *= self.n | |
1087 | dataOut.utctime = avgdatatime |
|
1088 | dataOut.utctime = avgdatatime | |
@@ -1123,13 +1124,13 class ProfileSelector(Operation): | |||||
1123 |
|
1124 | |||
1124 | def run(self, dataOut, profileList=None, profileRangeList=None): |
|
1125 | def run(self, dataOut, profileList=None, profileRangeList=None): | |
1125 |
|
1126 | |||
|
1127 | dataOut.flagNoData = True | |||
1126 | self.nProfiles = dataOut.nProfiles |
|
1128 | self.nProfiles = dataOut.nProfiles | |
1127 |
|
1129 | |||
1128 | if profileList != None: |
|
1130 | if profileList != None: | |
1129 |
if |
|
1131 | if self.isProfileInList(profileList): | |
1130 | dataOut.flagNoData = True |
|
|||
1131 | else: |
|
|||
1132 | dataOut.flagNoData = False |
|
1132 | dataOut.flagNoData = False | |
|
1133 | ||||
1133 | self.incIndex() |
|
1134 | self.incIndex() | |
1134 | return 1 |
|
1135 | return 1 | |
1135 |
|
1136 | |||
@@ -1137,12 +1138,12 class ProfileSelector(Operation): | |||||
1137 | elif profileRangeList != None: |
|
1138 | elif profileRangeList != None: | |
1138 | minIndex = profileRangeList[0] |
|
1139 | minIndex = profileRangeList[0] | |
1139 | maxIndex = profileRangeList[1] |
|
1140 | maxIndex = profileRangeList[1] | |
1140 |
if |
|
1141 | if self.isProfileInRange(minIndex, maxIndex): | |
1141 | dataOut.flagNoData = True |
|
|||
1142 | else: |
|
|||
1143 | dataOut.flagNoData = False |
|
1142 | dataOut.flagNoData = False | |
|
1143 | ||||
1144 | self.incIndex() |
|
1144 | self.incIndex() | |
1145 | return 1 |
|
1145 | return 1 | |
|
1146 | ||||
1146 | else: |
|
1147 | else: | |
1147 | raise ValueError, "ProfileSelector needs profileList or profileRangeList" |
|
1148 | raise ValueError, "ProfileSelector needs profileList or profileRangeList" | |
1148 |
|
1149 |
General Comments 0
You need to be logged in to leave comments.
Login now