@@ -57,6 +57,13 class BasicHeader: | |||||
57 | obj.errorCount = self.errorCount |
|
57 | obj.errorCount = self.errorCount | |
58 |
|
58 | |||
59 | return obj |
|
59 | return obj | |
|
60 | ||||
|
61 | def write(self, fp): | |||
|
62 | headerTuple = (self.size,self.version,self.dataBlock,self.utc,self.miliSecond,self.timeZone,self.dstFlag,self.errorCount) | |||
|
63 | header = numpy.array(headerTuple,self.struct) | |||
|
64 | header.tofile(fp) | |||
|
65 | ||||
|
66 | return 1 | |||
60 |
|
67 | |||
61 | class SystemHeader: |
|
68 | class SystemHeader: | |
62 |
|
69 | |||
@@ -102,6 +109,13 class SystemHeader: | |||||
102 |
|
109 | |||
103 | return obj |
|
110 | return obj | |
104 |
|
111 | |||
|
112 | def write(self, fp): | |||
|
113 | headerTuple = (self.size,self.numSamples,self.numProfiles,self.numChannels,self.adcResolution,self.pciDioBusWidth) | |||
|
114 | header = numpy.array(headerTuple,self.struct) | |||
|
115 | header.tofile(fp) | |||
|
116 | ||||
|
117 | return 1 | |||
|
118 | ||||
105 | class RadarControllerHeader: |
|
119 | class RadarControllerHeader: | |
106 |
|
120 | |||
107 |
|
121 | |||
@@ -116,7 +130,7 class RadarControllerHeader: | |||||
116 | self.numTaus = 0 |
|
130 | self.numTaus = 0 | |
117 | self.codeType = 0 |
|
131 | self.codeType = 0 | |
118 | self.line6Function = 0 |
|
132 | self.line6Function = 0 | |
119 | self.line5Fuction = 0 |
|
133 | self.line5Function = 0 | |
120 | self.fClock = 0 |
|
134 | self.fClock = 0 | |
121 | self.prePulseBefore = 0 |
|
135 | self.prePulseBefore = 0 | |
122 | self.prePulserAfter = 0 |
|
136 | self.prePulserAfter = 0 | |
@@ -142,6 +156,7 class RadarControllerHeader: | |||||
142 | ('sRangeTxA','<a20'), |
|
156 | ('sRangeTxA','<a20'), | |
143 | ('sRangeTxB','<a20'), |
|
157 | ('sRangeTxB','<a20'), | |
144 | ]) |
|
158 | ]) | |
|
159 | self.dynamic = numpy.array([],numpy.dtype('byte')) | |||
145 |
|
160 | |||
146 |
|
161 | |||
147 | def read(self, fp): |
|
162 | def read(self, fp): | |
@@ -156,7 +171,7 class RadarControllerHeader: | |||||
156 | self.numTaus = header['nNumTaus'][0] |
|
171 | self.numTaus = header['nNumTaus'][0] | |
157 | self.codeType = header['nCodeType'][0] |
|
172 | self.codeType = header['nCodeType'][0] | |
158 | self.line6Function = header['nLine6Function'][0] |
|
173 | self.line6Function = header['nLine6Function'][0] | |
159 | self.line5Fuction = header['nLine5Function'][0] |
|
174 | self.line5Function = header['nLine5Function'][0] | |
160 | self.fClock = header['fClock'][0] |
|
175 | self.fClock = header['fClock'][0] | |
161 | self.prePulseBefore = header['nPrePulseBefore'][0] |
|
176 | self.prePulseBefore = header['nPrePulseBefore'][0] | |
162 | self.prePulserAfter = header['nPrePulseAfter'][0] |
|
177 | self.prePulserAfter = header['nPrePulseAfter'][0] | |
@@ -165,7 +180,7 class RadarControllerHeader: | |||||
165 | self.rangeTxB = header['sRangeTxB'][0] |
|
180 | self.rangeTxB = header['sRangeTxB'][0] | |
166 | # jump Dynamic Radar Controller Header |
|
181 | # jump Dynamic Radar Controller Header | |
167 | jumpHeader = self.size - 116 |
|
182 | jumpHeader = self.size - 116 | |
168 | fp.seek(fp.tell() + jumpHeader) |
|
183 | self.dynamic = numpy.fromfile(fp,numpy.dtype('byte'),jumpHeader) | |
169 |
|
184 | |||
170 | return 1 |
|
185 | return 1 | |
171 |
|
186 | |||
@@ -182,16 +197,46 class RadarControllerHeader: | |||||
182 | obj.numTaus = self.numTaus |
|
197 | obj.numTaus = self.numTaus | |
183 | obj.codeType = self.codeType |
|
198 | obj.codeType = self.codeType | |
184 | obj.line6Function = self.line6Function |
|
199 | obj.line6Function = self.line6Function | |
185 | obj.line5Fuction = self.line5Fuction |
|
200 | obj.line5Function = self.line5Function | |
186 | obj.fClock = self.fClock |
|
201 | obj.fClock = self.fClock | |
187 | obj.prePulseBefore = self.prePulseBefore |
|
202 | obj.prePulseBefore = self.prePulseBefore | |
188 | obj.prePulserAfter = self.prePulserAfter |
|
203 | obj.prePulserAfter = self.prePulserAfter | |
189 | obj.rangeIpp = self.rangeIpp |
|
204 | obj.rangeIpp = self.rangeIpp | |
190 | obj.rangeTxA = self.rangeTxA |
|
205 | obj.rangeTxA = self.rangeTxA | |
191 | obj.rangeTxB = self.rangeTxB |
|
206 | obj.rangeTxB = self.rangeTxB | |
|
207 | obj.dynamic = self.dynamic | |||
192 |
|
208 | |||
193 | return obj |
|
209 | return obj | |
194 |
|
210 | |||
|
211 | def write(self, fp): | |||
|
212 | headerTuple = (self.size, | |||
|
213 | self.expType, | |||
|
214 | self.nTx, | |||
|
215 | self.ipp, | |||
|
216 | self.txA, | |||
|
217 | self.txB, | |||
|
218 | self.numWindows, | |||
|
219 | self.numTaus, | |||
|
220 | self.codeType, | |||
|
221 | self.line6Function, | |||
|
222 | self.line5Function, | |||
|
223 | self.fClock, | |||
|
224 | self.prePulseBefore, | |||
|
225 | self.prePulserAfter, | |||
|
226 | self.rangeIpp, | |||
|
227 | self.rangeTxA, | |||
|
228 | self.rangeTxB) | |||
|
229 | ||||
|
230 | header = numpy.array(headerTuple,self.struct) | |||
|
231 | header.tofile(fp) | |||
|
232 | ||||
|
233 | dynamic = self.dynamic | |||
|
234 | dynamic.tofile(fp) | |||
|
235 | ||||
|
236 | return 1 | |||
|
237 | ||||
|
238 | ||||
|
239 | ||||
195 | class ProcessingHeader: |
|
240 | class ProcessingHeader: | |
196 |
|
241 | |||
197 | def __init__(self): |
|
242 | def __init__(self): | |
@@ -278,6 +323,46 class ProcessingHeader: | |||||
278 | obj.codes = self.codes |
|
323 | obj.codes = self.codes | |
279 |
|
324 | |||
280 | return obj |
|
325 | return obj | |
|
326 | ||||
|
327 | def write(self, fp): | |||
|
328 | headerTuple = (self.size, | |||
|
329 | self.dataType, | |||
|
330 | self.blockSize, | |||
|
331 | self.profilesPerBlock, | |||
|
332 | self.dataBlocksPerFile, | |||
|
333 | self.numWindows, | |||
|
334 | self.processFlags, | |||
|
335 | self.coherentInt, | |||
|
336 | self.incoherentInt, | |||
|
337 | self.totalSpectra) | |||
|
338 | ||||
|
339 | header = numpy.array(headerTuple,self.struct) | |||
|
340 | header.tofile(fp) | |||
|
341 | ||||
|
342 | if self.numWindows != 0: | |||
|
343 | sampleWindowTuple = (self.firstHeight,self.deltaHeight,self.samplesWin) | |||
|
344 | samplingWindow = numpy.array(sampleWindowTuple,self.structSamplingWindow) | |||
|
345 | samplingWindow.tofile(fp) | |||
|
346 | ||||
|
347 | ||||
|
348 | if self.totalSpectra != 0: | |||
|
349 | spectraComb = numpy.array([],numpy.dtype('u1')) | |||
|
350 | spectraComb = self.spectraComb | |||
|
351 | spectraComb.tofile(fp) | |||
|
352 | ||||
|
353 | ||||
|
354 | if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE: | |||
|
355 | numCode = self.numCode | |||
|
356 | numCode.tofile(fp) | |||
|
357 | ||||
|
358 | numBaud = self.numBaud | |||
|
359 | numBaud.tofile(fp) | |||
|
360 | ||||
|
361 | codes = self.codes.reshape(numCode*numBaud) | |||
|
362 | codes.tofile(fp) | |||
|
363 | ||||
|
364 | return 1 | |||
|
365 | ||||
281 |
|
366 | |||
282 | class PROCFLAG: |
|
367 | class PROCFLAG: | |
283 | COHERENT_INTEGRATION = numpy.uint32(0x00000001) |
|
368 | COHERENT_INTEGRATION = numpy.uint32(0x00000001) |
@@ -20,20 +20,25 class TestIO(): | |||||
20 | def setValues(self): |
|
20 | def setValues(self): | |
21 |
|
21 | |||
22 |
|
22 | |||
23 | self.path = '/Users/danielangelsuarezmunoz/Documents/Projects' |
|
23 | self.path = '/Users/danielangelsuarezmunoz/Documents/Projects/testWR' | |
24 | self.startDateTime = datetime.datetime(2007,5,1,17,49,0) |
|
24 | self.startDateTime = datetime.datetime(2007,5,1,17,49,0) | |
25 |
self.endDateTime = datetime.datetime(2007,5,1,18,1 |
|
25 | self.endDateTime = datetime.datetime(2007,5,1,18,15,0) | |
26 |
|
26 | |||
27 | def createVoltageObjects(self): |
|
27 | def createVoltageObjects(self): | |
28 | path = os.path.split(os.getcwd())[0] |
|
28 | path = os.path.split(os.getcwd())[0] | |
29 | sys.path.append(path) |
|
29 | sys.path.append(path) | |
30 |
|
30 | |||
31 | from IO.Voltage import VoltageReader |
|
31 | from IO.VoltageIO import VoltageReader | |
|
32 | from IO.VoltageIO import VoltageWriter | |||
32 | from Model.Voltage import Voltage |
|
33 | from Model.Voltage import Voltage | |
33 |
|
34 | |||
34 | self.voltageModelObj = Voltage() |
|
35 | self.voltageModelObj = Voltage() | |
35 | self.voltageReaderObj = VoltageReader(self.voltageModelObj) |
|
36 | self.voltageReaderObj = VoltageReader(self.voltageModelObj) | |
36 | self.voltageReaderObj.setup(self.path, self.startDateTime, self.endDateTime) |
|
37 | self.voltageReaderObj.setup(self.path, self.startDateTime, self.endDateTime) | |
|
38 | ||||
|
39 | # self.voltageWriterObj = VoltageWriter(self.voltageModelObj) | |||
|
40 | # self.voltageWriterObj.setup('/Users/danielangelsuarezmunoz/Documents/Projects/testWR') | |||
|
41 | ||||
37 |
|
42 | |||
38 | def testReadVoltage(self): |
|
43 | def testReadVoltage(self): | |
39 | while(not(self.voltageReaderObj.noMoreFiles)): |
|
44 | while(not(self.voltageReaderObj.noMoreFiles)): | |
@@ -45,6 +50,8 class TestIO(): | |||||
45 | if self.voltageReaderObj.flagIsNewBlock: |
|
50 | if self.voltageReaderObj.flagIsNewBlock: | |
46 | print 'Block No %04d, Time: %s'%(self.voltageReaderObj.nReadBlocks, |
|
51 | print 'Block No %04d, Time: %s'%(self.voltageReaderObj.nReadBlocks, | |
47 | datetime.datetime.fromtimestamp(self.voltageReaderObj.m_BasicHeader.utc)) |
|
52 | datetime.datetime.fromtimestamp(self.voltageReaderObj.m_BasicHeader.utc)) | |
|
53 | ||||
|
54 | # self.voltageWriterObj.putData() | |||
48 |
|
55 | |||
49 | if __name__ == '__main__': |
|
56 | if __name__ == '__main__': | |
50 | TestIO() No newline at end of file |
|
57 | TestIO() |
@@ -531,7 +531,12 class VoltageReader(DataReader): | |||||
531 |
|
531 | |||
532 | self.startDoy = startDateTime.timetuple().tm_yday |
|
532 | self.startDoy = startDateTime.timetuple().tm_yday | |
533 | self.endDoy = endDateTime.timetuple().tm_yday |
|
533 | self.endDoy = endDateTime.timetuple().tm_yday | |
534 | #call fillHeaderValues() - to Data Object |
|
534 | ||
|
535 | self.m_Voltage.m_BasicHeader = self.m_BasicHeader.copy() | |||
|
536 | self.m_Voltage.m_ProcessingHeader = self.m_ProcessingHeader.copy() | |||
|
537 | self.m_Voltage.m_RadarControllerHeader = self.m_RadarControllerHeader.copy() | |||
|
538 | self.m_Voltage.m_SystemHeader = self.m_SystemHeader.copy() | |||
|
539 | self.m_Voltage.dataType = self.__dataType | |||
535 |
|
540 | |||
536 | self.__pathList = pathList |
|
541 | self.__pathList = pathList | |
537 | self.filenameList = filenameList |
|
542 | self.filenameList = filenameList | |
@@ -597,6 +602,8 class VoltageReader(DataReader): | |||||
597 | self.m_Voltage.m_SystemHeader = self.m_SystemHeader.copy() |
|
602 | self.m_Voltage.m_SystemHeader = self.m_SystemHeader.copy() | |
598 | self.m_Voltage.m_BasicHeader.utc = time |
|
603 | self.m_Voltage.m_BasicHeader.utc = time | |
599 | self.m_Voltage.data = data |
|
604 | self.m_Voltage.data = data | |
|
605 | self.m_Voltage.flagNoData = False | |||
|
606 | self.m_Voltage.flagResetProcessing = self.flagResetProcessing | |||
600 | self.m_Voltage.heights = self.__heights |
|
607 | self.m_Voltage.heights = self.__heights | |
601 | self.m_Voltage.idProfile = self.idProfile |
|
608 | self.m_Voltage.idProfile = self.idProfile | |
602 | self.m_Voltage.dataType = self.__dataType |
|
609 | self.m_Voltage.dataType = self.__dataType | |
@@ -608,11 +615,8 class VoltageReader(DataReader): | |||||
608 |
|
615 | |||
609 | return data |
|
616 | return data | |
610 |
|
617 | |||
611 |
|
||||
612 |
|
||||
613 |
|
||||
614 | class VoltageWriter(DataWriter): |
|
618 | class VoltageWriter(DataWriter): | |
615 |
|
619 | __configHeaderFile = 'wrSetHeadet.txt' | ||
616 |
|
620 | |||
617 | def __init__(self, m_Voltage = None): |
|
621 | def __init__(self, m_Voltage = None): | |
618 |
|
622 | |||
@@ -621,13 +625,17 class VoltageWriter(DataWriter): | |||||
621 |
|
625 | |||
622 | self.m_Voltage = m_Voltage |
|
626 | self.m_Voltage = m_Voltage | |
623 |
|
627 | |||
|
628 | self.__path = None | |||
|
629 | ||||
624 | self.__fp = None |
|
630 | self.__fp = None | |
|
631 | ||||
|
632 | self.__format = None | |||
625 |
|
633 | |||
626 | self.__blocksCounter = 0 |
|
634 | self.__blocksCounter = 0 | |
627 |
|
635 | |||
628 | self.__setFile = None |
|
636 | self.__setFile = None | |
629 |
|
637 | |||
630 |
self.__flagIsNewFile = |
|
638 | self.__flagIsNewFile = 1 | |
631 |
|
639 | |||
632 | self.__buffer = 0 |
|
640 | self.__buffer = 0 | |
633 |
|
641 | |||
@@ -653,20 +661,53 class VoltageWriter(DataWriter): | |||||
653 |
|
661 | |||
654 | self.m_ProcessingHeader = ProcessingHeader() |
|
662 | self.m_ProcessingHeader = ProcessingHeader() | |
655 |
|
663 | |||
|
664 | ||||
|
665 | def __writeBasicHeader(self, fp=None): | |||
|
666 | if fp == None: | |||
|
667 | fp = self.__fp | |||
|
668 | ||||
|
669 | self.m_BasicHeader.write(fp) | |||
|
670 | ||||
|
671 | def __wrSystemHeader(self,fp=None): | |||
|
672 | if fp == None: | |||
|
673 | fp = self.__fp | |||
|
674 | ||||
|
675 | self.m_SystemHeader.write(fp) | |||
|
676 | ||||
|
677 | def __wrRadarControllerHeader(self,fp=None): | |||
|
678 | if fp == None: | |||
|
679 | fp = self.__fp | |||
|
680 | ||||
|
681 | self.m_RadarControllerHeader.write(fp) | |||
|
682 | ||||
|
683 | def __wrProcessingHeader(self,fp=None): | |||
|
684 | if fp == None: | |||
|
685 | fp = self.__fp | |||
|
686 | ||||
|
687 | self.m_ProcessingHeader.write(fp) | |||
|
688 | ||||
|
689 | def __writeFirstHeader(self): | |||
|
690 | self.__writeBasicHeader() | |||
|
691 | self.__wrSystemHeader() | |||
|
692 | self.__wrRadarControllerHeader() | |||
|
693 | self.__wrProcessingHeader() | |||
|
694 | self.__dataType = self.m_Voltage.dataType | |||
|
695 | ||||
|
696 | ||||
656 | def __setNextFile(self): |
|
697 | def __setNextFile(self): | |
|
698 | ||||
657 | setFile = self.__setFile |
|
699 | setFile = self.__setFile | |
658 | ext = self.__ext |
|
700 | ext = self.__ext | |
659 | path = self.__path |
|
701 | path = self.__path | |
660 |
|
702 | |||
661 | setFile += 1 |
|
703 | setFile += 1 | |
662 |
|
|
704 | ||
663 | if not(self.__blocksCounter >= self.m_ProcessingHeader.dataBlocksPerFile): |
|
705 | if self.__fp != None: | |
664 | self.__fp.close() |
|
706 | self.__fp.close() | |
665 | return 0 |
|
|||
666 |
|
707 | |||
667 | timeTuple = time.localtime(self.m_Voltage.m_BasicHeader.utc) # utc from m_Voltage |
|
708 | timeTuple = time.localtime(self.m_Voltage.m_BasicHeader.utc) # utc from m_Voltage | |
668 |
file = 'D%4.4d%3.3d%3.3d%s' % (timeTuple.tm_year,timeTuple.tm_ |
|
709 | file = 'D%4.4d%3.3d%3.3d%s' % (timeTuple.tm_year,timeTuple.tm_yday,setFile,ext) | |
669 |
subfolder = 'D%4.4d%3.3d' % (timeTuple.tm_year,timeTuple.tm_ |
|
710 | subfolder = 'D%4.4d%3.3d' % (timeTuple.tm_year,timeTuple.tm_yday) | |
670 | tmp = os.path.join(path,subfolder) |
|
711 | tmp = os.path.join(path,subfolder) | |
671 | if not(os.path.exists(tmp)): |
|
712 | if not(os.path.exists(tmp)): | |
672 | os.mkdir(tmp) |
|
713 | os.mkdir(tmp) | |
@@ -674,7 +715,7 class VoltageWriter(DataWriter): | |||||
674 | filename = os.path.join(path,subfolder,file) |
|
715 | filename = os.path.join(path,subfolder,file) | |
675 | fp = open(filename,'wb') |
|
716 | fp = open(filename,'wb') | |
676 |
|
717 | |||
677 |
|
718 | self.__blocksCounter = 0 | ||
678 |
|
719 | |||
679 | #guardando atributos |
|
720 | #guardando atributos | |
680 | self.filename = filename |
|
721 | self.filename = filename | |
@@ -685,9 +726,9 class VoltageWriter(DataWriter): | |||||
685 |
|
726 | |||
686 | print 'Writing the file: %s'%self.filename |
|
727 | print 'Writing the file: %s'%self.filename | |
687 |
|
728 | |||
|
729 | self.__writeFirstHeader() | |||
|
730 | ||||
688 | return 1 |
|
731 | return 1 | |
689 |
|
||||
690 |
|
||||
691 |
|
732 | |||
692 | def __setNewBlock(self): |
|
733 | def __setNewBlock(self): | |
693 | if self.__fp == None: |
|
734 | if self.__fp == None: | |
@@ -696,21 +737,18 class VoltageWriter(DataWriter): | |||||
696 | if self.__flagIsNewFile: |
|
737 | if self.__flagIsNewFile: | |
697 | return 1 |
|
738 | return 1 | |
698 |
|
739 | |||
699 | #Bloques completados? |
|
740 | if self.__blocksCounter < self.m_ProcessingHeader.dataBlocksPerFile: | |
700 | if self.__blocksCounter < self.m_ProcessingHeader.profilesPerBlock: |
|
|||
701 | self.__writeBasicHeader() |
|
741 | self.__writeBasicHeader() | |
702 | return 1 |
|
742 | return 1 | |
703 |
|
743 | |||
704 | if not(self.__setNextFile()): |
|
744 | if not(self.__setNextFile()): | |
705 | return 0 |
|
745 | return 0 | |
706 |
|
746 | |||
707 | self.__writeFirstHeader() |
|
|||
708 |
|
||||
709 | return 1 |
|
747 | return 1 | |
710 |
|
748 | |||
711 | def __writeBlock(self): |
|
749 | def __writeBlock(self): | |
712 |
|
|
750 | ||
713 | numpy.save(self.__fp,self.__buffer) |
|
751 | self.__buffer.tofile(self.__fp) | |
714 |
|
752 | |||
715 | self.__buffer = numpy.array([],self.__dataType) |
|
753 | self.__buffer = numpy.array([],self.__dataType) | |
716 |
|
754 | |||
@@ -724,37 +762,48 class VoltageWriter(DataWriter): | |||||
724 |
|
762 | |||
725 | self.__blocksCounter += 1 |
|
763 | self.__blocksCounter += 1 | |
726 |
|
764 | |||
|
765 | ||||
727 | def writeNextBlock(self): |
|
766 | def writeNextBlock(self): | |
|
767 | ||||
728 | if not(self.__setNewBlock()): |
|
768 | if not(self.__setNewBlock()): | |
729 | return 0 |
|
769 | return 0 | |
730 |
|
770 | |||
731 | self.__writeBlock() |
|
771 | self.__writeBlock() | |
732 |
|
772 | |||
733 | return 1 |
|
773 | return 1 | |
734 |
|
774 | |||
735 | def __hasAllDataInBuffer(self): |
|
775 | def __hasAllDataInBuffer(self): | |
736 | if self.__buffer_id >= self.m_ProcessingHeader.profilesPerBlock: |
|
776 | if self.__buffer_id >= self.m_ProcessingHeader.profilesPerBlock: | |
737 | return 1 |
|
777 | return 1 | |
738 |
|
778 | |||
739 | return 0 |
|
779 | return 0 | |
740 |
|
780 | |||
741 | def putData(self): |
|
781 | def putData(self): | |
742 | self.flagIsNewBlock = 0 |
|
782 | self.flagIsNewBlock = 0 | |
743 |
|
783 | |||
744 |
if self.m_Voltage. |
|
784 | if self.m_Voltage.flagNoData: | |
745 | return None |
|
785 | return None | |
746 |
|
786 | |||
747 |
|
|
787 | if self.m_Voltage.flagResetProcessing: | |
|
788 | self.__buffer = numpy.array([],self.__dataType) | |||
|
789 | self.__buffer_id = 0 | |||
|
790 | self.__setNextFile() | |||
|
791 | ||||
|
792 | self.__setHeaderByObj() | |||
|
793 | ||||
|
794 | shape = self.m_Voltage.data.shape | |||
748 | data = numpy.zeros(shape,self.__dataType) |
|
795 | data = numpy.zeros(shape,self.__dataType) | |
|
796 | ||||
749 | data['real'] = self.m_Voltage.data.real |
|
797 | data['real'] = self.m_Voltage.data.real | |
750 | data['imag'] = self.m_Voltage.data.imag |
|
798 | data['imag'] = self.m_Voltage.data.imag | |
|
799 | ||||
751 | data = data.reshape((-1)) |
|
800 | data = data.reshape((-1)) | |
752 |
|
801 | |||
753 | self.__buffer = numpy.hstack((self.__buffer,data)) |
|
802 | self.__buffer = numpy.hstack((self.__buffer,data)) | |
754 |
|
803 | |||
755 | self.__buffer_id += 1 |
|
804 | self.__buffer_id += 1 | |
756 |
|
805 | |||
757 | if __hasAllDataInBuffer(): |
|
806 | if self.__hasAllDataInBuffer(): | |
758 | self.writeNextBlock() |
|
807 | self.writeNextBlock() | |
759 |
|
808 | |||
760 |
|
809 | |||
@@ -763,39 +812,118 class VoltageWriter(DataWriter): | |||||
763 | return None |
|
812 | return None | |
764 |
|
813 | |||
765 | return 1 |
|
814 | return 1 | |
766 |
|
||||
767 |
|
815 | |||
768 | def setup(self,path,set=None,format=None): |
|
816 | def __setHeaderByObj(self): | |
|
817 | self.m_BasicHeader = self.m_Voltage.m_BasicHeader.copy() | |||
|
818 | self.m_SystemHeader = self.m_Voltage.m_SystemHeader.copy() | |||
|
819 | self.m_RadarControllerHeader = self.m_Voltage.m_RadarControllerHeader.copy() | |||
|
820 | self.m_ProcessingHeader = self.m_Voltage.m_ProcessingHeader.copy() | |||
|
821 | self.__dataType = self.m_Voltage.dataType | |||
|
822 | ||||
|
823 | def __setHeaderByFile(self): | |||
|
824 | ||||
|
825 | format = self.__format | |||
|
826 | header = ['Basic','System','RadarController','Processing'] | |||
|
827 | ||||
|
828 | fmtFromFile = None | |||
|
829 | headerFromFile = None | |||
|
830 | ||||
|
831 | ||||
|
832 | fileTable = self.__configHeaderFile | |||
769 |
|
833 | |||
770 | if set == None: |
|
834 | if os.access(fileTable, os.R_OK): | |
771 |
|
|
835 | import re, string | |
|
836 | ||||
|
837 | f = open(fileTable,'r') | |||
|
838 | lines = f.read() | |||
|
839 | f.close() | |||
|
840 | ||||
|
841 | #Delete comments into expConfig | |||
|
842 | while 1: | |||
|
843 | ||||
|
844 | startComment = string.find(lines.lower(),'#') | |||
|
845 | if startComment == -1: | |||
|
846 | break | |||
|
847 | endComment = string.find(lines.lower(),'\n',startComment) | |||
|
848 | lines = string.replace(lines,lines[startComment:endComment+1],'', 1) | |||
|
849 | ||||
|
850 | while expFromFile == None: | |||
|
851 | ||||
|
852 | currFmt = string.find(lines.lower(),'format="%s"' %(expName)) | |||
|
853 | nextFmt = string.find(lines.lower(),'format',currFmt+10) | |||
|
854 | ||||
|
855 | if currFmt == -1: | |||
|
856 | break | |||
|
857 | if nextFmt == -1: | |||
|
858 | nextFmt = len(lines)-1 | |||
|
859 | ||||
|
860 | fmtTable = lines[currFmt:nextFmt] | |||
|
861 | lines = lines[nextFmt:] | |||
|
862 | ||||
|
863 | fmtRead = self.__getValueFromArg(fmtTable,'format') | |||
|
864 | if fmtRead != format: | |||
|
865 | continue | |||
|
866 | fmtFromFile = fmtRead | |||
|
867 | ||||
|
868 | lines2 = fmtTable | |||
|
869 | ||||
|
870 | while headerFromFile == None: | |||
|
871 | ||||
|
872 | currHeader = string.find(lines2.lower(),'header="%s"' %(header)) | |||
|
873 | nextHeader = string.find(lines2.lower(),'header',currHeader+10) | |||
|
874 | ||||
|
875 | if currHeader == -1: | |||
|
876 | break | |||
|
877 | if nextHeader == -1: | |||
|
878 | nextHeader = len(lines2)-1 | |||
|
879 | ||||
|
880 | headerTable = lines2[currHeader:nextHeader] | |||
|
881 | lines2 = lines2[nextHeader:] | |||
|
882 | ||||
|
883 | headerRead = self.__getValueFromArg(headerTable,'site') | |||
|
884 | if not(headerRead in header): | |||
|
885 | continue | |||
|
886 | headerFromFile = headerRead | |||
|
887 | ||||
|
888 | if headerRead == 'Basic': | |||
|
889 | self.m_BasicHeader.size = self.__getValueFromArg(headerTable,'size',lower=False) | |||
|
890 | self.m_BasicHeader.version = self.__getValueFromArg(headerTable,'version',lower=False) | |||
|
891 | self.m_BasicHeader.dataBlock = self.__getValueFromArg(headerTable,'dataBlock',lower=False) | |||
|
892 | self.m_BasicHeader.utc = self.__getValueFromArg(headerTable,'utc',lower=False) | |||
|
893 | self.m_BasicHeader.miliSecond = self.__getValueFromArg(headerTable,'miliSecond',lower=False) | |||
|
894 | self.m_BasicHeader.timeZone = self.__getValueFromArg(headerTable,'timeZone',lower=False) | |||
|
895 | self.m_BasicHeader.dstFlag = self.__getValueFromArg(headerTable,'dstFlag',lower=False) | |||
|
896 | self.m_BasicHeader.errorCount = self.__getValueFromArg(headerTable,'errorCount',lower=False) | |||
|
897 | ||||
772 | else: |
|
898 | else: | |
773 | set -= 1 |
|
899 | print "file access denied:%s"%fileTable | |
|
900 | sys.exit(0) | |||
|
901 | ||||
|
902 | def setup(self,path,set=0,format='rawdata'): | |||
|
903 | ||||
774 |
|
904 | |||
775 | if format == 'hdf5': |
|
905 | if format == 'hdf5': | |
776 | ext = '.hdf5' |
|
906 | ext = '.hdf5' | |
|
907 | format = 'hdf5' | |||
777 | print 'call hdf5 library' |
|
908 | print 'call hdf5 library' | |
778 | return 0 |
|
909 | return 0 | |
779 |
|
910 | |||
780 | if format == 'rawdata': |
|
911 | if format == 'rawdata': | |
781 | ext = '.r' |
|
912 | ext = '.r' | |
|
913 | format = 'Jicamarca' | |||
782 |
|
914 | |||
783 | #call to config_headers |
|
915 | #call to config_headers | |
784 |
|
916 | #self.__setHeaderByFile() | ||
785 |
self.__set |
|
917 | self.__setHeaderByObj() | |
|
918 | self.__path = path | |||
|
919 | self.__setFile = set - 1 | |||
|
920 | self.__ext = ext | |||
|
921 | self.__format = format | |||
|
922 | self.__buffer = numpy.array([],self.__dataType) | |||
786 |
|
923 | |||
787 | if not(self.__setNextFile()): |
|
924 | if not(self.__setNextFile()): | |
788 | print "zzzzzzzzzzzz" |
|
|||
789 | return 0 |
|
925 | return 0 | |
790 |
|
926 | |||
791 | self.__writeFirstHeader() # dentro de esta funcion se debe setear e __dataType |
|
|||
792 |
|
927 | |||
793 | self.__buffer = numpy.array([],self.__dataType) |
|
|||
794 |
|
928 | |||
795 |
|
|
929 | No newline at end of file | |
796 |
|
||||
797 | def __writeBasicHeader(self): |
|
|||
798 | pass |
|
|||
799 |
|
||||
800 | def __writeFirstHeader(self): |
|
|||
801 | pass No newline at end of file |
|
@@ -35,7 +35,7 class Voltage(Data): | |||||
35 |
|
35 | |||
36 | self.heights = None |
|
36 | self.heights = None | |
37 |
|
37 | |||
38 |
self. |
|
38 | self.flagNoData = True | |
39 |
|
39 | |||
40 | self.nProfiles = None |
|
40 | self.nProfiles = None | |
41 |
|
41 | |||
@@ -43,6 +43,8 class Voltage(Data): | |||||
43 |
|
43 | |||
44 | self.dataType = None |
|
44 | self.dataType = None | |
45 |
|
45 | |||
|
46 | self.flagResetProcessing = False | |||
|
47 | ||||
46 | def copy(self): |
|
48 | def copy(self): | |
47 | obj = Voltage() |
|
49 | obj = Voltage() | |
48 | obj.m_BasicHeader = self.m_BasicHeader.copy() |
|
50 | obj.m_BasicHeader = self.m_BasicHeader.copy() | |
@@ -52,10 +54,12 class Voltage(Data): | |||||
52 |
|
54 | |||
53 | obj.data = self.data |
|
55 | obj.data = self.data | |
54 | obj.heights = self.heights |
|
56 | obj.heights = self.heights | |
55 |
obj. |
|
57 | obj.flagNoData = self.flagNoData | |
56 |
|
58 | |||
57 | obj.nProfiles = self.nProfiles |
|
59 | obj.nProfiles = self.nProfiles | |
58 | obj.idProfile = self.idProfile |
|
60 | obj.idProfile = self.idProfile | |
|
61 | obj.dataType = self.dataType | |||
|
62 | obj.flagResetProcessing = self.flagResetProcessing | |||
59 |
|
63 | |||
60 | return obj |
|
64 | return obj | |
61 | No newline at end of file |
|
65 |
@@ -23,7 +23,7 class TestSChain(): | |||||
23 | def setValues(self): |
|
23 | def setValues(self): | |
24 |
|
24 | |||
25 | self.path = '/home/roj-idl71/Data/RAWDATA/DP_Faraday/' |
|
25 | self.path = '/home/roj-idl71/Data/RAWDATA/DP_Faraday/' | |
26 | self.path = '/home/roj-idl71/Data/RAWDATA/IMAGING' |
|
26 | self.path = '/Users/danielangelsuarezmunoz/Documents/Projects/testWR' | |
27 | #self.path = '/remote/puma/2004_11/DVD/' |
|
27 | #self.path = '/remote/puma/2004_11/DVD/' | |
28 | self.startDateTime = datetime.datetime(2004,5,1,17,49,0) |
|
28 | self.startDateTime = datetime.datetime(2004,5,1,17,49,0) | |
29 | self.endDateTime = datetime.datetime(2012,5,1,18,10,0) |
|
29 | self.endDateTime = datetime.datetime(2012,5,1,18,10,0) |
General Comments 0
You need to be logged in to leave comments.
Login now