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