From 0f9ae5c7078bfa63503248c7ac3709cdd1eca62d Mon Sep 17 00:00:00 2001 From: esea_info Date: Tue, 11 Apr 2023 18:02:01 +0800 Subject: [PATCH] bug fix --- __pycache__/mypanel.cpython-38.pyc | Bin 4506 -> 4584 bytes __pycache__/viper.cpython-38.pyc | Bin 10858 -> 10973 bytes __pycache__/yiwinframe.cpython-38.pyc | Bin 17204 -> 17304 bytes config.yml | 2 +- data/output/A04E.csv | 82 +++++++++++++++++++++++- mypanel.py | 10 ++- viper.py | 86 +++++++++----------------- yiwinframe.py | 7 ++- 8 files changed, 123 insertions(+), 64 deletions(-) diff --git a/__pycache__/mypanel.cpython-38.pyc b/__pycache__/mypanel.cpython-38.pyc index 392702926adcfe2418ccf92044c77a29f3aa372d..fda19c49cba6233950d5dc48c220f53a1b96eced 100644 GIT binary patch delta 1046 zcmZ{i&rcIU6vubEyQSU!04yk4#1ek42K<4DAfQlwNJ0QDh@#1|bcb5m?ly0?Acn-d zCzCmt7!PptV2t79%@|@#yn330SN#{{uy)zpq&9U5{{2k1Q_>Glj`==yDyCm_ zolMrH>+8jQkve{+)ZKGl*X2h|ng1xDSrmkm0&{u;J5b(6d9p-JuL6{9s%N!RBGMw3 z*T7z@jiIo@4%BR_U3hrZqrTx6eVghb=w&CuI?1w$@Lc+WhzeIA(opo!HrJ>fs9uFT z$rSq>p8s35{aZC!(@AC+tts>bxs)Im^ohK12{DKj6zE0!B4PkB#J<R4PUK+%E@q2!7M=9aDo3ApMPOVof-OmP)4#+std31V5ib!a1Qe<6PI(1vfytsfwA|y^u6OFK(cJ1h&(^m5~H9;rh zI$mlmWR-ms9ARIzmJPf}=to>eTtN&A@Q_pHHI8KhnAsZ=0T%r?zbv z(1?Km=g>NeI3{pJEDsSON-W;7UykjO2=*(kJj;$JnyVWbvilO!whr3ZPFU~J; zWp;9E5zdIcE>{ODn^55D#+LX%(0p)=-~?F4Wlw7#wEP^UiFqQT?(DB;D;%)Sn(A7~ z6E;-Wx0FLi(4Or10QYfw3-PZB;aN&zdH52-CNJLgv1gSs-K@mk=7f}*}lBR6Ob)nmmzeR+QXgnAb zkCSNP$&F`C3@0wei{8D?!Ni-!3pcOM-}RMfllf-m|G#|yWBz{Wc;1m*NF<^G@qLaA znePw0N#z+TEvq$rZ^S;h*reAYL$ixgQ?Xy#wm)*seRsEdrVm!V3Zuci1}&@Xgh5aA3) zP@o6T0|-M1!)!R5Cll;e_+7~luB=;*S5hrnp|;7D3RF$#5KOL^U~FnZUw{X_YK`h} z9wkN*E+QQK4b9@j!ziUYHl1Q_WP~iSSCMPflRZkb=#E76CXtF@J`_M2W@oyKiH4 z(mN-tVh##ox z6^-&*1)L4r9CIvZ10ctGQysBR;V;SViVMeBDK#UG?DR6~ghkxRUjr=+V6fZiJbA<(rw13N(cq^iyBp2@MbOp(m8*O?Kr F_yf7cDND6zP7T8JL8$;ytBUep|*1Mxfie3FI+pZ zqNSRbn8BI&-O3nk`KA7G{0@LT{+`(6dy*WYh`Hbfe90u;` zeB-v~$!Y{fM|N43u*>C!GCDGBmlmPn&55zHsfu|@5I1pFNZ7^cLw2^3D;LV*ICgYB z0rC3LE*pG&ikQWn_BXamNsxcXFHLaM88n=%mGLiy#zBfB4S+FdRttIu{&4E z-D8hUl$wJQZ*syA;g~=+vyAPENl)0^0VKf`c_i?GN}`KFw<|>rWC(#F8**CK zNRs$#&$m9_DhjS{UL|uc{@i=oc!!Vy!O(0iVz!u6{pSC;M*LcZl5vLj4jc^!T*!qO|TycRh#3kd| zP2D>;>VCRIs%mr^x~k~`U8Osr$MhiEMp*Z&vWU>8hMLV5a}%X()@?+rpknsG2beK` Rf+|KfKM**q(V%r2^53RWGu!|G delta 1152 zcmZ{j-)|d55XW!Mzs_fSb20we{IHXnBu-jGQXxPH+LRxaN=jQoct9ZIO)1OfRqU|ErGiHC=^L~yPhhx#Uz!6p6uEDs%e>R8{u_c(oo3Y_=)o+*P(>ZEs`8cnnVMn}Q zm3wh#{NAA{vV2Q_B|}iW0>Yq!8zLY;15M>#AH@FlsseB|UT#Y$n@f0J9;Ev^J3y*fJyu%IpCcqgPg@e;4aTel7BS^ zxAX#dabL$zo+UE0VXkux7V(?Tbn;d9y@${WN~<)tVCC&XJ;~tW$RMN2IKbf5WRB4CP0f``g|gXl9k!0iH`wGit%c&0 zl|MQw&)`bx>A)&`k28jx@dPuCS*f$koEs=z{%K2Pv1;$c5Ygp;g~ujyp_qt{P#w! zVyJh!_W__9CvaEqmLOE4&lcw`nWISDnNFf;58+C0!|UvC#@X7NG{F=2;@0>3KH&K- zGCpK{#Bfp^BXvpLxV0yopz~xoh`Te3fsfhiGUJLf@-E5entx_?z}pNC9N1aza=GMt4BnmOY$YeQad6JVyusZOP8n0#?uQb>M_*9Wj1I%l zbm12oeMuoifVI&se3~jF6x7o4`BI@+&gY$t$aOrH?SX4}E_(-#LDmB0<+g1`k$HBiXbb==%rVw=$tz=5dwQ|mwoQJ=XcKcch33!Zl9!= zPEqF`ha-c)&#|sroz!nR@0QXOdr&&-`vFdaaFQex-ccGAOp0d-vsF~NX_9h>DkN!K zFa++@?MbSNY)8fVgs8%k6yu^Hs*;yL)Iw}JZhj>$>6ttWqC}OP5WEBwv-QlV3p7P@ zuUzh#-<{_f68LfqP{w+=SCtLvG8u*nC{f8SQmnM6XvQ36SIXRepLP$**LEWw0#eSN zNaw&|EfS7Jx+1+QyHhsETFZCZ3Sf~?E6rrQyfslo|JE}lT_i5RU(_Wot5jE@ce9eH zgR}5vbWLgfrs>Ms<7E?=^m;a*(5d!xb7PB-F zECsFpYg=I(8ujt~g{iMH@YFpEQ(vuGG1Q#5t$j`|DJk*$HHKq;gm}!nl?91{CDYfQ z;F=e~5n;qZ#8X5wVjJQB!i{)_$U;0vyg-a28W2H52=NjzfoMd$0;HTuXI~#2vNnmX zDK=VJ=6Vh0UM1Gu8wm%rH|S5X{(4t7mOcijKClst^hGGF@>78|Rn`3O*P-bjuY>j$ z=eqbZT-{uxyhG=EbJ!QaoLV~Uq7iR(F%`a3)>B)+Zq_+jU(NNkA24eg(T4blFfY)4 zv^o)=P?L28B;jW|R}YLWJ5L@22^%}UrI4Me9bJCfIY@Iu+Qjlxh9G4P8>+iuU(^o^ zHu#+O=I+kep{{UCB-W>WhITx(lpSmEFkXLtN$>`W>n`~shy@@fLASDB4I16f`h!Pl s3;Pxvrqk?nsFJp^`=L#AmVFIPD>D$SePQE`M`V{Z-|8D_Z<-N)1N-WOnE(I) delta 1263 zcmdUvT}V@57{}lDd^tb1HmA-_F^edJY_j1rbxtUP2t@k0NT^}FQjHKj9uVpbyQwY( zp9*iH_gr>YSqRm&(YI!rO3<<}0*fx|uID*hMqYW_#(q3|KK|SPKiI@oe*X&h9rt=m z7(Tl7W^rfuu5YT5_ri4J*U`_|v{{Bpj#Q+I)GR&39PV(QpBPrrdhKzTEEYIJDh|&o zwjxVtE>yuTD`C7yms(}gi#nya<+I8%TO8C*``u3o;2u65HLKdH(84GFk;_XJMl7qj zLUiCt|CPfHmMPB!Wrf4sFIg@tZ4G;V8>OiutKe3&k%wR{I;NY)&?H=JI-*A?16XJ} zRA0r(w`3%6hGi9esTP-t;FgNcRCu~KUa8_odWD8QHCsb3=t$@gi0&HIg)R(qq1*Za zcCsgH*amK{@8@@^D~iG_TV(lV0Be2SNV(Fm@jD-AiN^HCd?2z2uVUG zVV3ZQkRr?>mW{r_!Ttf^24}vd_B@otqrn9%dyVtw2Kv)2<~!;yg3}W81C|dl(cuOx z827+Xyq8RG|GTWSyg0^O+ list: # 读取配置文件 - print( "==============" ) - print( self.raw_wavelength ) + # print( "==============" ) + # print( self.raw_wavelength ) for i in range( len(self.raw_wavelength)): print(f"i {i} {self.raw_wavelength[i]}") if self.raw_wavelength[i] datalen : {len(res_data)} ",__name__, "deal_one_measure_time_data") for i in range(len(res_time)): data = self.convert_str_2_float_list( res_data[i][0][self.begin:self.end] ) + # 浊度校正 data = self.correction_turbidity( np.array(data) ) - # 纯水校正 - - data = self.correction_pure_water( data ) - + # 取对数,光程归一 ?? 纯水校正,是吸光度校正还是系数校正 - data = ( data * (1000 * math.log(10,math.e)))/self.cfg['device']['UIPath'] - data = data.tolist() - # print(data) + # data = ( data * (1000 * math.log(10,math.e)))/self.cfg['device']['UIPath'] + data = data * (1000 * math.log(10,math.e) / self.cfg['device']['UIPath']) + # data = data.tolist() + # 纯水系数校正 + data = self.correction_pure_water( data ) + + data = data.tolist() self.mydir.setContent( data , TOKEN, res_time[i] ) self.mydir.writeContent() self.measure_time = res_time[i] @@ -219,13 +221,14 @@ class Viper(object): for i in range(count-11,count,1): tmp = tmp + data[i] tmp = tmp/11 + # print(f"tmp ....{tmp}") return data - tmp pass if self.cfg['algorithm']['A720'] == 1: count = data.shape[0] tmp = data[count] - (self.output_wavelength[count]-720) * (data[count] -data[count-1]) \ / (self.output_wavelength[count]-self.output_wavelength[count-1]) - print(f"tmp .... {tmp}") + # print(f"tmp .... {tmp}") return data-tmp pass if self.cfg['algorithm']['A720'] == 2: @@ -234,20 +237,18 @@ class Viper(object): pass def correction_pure_water(self, data:np.ndarray ): - '''浊度校正 + '''纯水校正 0 : 不变 - 1 : 减去纯水 - ''' + 1 : 加纯水衰减系数 + ''' if self.cfg['algorithm']['PureWater'] == 0: return data pass if self.cfg['algorithm']['PureWater'] == 1: - return data - self.purewater_after_interp + return data + self.purewater_after_interp pass return data pass - - def __get_purewater_wl_and_data(self ): log.info(f" == ",__name__,'__get_purewater_wl_and_data') @@ -321,6 +322,14 @@ class Viper(object): pass data = self.convert_buf_2_float(self.res) data = data[self.begin:self.end] + # 浊度校正 + data = self.correction_turbidity( np.array(data) ) + # 取对数,光程归一 ?? 纯水校正,是吸光度校正还是系数校正 + data = data * (1000 * math.log(10,math.e) / self.cfg['device']['UIPath']) + # 纯水系数校正 + data = self.correction_pure_water( data ) + data = data.tolist() + # 浊度 纯水校正 func(data) def device_sn(self, func)-> None: @@ -380,51 +389,12 @@ class Viper(object): pass - - - if __name__ == '__main__': data = np.array([3,4,5,6]) print(data.shape[0]) print(data[3]) print(data-1) + + # m = 1000 * math.log(10,math.e) / 150 + # print(m) - - - - - - - # if self.syscfg['retrieve']['enable'] == 0: - # self.mydir.setHeader(self.raw_wavelength,TOKEN,self.ui_sn) - # if self.mydir.checkHeader()==0: - # self.mydir.writeHeader() - # if self.mydir.checkHeader()==-1: - # self.popDialog(" 文件头不一致, 请备份到其他目录,并在该目录下删除") - # raise MyException(" 文件头不一致, 请备份到其他目录,并在该目录下删除") - # res_time,res_data = ReadCal.read_columns_sets_by_mark( fl, FILE_MARK, 1 ) - # for i in range( len(res_time) ): - # self.__deal_one_measure_time_data(res_time[i], res_data[i]) - # pass - # pass - # # 需要插值处理波长 - # if self.syscfg['retrieve']['enable'] == 1: - # self.mydir.setHeader(self.new_wavelength.tolist(),TOKEN,self.ui_sn) - # if self.mydir.checkHeader()==0: - # self.mydir.writeHeader() - # if self.mydir.checkHeader()==-1: - # self.popDialog(" 文件头不一致, 请备份到其他目录,并在该目录下删除") - # raise MyException(" 文件头不一致, 请备份到其他目录,并在该目录下删除") - - # # res_data 不用带回调的函数callback 会导致多组数据拼接?? - # res_time,res_data = ReadCal.read_columns_sets_by_mark( fl, FILE_MARK, 1 ) - - # log.warning(f" ==== {len(res_time)}" ) - # log.warning(res_time) - # log.warning(f" ==== {len(res_data[0])}" ) - # log.warning(f" ==== { res_data[0] }" ) - - # for i in range( len(res_time) ): - # self.__deal_one_measure_time_data(res_time[i], res_data[0][i]) - # pass - # pass \ No newline at end of file diff --git a/yiwinframe.py b/yiwinframe.py index 1482487..b118834 100644 --- a/yiwinframe.py +++ b/yiwinframe.py @@ -423,6 +423,8 @@ class YiwinFrame( wx.Frame ): pass def OnPlotOne(self,e): + self.__OnDeviceStop() + self.plotpanel.set_title_x_y( *self.plotpanel.measure_legend ) self.dataplot.set_file_path( self.output_dir.joinpath(self.ui_sn+SAVE_EXT_NAME) ) self.dataplot.set_token(TOKEN) # !! 判断波长,获得波长 @@ -441,9 +443,10 @@ class YiwinFrame( wx.Frame ): def OnPlotSeven(self,e): self.__OnDeviceStop() + self.plotpanel.set_title_x_y( *self.plotpanel.measure_legend ) times = [] lines = [] - log.debug( f'+++ ',__name__, 'OnPlotSeven' ) + log.debug( f'+++ ', __name__, 'OnPlotSeven' ) self.dataplot.set_file_path( self.output_dir.joinpath( self.ui_sn+SAVE_EXT_NAME ) ) self.dataplot.set_token(TOKEN) # !! 判断波长,获得波长 @@ -460,12 +463,14 @@ class YiwinFrame( wx.Frame ): times.append(tm) lines.append( line ) self.plotpanel.axes.clear() + # print(f"times =========={times}") self.plotpanel.plot_multi( times, self.output_wl_ndarray, lines ) self.alterStatus_0( f" plot 7 ") pass def OnPlotRule(self,e): self.__OnDeviceStop() + self.plotpanel.set_title_x_y( *self.plotpanel.measure_legend ) times = [] lines = [] log.debug( f'+++ ',__name__, 'OnPlotSeven' )