@@ -180,7 +180,7 class VoltageReader(DataReader): | |||
|
180 | 180 | |
|
181 | 181 | self.idProfile = 0 |
|
182 | 182 | |
|
183 |
self.__buffer = |
|
|
183 | self.__buffer = None | |
|
184 | 184 | |
|
185 | 185 | self.__buffer_id = 9999 |
|
186 | 186 | |
@@ -542,6 +542,8 class VoltageReader(DataReader): | |||
|
542 | 542 | self.filenameList = filenameList |
|
543 | 543 | self.online = online |
|
544 | 544 | |
|
545 | return 1 | |
|
546 | ||
|
545 | 547 | def readNextBlock(self): |
|
546 | 548 | """ |
|
547 | 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 | 586 | self.flagResetProcessing = 0 |
|
585 | 587 | self.flagIsNewBlock = 0 |
|
586 | 588 | |
|
587 |
if self.__hasNotDataInBuffer(): |
|
|
588 |
self.readNextBlock() |
|
|
589 | ||
|
589 | if self.__hasNotDataInBuffer(): | |
|
590 | self.readNextBlock() | |
|
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 | 600 | if self.noMoreFiles == 1: |
|
591 | 601 | print 'Process finished' |
|
592 | 602 | return None |
|
593 | 603 | |
|
594 | 604 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) |
|
595 | data = self.__buffer[self.__buffer_id,:,:] | |
|
596 | 605 | |
|
597 | 606 | time = self.m_BasicHeader.utc + self.__buffer_id*self.__ippSeconds |
|
598 | ||
|
599 | self.m_Voltage.m_BasicHeader = self.m_BasicHeader.copy() | |
|
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 | |
|
607 | self.m_Voltage.m_BasicHeader.utc = time | |
|
608 | self.m_Voltage.data = self.__buffer[self.__buffer_id,:,:] | |
|
605 | 609 | self.m_Voltage.flagNoData = False |
|
606 | 610 | self.m_Voltage.flagResetProcessing = self.flagResetProcessing |
|
607 | self.m_Voltage.heights = self.__heights | |
|
611 | ||
|
608 | 612 | self.m_Voltage.idProfile = self.idProfile |
|
609 | self.m_Voltage.dataType = self.__dataType | |
|
613 | ||
|
610 | 614 | |
|
611 | 615 | self.__buffer_id += 1 |
|
612 | 616 | self.idProfile += 1 |
|
613 | 617 | |
|
614 | 618 | #call setData - to Data Object |
|
615 | 619 | |
|
616 |
return |
|
|
620 | return 1 | |
|
617 | 621 | |
|
618 | 622 | class VoltageWriter(DataWriter): |
|
619 | 623 | __configHeaderFile = 'wrSetHeadet.txt' |
@@ -637,7 +641,7 class VoltageWriter(DataWriter): | |||
|
637 | 641 | |
|
638 | 642 | self.__flagIsNewFile = 1 |
|
639 | 643 | |
|
640 |
self.__buffer = |
|
|
644 | self.__buffer = None | |
|
641 | 645 | |
|
642 | 646 | self.__buffer_id = 0 |
|
643 | 647 | |
@@ -645,6 +649,8 class VoltageWriter(DataWriter): | |||
|
645 | 649 | |
|
646 | 650 | self.__ext = None |
|
647 | 651 | |
|
652 | self.__shapeBuffer = None | |
|
653 | ||
|
648 | 654 | self.nWriteBlocks = 0 |
|
649 | 655 | |
|
650 | 656 | self.flagIsNewBlock = 0 |
@@ -731,8 +737,9 class VoltageWriter(DataWriter): | |||
|
731 | 737 | return 1 |
|
732 | 738 | |
|
733 | 739 | def __setNewBlock(self): |
|
740 | ||
|
734 | 741 | if self.__fp == None: |
|
735 | return 0 | |
|
742 | self.__setNextFile() | |
|
736 | 743 | |
|
737 | 744 | if self.__flagIsNewFile: |
|
738 | 745 | return 1 |
@@ -747,10 +754,17 class VoltageWriter(DataWriter): | |||
|
747 | 754 | return 1 |
|
748 | 755 | |
|
749 | 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 | 769 | self.__buffer_id = 0 |
|
756 | 770 | |
@@ -779,41 +793,35 class VoltageWriter(DataWriter): | |||
|
779 | 793 | return 0 |
|
780 | 794 | |
|
781 | 795 | def putData(self): |
|
796 | ||
|
782 | 797 | self.flagIsNewBlock = 0 |
|
783 | 798 | |
|
784 | 799 | if self.m_Voltage.flagNoData: |
|
785 |
return |
|
|
800 | return 0 | |
|
786 | 801 | |
|
787 | 802 | if self.m_Voltage.flagResetProcessing: |
|
788 | self.__buffer = numpy.array([],self.__dataType) | |
|
803 | ||
|
804 | self.__buffer.fill(0) | |
|
805 | ||
|
789 | 806 | self.__buffer_id = 0 |
|
790 | 807 | self.__setNextFile() |
|
791 | 808 | |
|
792 | self.__setHeaderByObj() | |
|
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)) | |
|
809 | self.__buffer[self.__buffer_id,:,:] = self.m_Voltage.data | |
|
803 | 810 | |
|
804 | 811 | self.__buffer_id += 1 |
|
805 | 812 | |
|
806 | 813 | if self.__hasAllDataInBuffer(): |
|
814 | ||
|
815 | self.__getHeader() | |
|
807 | 816 | self.writeNextBlock() |
|
808 | 817 | |
|
809 | ||
|
810 | 818 | if self.noMoreFiles: |
|
811 | print 'Process finished' | |
|
812 |
return |
|
|
819 | #print 'Process finished' | |
|
820 | return 0 | |
|
813 | 821 | |
|
814 | 822 | return 1 |
|
815 | 823 | |
|
816 |
def __ |
|
|
824 | def __getHeader(self): | |
|
817 | 825 | self.m_BasicHeader = self.m_Voltage.m_BasicHeader.copy() |
|
818 | 826 | self.m_SystemHeader = self.m_Voltage.m_SystemHeader.copy() |
|
819 | 827 | self.m_RadarControllerHeader = self.m_Voltage.m_RadarControllerHeader.copy() |
@@ -899,7 +907,7 class VoltageWriter(DataWriter): | |||
|
899 | 907 | print "file access denied:%s"%fileTable |
|
900 | 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 | 913 | if format == 'hdf5': |
@@ -914,16 +922,24 class VoltageWriter(DataWriter): | |||
|
914 | 922 | |
|
915 | 923 | #call to config_headers |
|
916 | 924 | #self.__setHeaderByFile() |
|
917 | self.__setHeaderByObj() | |
|
925 | ||
|
918 | 926 | self.__path = path |
|
919 | 927 | self.__setFile = set - 1 |
|
920 | 928 | self.__ext = ext |
|
921 | 929 | self.__format = format |
|
922 | self.__buffer = numpy.array([],self.__dataType) | |
|
923 | 930 | |
|
924 |
|
|
|
925 | return 0 | |
|
931 | self.__getHeader() | |
|
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 | 945 | No newline at end of file |
@@ -8,7 +8,7 import os, sys | |||
|
8 | 8 | import time, datetime |
|
9 | 9 | |
|
10 | 10 | from Model.Voltage import Voltage |
|
11 |
from IO.VoltageIO import |
|
|
11 | from IO.VoltageIO import * | |
|
12 | 12 | from Graphics.VoltagePlot import Osciloscope |
|
13 | 13 | |
|
14 | 14 | class TestSChain(): |
@@ -24,7 +24,11 class TestSChain(): | |||
|
24 | 24 | |
|
25 | 25 | self.path = '/home/roj-idl71/Data/RAWDATA/DP_Faraday/' |
|
26 | 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 | 29 | #self.path = '/remote/puma/2004_11/DVD/' |
|
30 | ||
|
31 | self.ppath = "/home/roj-idl71/tmp/data" | |
|
28 | 32 | self.startDateTime = datetime.datetime(2004,5,1,17,49,0) |
|
29 | 33 | self.endDateTime = datetime.datetime(2012,5,1,18,10,0) |
|
30 | 34 | |
@@ -33,26 +37,37 class TestSChain(): | |||
|
33 | 37 | self.voltageObj = Voltage() |
|
34 | 38 | self.readerObj = VoltageReader(self.voltageObj) |
|
35 | 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 | 48 | def testSChain(self): |
|
40 | 49 | |
|
50 | ini = time.time() | |
|
41 | 51 | while(True): |
|
42 | ||
|
43 | 52 | self.readerObj.getData() |
|
44 | 53 | self.plotObj.plotData(idProfile = 1, type='iq', ymin = -100, ymax = 100) |
|
45 | 54 | |
|
46 | if self.readerObj.flagResetProcessing: | |
|
47 |
|
|
|
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 | ||
|
55 | # self.writerObj.putData() | |
|
56 | ||
|
53 | 57 | if self.readerObj.noMoreFiles: |
|
54 | 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 | 71 | self.plotObj.end() |
|
57 | 72 | |
|
58 | 73 | if __name__ == '__main__': |
General Comments 0
You need to be logged in to leave comments.
Login now