@@ -0,0 +1,163 | |||||
|
1 | from schainpy.model.data.jrodata import * | |||
|
2 | from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation | |||
|
3 | from schainpy.model.io.jroIO_base import * | |||
|
4 | ||||
|
5 | import scipy.io as sio | |||
|
6 | import pprint | |||
|
7 | import numpy as np | |||
|
8 | from os import listdir | |||
|
9 | from os.path import isfile, join | |||
|
10 | import datetime | |||
|
11 | import cmath | |||
|
12 | ||||
|
13 | class matoffReader(ProcessingUnit): | |||
|
14 | ||||
|
15 | index=None | |||
|
16 | list=None | |||
|
17 | firsttime=True | |||
|
18 | utccounter=None | |||
|
19 | utcfiletime=None | |||
|
20 | utcmatcounter=0 | |||
|
21 | utcfirst=None | |||
|
22 | utclist=None | |||
|
23 | ||||
|
24 | def __init__(self): | |||
|
25 | self.dataOut = Spectra() | |||
|
26 | return | |||
|
27 | ||||
|
28 | ||||
|
29 | def run(self,path=None,startDate=None, endDate=None,startTime=datetime.time(0,0,0), | |||
|
30 | endTime=datetime.time(23,59,59),walk=True,timezone='ut', | |||
|
31 | all=0,online=False,ext=None,**kwargs): | |||
|
32 | ||||
|
33 | self.path=path | |||
|
34 | self.ext=ext | |||
|
35 | self.startDate=startDate | |||
|
36 | self.endDate=endDate | |||
|
37 | self.startTime=startTime | |||
|
38 | self.endTime=endTime | |||
|
39 | ||||
|
40 | ||||
|
41 | startsearch1=datetime.datetime.combine(startDate,startTime) | |||
|
42 | startsearch2=(startsearch1-datetime.datetime(1970,1,1)).total_seconds() | |||
|
43 | endsearch1=datetime.datetime.combine(endDate,endTime) | |||
|
44 | endsearch2=(endsearch1-datetime.datetime(1970,1,1)).total_seconds() | |||
|
45 | ||||
|
46 | ||||
|
47 | filelist = [ f for f in listdir(path)] | |||
|
48 | ||||
|
49 | secondlist=[] | |||
|
50 | thirdlist=[] | |||
|
51 | utclist=[] | |||
|
52 | ||||
|
53 | if (self.firsttime==True): | |||
|
54 | ||||
|
55 | self.utclist=utclist | |||
|
56 | ||||
|
57 | for g in range(len(filelist)): | |||
|
58 | ||||
|
59 | strsplit=filelist[g].split('.') | |||
|
60 | timeints=[int(i) for i in strsplit] | |||
|
61 | timelist=datetime.datetime(timeints[0],timeints[1],timeints[2],timeints[3],timeints[4],timeints[5]) | |||
|
62 | utctime=(timelist-datetime.datetime(1970,1,1)).total_seconds() | |||
|
63 | ||||
|
64 | if (utctime<=endsearch2): | |||
|
65 | if (utctime>=startsearch2): | |||
|
66 | secondlist.append(filelist[g]) | |||
|
67 | self.utclist.append(utctime) | |||
|
68 | ||||
|
69 | ||||
|
70 | ||||
|
71 | ||||
|
72 | for k in range(len(secondlist)): | |||
|
73 | ||||
|
74 | path1=os.path.join(self.path,secondlist[k]) | |||
|
75 | ||||
|
76 | filecounter=len([name for name in os.listdir(path1)]) | |||
|
77 | # print "Reading from this dir:" +path1 | |||
|
78 | for r in range(filecounter): | |||
|
79 | matname=str(r)+'.mat' | |||
|
80 | bork=os.path.join(path1,matname) | |||
|
81 | thirdlist.append(os.path.join(path1,matname)) | |||
|
82 | ||||
|
83 | ||||
|
84 | self.utcfirst=utclist[0] | |||
|
85 | self.firsttime=False | |||
|
86 | self.index=0 | |||
|
87 | self.list=thirdlist | |||
|
88 | ||||
|
89 | ||||
|
90 | currentfile=self.list[self.index] | |||
|
91 | print "Reading from this file:" + currentfile | |||
|
92 | ||||
|
93 | #filesplit=currentfile.split("\\") | |||
|
94 | filesplit=currentfile.split("/") | |||
|
95 | newsplit=filesplit[-2] | |||
|
96 | newnewsplit=newsplit.split(".") | |||
|
97 | newnewsplit=[int(i) for i in newnewsplit] | |||
|
98 | gooblist=datetime.datetime(newnewsplit[0],newnewsplit[1],newnewsplit[2],newnewsplit[3],newnewsplit[4],newnewsplit[5]) | |||
|
99 | self.utcfirst=(gooblist-datetime.datetime(1970,1,1)).total_seconds() | |||
|
100 | ||||
|
101 | ||||
|
102 | newsplit=filesplit[-1] | |||
|
103 | newnewsplit=newsplit.split(".") | |||
|
104 | goobnum=newnewsplit[0] | |||
|
105 | goobnum=int(goobnum) | |||
|
106 | ||||
|
107 | self.utcfirst=self.utcfirst+goobnum*2 | |||
|
108 | # if (currentfile[43:]=='0.mat'): | |||
|
109 | # self.utcmatcounter=0 | |||
|
110 | # self.utcfirst=self.utclist[self.index] | |||
|
111 | ||||
|
112 | # if (self.utcmatcounter>60): | |||
|
113 | # self.utcmatcounter=0 | |||
|
114 | ||||
|
115 | # print self.utcmatcounter | |||
|
116 | print self.utcfirst | |||
|
117 | ||||
|
118 | datastuff=sio.loadmat(currentfile) | |||
|
119 | dataphase=datastuff.get('phase') | |||
|
120 | data3=datastuff.get('doppler0') | |||
|
121 | data4=datastuff.get('doppler1') | |||
|
122 | data3= np.array(data3) | |||
|
123 | data4 = np.array(data4) | |||
|
124 | datacoh=datastuff.get('coherence2') | |||
|
125 | ||||
|
126 | datacohphase=datacoh*np.exp(-dataphase*1j) | |||
|
127 | # data31 = np.fliplr(data3) | |||
|
128 | # data41 = np.fliplr(data4) | |||
|
129 | ||||
|
130 | data31 = data3.reshape((1,data3.shape[0],data3.shape[1])) | |||
|
131 | data41 = data4.reshape((1,data4.shape[0],data4.shape[1])) | |||
|
132 | datacohphase1 = datacohphase.reshape((1,datacoh.shape[0],datacoh.shape[1])) | |||
|
133 | ||||
|
134 | datastack = np.vstack((data31,data41)) | |||
|
135 | ||||
|
136 | self.dataOut.pairsList=[(0,1)] | |||
|
137 | self.dataOut.data_cspc=datacohphase1.copy() | |||
|
138 | self.dataOut.data_spc = datastack.copy() | |||
|
139 | self.dataOut.channelList = range(2) | |||
|
140 | self.dataOut.nProfiles = 25 #this! | |||
|
141 | self.dataOut.nIncohInt = 1 | |||
|
142 | self.dataOut.nCohInt = 1 #this! | |||
|
143 | self.dataOut.ippSeconds = 0.004 #this! | |||
|
144 | self.dataOut.nFFTPoints = 25 | |||
|
145 | self.dataOut.utctime = self.utcfirst | |||
|
146 | self.dataOut.heightList = np.array(datastuff.get('hts')) | |||
|
147 | ||||
|
148 | self.dataOut.flagNoData = False | |||
|
149 | ||||
|
150 | ||||
|
151 | ||||
|
152 | # self.utcmatcounter=2 | |||
|
153 | # self.utcfirst+=self.utcmatcounter | |||
|
154 | self.index+=1 | |||
|
155 | ||||
|
156 | if (self.index>len(self.list)): | |||
|
157 | return 0 | |||
|
158 | ||||
|
159 | ||||
|
160 | ||||
|
161 | ||||
|
162 | return 1 | |||
|
163 | No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now