##// 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 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: " + e
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 = 300
21 self.WIDTH = 250
20 self.HEIGHT = 400
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 = 300
345 self.WIDTH = 230
343 self.HEIGHT = 400
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 CoherencePlot(Figure):
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_cspc = avgdata_cspc
1083 dataOut.data_spc = avgdata_spc / self.n
1084 dataOut.data_dc = avgdata_dc
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 not(self.isProfileInList(profileList)):
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 not(self.isProfileInRange(minIndex, maxIndex)):
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