@@ -180,7 +180,7 class VoltageReader(DataReader): | |||||
180 |
|
180 | |||
181 | self.idProfile = 0 |
|
181 | self.idProfile = 0 | |
182 |
|
182 | |||
183 |
self.__buffer = |
|
183 | self.__buffer = None | |
184 |
|
184 | |||
185 | self.__buffer_id = 9999 |
|
185 | self.__buffer_id = 9999 | |
186 |
|
186 | |||
@@ -542,6 +542,8 class VoltageReader(DataReader): | |||||
542 | self.filenameList = filenameList |
|
542 | self.filenameList = filenameList | |
543 | self.online = online |
|
543 | self.online = online | |
544 |
|
544 | |||
|
545 | return 1 | |||
|
546 | ||||
545 | def readNextBlock(self): |
|
547 | def readNextBlock(self): | |
546 | """ |
|
548 | """ | |
547 | readNextBlock establece un nuevo bloque de datos a leer y los lee, si es que no existiese |
|
549 | readNextBlock establece un nuevo bloque de datos a leer y los lee, si es que no existiese | |
@@ -584,36 +586,38 class VoltageReader(DataReader): | |||||
584 | self.flagResetProcessing = 0 |
|
586 | self.flagResetProcessing = 0 | |
585 | self.flagIsNewBlock = 0 |
|
587 | self.flagIsNewBlock = 0 | |
586 |
|
588 | |||
587 |
if self.__hasNotDataInBuffer(): |
|
589 | if self.__hasNotDataInBuffer(): | |
588 |
self.readNextBlock() |
|
590 | self.readNextBlock() | |
589 |
|
591 | |||
|
592 | self.m_Voltage.m_BasicHeader = self.m_BasicHeader.copy() | |||
|
593 | self.m_Voltage.m_ProcessingHeader = self.m_ProcessingHeader.copy() | |||
|
594 | self.m_Voltage.m_RadarControllerHeader = self.m_RadarControllerHeader.copy() | |||
|
595 | self.m_Voltage.m_SystemHeader = self.m_SystemHeader.copy() | |||
|
596 | ||||
|
597 | self.m_Voltage.heights = self.__heights | |||
|
598 | self.m_Voltage.dataType = self.__dataType | |||
|
599 | ||||
590 | if self.noMoreFiles == 1: |
|
600 | if self.noMoreFiles == 1: | |
591 | print 'Process finished' |
|
601 | print 'Process finished' | |
592 | return None |
|
602 | return None | |
593 |
|
603 | |||
594 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) |
|
604 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) | |
595 | data = self.__buffer[self.__buffer_id,:,:] |
|
|||
596 |
|
605 | |||
597 | time = self.m_BasicHeader.utc + self.__buffer_id*self.__ippSeconds |
|
606 | time = self.m_BasicHeader.utc + self.__buffer_id*self.__ippSeconds | |
598 |
|
607 | self.m_Voltage.m_BasicHeader.utc = time | ||
599 | self.m_Voltage.m_BasicHeader = self.m_BasicHeader.copy() |
|
608 | self.m_Voltage.data = self.__buffer[self.__buffer_id,:,:] | |
600 | self.m_Voltage.m_ProcessingHeader = self.m_ProcessingHeader.copy() |
|
|||
601 | self.m_Voltage.m_RadarControllerHeader = self.m_RadarControllerHeader.copy() |
|
|||
602 | self.m_Voltage.m_SystemHeader = self.m_SystemHeader.copy() |
|
|||
603 | self.m_Voltage.m_BasicHeader.utc = time |
|
|||
604 | self.m_Voltage.data = data |
|
|||
605 | self.m_Voltage.flagNoData = False |
|
609 | self.m_Voltage.flagNoData = False | |
606 | self.m_Voltage.flagResetProcessing = self.flagResetProcessing |
|
610 | self.m_Voltage.flagResetProcessing = self.flagResetProcessing | |
607 | self.m_Voltage.heights = self.__heights |
|
611 | ||
608 | self.m_Voltage.idProfile = self.idProfile |
|
612 | self.m_Voltage.idProfile = self.idProfile | |
609 | self.m_Voltage.dataType = self.__dataType |
|
613 | ||
610 |
|
614 | |||
611 | self.__buffer_id += 1 |
|
615 | self.__buffer_id += 1 | |
612 | self.idProfile += 1 |
|
616 | self.idProfile += 1 | |
613 |
|
617 | |||
614 | #call setData - to Data Object |
|
618 | #call setData - to Data Object | |
615 |
|
619 | |||
616 |
return |
|
620 | return 1 | |
617 |
|
621 | |||
618 | class VoltageWriter(DataWriter): |
|
622 | class VoltageWriter(DataWriter): | |
619 | __configHeaderFile = 'wrSetHeadet.txt' |
|
623 | __configHeaderFile = 'wrSetHeadet.txt' | |
@@ -637,7 +641,7 class VoltageWriter(DataWriter): | |||||
637 |
|
641 | |||
638 | self.__flagIsNewFile = 1 |
|
642 | self.__flagIsNewFile = 1 | |
639 |
|
643 | |||
640 |
self.__buffer = |
|
644 | self.__buffer = None | |
641 |
|
645 | |||
642 | self.__buffer_id = 0 |
|
646 | self.__buffer_id = 0 | |
643 |
|
647 | |||
@@ -645,6 +649,8 class VoltageWriter(DataWriter): | |||||
645 |
|
649 | |||
646 | self.__ext = None |
|
650 | self.__ext = None | |
647 |
|
651 | |||
|
652 | self.__shapeBuffer = None | |||
|
653 | ||||
648 | self.nWriteBlocks = 0 |
|
654 | self.nWriteBlocks = 0 | |
649 |
|
655 | |||
650 | self.flagIsNewBlock = 0 |
|
656 | self.flagIsNewBlock = 0 | |
@@ -731,8 +737,9 class VoltageWriter(DataWriter): | |||||
731 | return 1 |
|
737 | return 1 | |
732 |
|
738 | |||
733 | def __setNewBlock(self): |
|
739 | def __setNewBlock(self): | |
|
740 | ||||
734 | if self.__fp == None: |
|
741 | if self.__fp == None: | |
735 | return 0 |
|
742 | self.__setNextFile() | |
736 |
|
743 | |||
737 | if self.__flagIsNewFile: |
|
744 | if self.__flagIsNewFile: | |
738 | return 1 |
|
745 | return 1 | |
@@ -747,10 +754,17 class VoltageWriter(DataWriter): | |||||
747 | return 1 |
|
754 | return 1 | |
748 |
|
755 | |||
749 | def __writeBlock(self): |
|
756 | def __writeBlock(self): | |
750 |
|
||||
751 | self.__buffer.tofile(self.__fp) |
|
|||
752 |
|
757 | |||
753 |
|
|
758 | data = numpy.zeros(self.__shapeBuffer, self.__dataType) | |
|
759 | ||||
|
760 | data['real'] = self.__buffer.real | |||
|
761 | data['imag'] = self.__buffer.imag | |||
|
762 | ||||
|
763 | data = data.reshape((-1)) | |||
|
764 | ||||
|
765 | data.tofile(self.__fp) | |||
|
766 | ||||
|
767 | self.__buffer.fill(0) | |||
754 |
|
768 | |||
755 | self.__buffer_id = 0 |
|
769 | self.__buffer_id = 0 | |
756 |
|
770 | |||
@@ -779,41 +793,35 class VoltageWriter(DataWriter): | |||||
779 | return 0 |
|
793 | return 0 | |
780 |
|
794 | |||
781 | def putData(self): |
|
795 | def putData(self): | |
|
796 | ||||
782 | self.flagIsNewBlock = 0 |
|
797 | self.flagIsNewBlock = 0 | |
783 |
|
798 | |||
784 | if self.m_Voltage.flagNoData: |
|
799 | if self.m_Voltage.flagNoData: | |
785 |
return |
|
800 | return 0 | |
786 |
|
801 | |||
787 | if self.m_Voltage.flagResetProcessing: |
|
802 | if self.m_Voltage.flagResetProcessing: | |
788 | self.__buffer = numpy.array([],self.__dataType) |
|
803 | ||
|
804 | self.__buffer.fill(0) | |||
|
805 | ||||
789 | self.__buffer_id = 0 |
|
806 | self.__buffer_id = 0 | |
790 | self.__setNextFile() |
|
807 | self.__setNextFile() | |
791 |
|
808 | |||
792 | self.__setHeaderByObj() |
|
809 | self.__buffer[self.__buffer_id,:,:] = self.m_Voltage.data | |
793 |
|
||||
794 | shape = self.m_Voltage.data.shape |
|
|||
795 | data = numpy.zeros(shape,self.__dataType) |
|
|||
796 |
|
||||
797 | data['real'] = self.m_Voltage.data.real |
|
|||
798 | data['imag'] = self.m_Voltage.data.imag |
|
|||
799 |
|
||||
800 | data = data.reshape((-1)) |
|
|||
801 |
|
||||
802 | self.__buffer = numpy.hstack((self.__buffer,data)) |
|
|||
803 |
|
810 | |||
804 | self.__buffer_id += 1 |
|
811 | self.__buffer_id += 1 | |
805 |
|
812 | |||
806 | if self.__hasAllDataInBuffer(): |
|
813 | if self.__hasAllDataInBuffer(): | |
|
814 | ||||
|
815 | self.__getHeader() | |||
807 | self.writeNextBlock() |
|
816 | self.writeNextBlock() | |
808 |
|
817 | |||
809 |
|
||||
810 | if self.noMoreFiles: |
|
818 | if self.noMoreFiles: | |
811 | print 'Process finished' |
|
819 | #print 'Process finished' | |
812 |
return |
|
820 | return 0 | |
813 |
|
821 | |||
814 | return 1 |
|
822 | return 1 | |
815 |
|
823 | |||
816 |
def __ |
|
824 | def __getHeader(self): | |
817 | self.m_BasicHeader = self.m_Voltage.m_BasicHeader.copy() |
|
825 | self.m_BasicHeader = self.m_Voltage.m_BasicHeader.copy() | |
818 | self.m_SystemHeader = self.m_Voltage.m_SystemHeader.copy() |
|
826 | self.m_SystemHeader = self.m_Voltage.m_SystemHeader.copy() | |
819 | self.m_RadarControllerHeader = self.m_Voltage.m_RadarControllerHeader.copy() |
|
827 | self.m_RadarControllerHeader = self.m_Voltage.m_RadarControllerHeader.copy() | |
@@ -899,7 +907,7 class VoltageWriter(DataWriter): | |||||
899 | print "file access denied:%s"%fileTable |
|
907 | print "file access denied:%s"%fileTable | |
900 | sys.exit(0) |
|
908 | sys.exit(0) | |
901 |
|
909 | |||
902 | def setup(self,path,set=0,format='rawdata'): |
|
910 | def setup(self, path, set=0, format='rawdata'): | |
903 |
|
911 | |||
904 |
|
912 | |||
905 | if format == 'hdf5': |
|
913 | if format == 'hdf5': | |
@@ -914,16 +922,24 class VoltageWriter(DataWriter): | |||||
914 |
|
922 | |||
915 | #call to config_headers |
|
923 | #call to config_headers | |
916 | #self.__setHeaderByFile() |
|
924 | #self.__setHeaderByFile() | |
917 | self.__setHeaderByObj() |
|
925 | ||
918 | self.__path = path |
|
926 | self.__path = path | |
919 | self.__setFile = set - 1 |
|
927 | self.__setFile = set - 1 | |
920 | self.__ext = ext |
|
928 | self.__ext = ext | |
921 | self.__format = format |
|
929 | self.__format = format | |
922 | self.__buffer = numpy.array([],self.__dataType) |
|
|||
923 |
|
930 | |||
924 |
|
|
931 | self.__getHeader() | |
925 | return 0 |
|
932 | self.__shapeBuffer = (self.m_ProcessingHeader.profilesPerBlock, | |
|
933 | self.m_ProcessingHeader.numHeights, | |||
|
934 | self.m_SystemHeader.numChannels ) | |||
|
935 | ||||
|
936 | self.__buffer = numpy.zeros(self.__shapeBuffer, numpy.dtype('complex')) | |||
926 |
|
937 | |||
|
938 | # if not(self.__setNextFile()): | |||
|
939 | # return 0 | |||
|
940 | return 1 | |||
|
941 | ||||
|
942 | ||||
927 |
|
943 | |||
928 |
|
944 | |||
929 | No newline at end of file |
|
945 |
@@ -8,7 +8,7 import os, sys | |||||
8 | import time, datetime |
|
8 | import time, datetime | |
9 |
|
9 | |||
10 | from Model.Voltage import Voltage |
|
10 | from Model.Voltage import Voltage | |
11 |
from IO.VoltageIO import |
|
11 | from IO.VoltageIO import * | |
12 | from Graphics.VoltagePlot import Osciloscope |
|
12 | from Graphics.VoltagePlot import Osciloscope | |
13 |
|
13 | |||
14 | class TestSChain(): |
|
14 | class TestSChain(): | |
@@ -24,7 +24,11 class TestSChain(): | |||||
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 = '/Users/danielangelsuarezmunoz/Documents/Projects/testWR' |
|
26 | self.path = '/Users/danielangelsuarezmunoz/Documents/Projects/testWR' | |
|
27 | self.path = '/home/roj-idl71/Data/RAWDATA/IMAGING' | |||
|
28 | self.path = '/home/roj-idl71/tmp/data' | |||
27 | #self.path = '/remote/puma/2004_11/DVD/' |
|
29 | #self.path = '/remote/puma/2004_11/DVD/' | |
|
30 | ||||
|
31 | self.ppath = "/home/roj-idl71/tmp/data" | |||
28 | self.startDateTime = datetime.datetime(2004,5,1,17,49,0) |
|
32 | self.startDateTime = datetime.datetime(2004,5,1,17,49,0) | |
29 | self.endDateTime = datetime.datetime(2012,5,1,18,10,0) |
|
33 | self.endDateTime = datetime.datetime(2012,5,1,18,10,0) | |
30 |
|
34 | |||
@@ -33,26 +37,37 class TestSChain(): | |||||
33 | self.voltageObj = Voltage() |
|
37 | self.voltageObj = Voltage() | |
34 | self.readerObj = VoltageReader(self.voltageObj) |
|
38 | self.readerObj = VoltageReader(self.voltageObj) | |
35 | self.plotObj = Osciloscope(self.voltageObj) |
|
39 | self.plotObj = Osciloscope(self.voltageObj) | |
|
40 | self.writerObj = VoltageWriter(self.voltageObj) | |||
36 |
|
41 | |||
37 | self.readerObj.setup(self.path, self.startDateTime, self.endDateTime) |
|
42 | if not(self.readerObj.setup(self.path, self.startDateTime, self.endDateTime)): | |
|
43 | sys.exit(0) | |||
|
44 | ||||
|
45 | if not(self.writerObj.setup(self.ppath)): | |||
|
46 | sys.exit(0) | |||
38 |
|
47 | |||
39 | def testSChain(self): |
|
48 | def testSChain(self): | |
40 |
|
49 | |||
|
50 | ini = time.time() | |||
41 | while(True): |
|
51 | while(True): | |
42 |
|
||||
43 | self.readerObj.getData() |
|
52 | self.readerObj.getData() | |
44 | self.plotObj.plotData(idProfile = 1, type='iq', ymin = -100, ymax = 100) |
|
53 | self.plotObj.plotData(idProfile = 1, type='iq', ymin = -100, ymax = 100) | |
45 |
|
54 | |||
46 | if self.readerObj.flagResetProcessing: |
|
55 | # self.writerObj.putData() | |
47 |
|
|
56 | ||
48 |
|
||||
49 | # if self.readerObj.flagIsNewBlock: |
|
|||
50 | # print 'Block No %04d, Time: %s'%(self.readerObj.nReadBlocks, |
|
|||
51 | # datetime.datetime.fromtimestamp(self.readerObj.m_BasicHeader.utc)) |
|
|||
52 |
|
||||
53 | if self.readerObj.noMoreFiles: |
|
57 | if self.readerObj.noMoreFiles: | |
54 | break |
|
58 | break | |
55 |
|
|
59 | ||
|
60 | if self.readerObj.flagIsNewBlock: | |||
|
61 | print 'Block No %04d, Time: %s' %(self.readerObj.nReadBlocks, | |||
|
62 | datetime.datetime.fromtimestamp(self.readerObj.m_BasicHeader.utc),) | |||
|
63 | fin = time.time() | |||
|
64 | print 'Tiempo de un bloque leido y escrito: [%6.5f]' %(fin - ini) | |||
|
65 | ini = time.time() | |||
|
66 | ||||
|
67 | ||||
|
68 | ||||
|
69 | ||||
|
70 | ||||
56 | self.plotObj.end() |
|
71 | self.plotObj.end() | |
57 |
|
72 | |||
58 | if __name__ == '__main__': |
|
73 | if __name__ == '__main__': |
General Comments 0
You need to be logged in to leave comments.
Login now