##// END OF EJS Templates
jrodataIO.py: Adicion del parametro LOCALTIME para la lectura de datos....
Miguel Valdez -
r234:039d4869c5dd
parent child
Show More
@@ -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
@@ -40,7 +40,9 class BasicHeader(Header):
40 40 struct = None
41 41 datatime = None
42 42
43 def __init__(self):
43 __LOCALTIME = None
44
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: " + e
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 = 300
20 self.HEIGHT = 400
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)
@@ -289,10 +296,6 class RTIPlot(Figure):
289 296 self.name = thisDatetime.strftime("%Y%m%d_%H%M%S")
290 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 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 = 300
343 self.HEIGHT = 400
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 CoherencePlot(Figure):
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_cspc = avgdata_cspc
1084 dataOut.data_dc = avgdata_dc
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 not(self.isProfileInList(profileList)):
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 not(self.isProfileInRange(minIndex, maxIndex)):
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