From 818333419faced7f615182412f07e22dcb5e28ca Mon Sep 17 00:00:00 2001
From: Yves Gouriou <yves.gouriou@ird.fr>
Date: Fri, 13 Feb 2009 15:39:09 +0000
Subject: [PATCH] correction bug : conserve les pentes et offset de la
 calbiration

---
 TSGQC_amelioration.xls | Bin 24064 -> 24064 bytes
 tsg_util/calibration.m |   2 +-
 tsgqc.m                |  51 +++++++++++++++++++++++++++++++----------
 3 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/TSGQC_amelioration.xls b/TSGQC_amelioration.xls
index 6b2032b91db35c5af046d286a915d0ab94e4baf8..045276dbd9d42b182f7d9d94da79eec656c13d95 100644
GIT binary patch
delta 5018
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
Wws(Cd{m$}d<=FDEtuHPNSpNexB$1B*

delta 4786
zcmZ{nTWnm_6^7TD>zT{(Ts-!8E>4aegGoXi9C9%xiHA0Xk_)6Q6+Bdt0-{aSs6vn+
zDlTVG)wfonIaQ0q3*r$(Rn-+jRboX#l?vhoUh=>Lks=<DKuxPwP#~fIzxLT@=8T;g
zdFJf3_x{$}|5|(RasPtTzu^3NChhz^?4_qiKA$s|Oe6eLx}bfH@O|?H+e?{zIwhRf
znZb9~xksLq({fVI$f9hMo+DD0m+&bWjCwockNpGBkx4i)V;nY$kx^;tEuYo_^uKyM
zdphe>!@m`~;aYJ!o<1yY_r}DLy2vi6f*Jn1_+t1<v3SI(^`z&ET=K6-LtKeQ?UR}e
z*$X$Zg9K_z<PMBK?`;W7Ug;R(@4;?}B^@y(vV?)_?1*PWyDtbuU*Xp!-zkTmm0BKM
zDM%Oax;GOTc$*N~Fl*Q;Oe1g-mGMM!d58>lOplyePHex8Gx;)n$H?)R$cRp6g03o|
zpRptOXEt)Ifo?D!oM*z%i>)BhXBMq<HdwSTG7{`i25!dLz&^Z&@J-JRJ<mOwESB<3
zio!S~pjs2Zhlq@7)X!mbEEWkDz1dzQBz1&DJq)k{bEqbE1N)$w!Xw_&B9o@2J(BJ6
zz@AuOIsB{VhrjWrPK;zDR%)G{y8>cwm~EemCmclC4&SS^TT98VipIn#;q}UF_{Zw<
zt#8i2COJ9u__@<(7Jm&<FYFq!?4;$L-QgG2+589fhtYFK=-2w*q{zXOXCL>Uc=FSy
z&#nHxcDUkrs~`LSN$vVpcA}7fH^!4gWF9VG!}mM*K7h#nfW*`?BA+)zPUS>?1(k1<
z!lQF5-YkY~o)`J}PLZFlzC8C-Hkd0`5SqyIV5RZCAMI4s&ft_fe|XT&N>)B9494d$
z^R2vTOA6uOMHgn9xhYmJpO*>5;a3sbC?1X>eu)H5#ix-YTq)y-6X`pXYGcEd{}zpH
zyH3WsU^}mqFFD4RRa;k`SR0q*$|DI|e#mBn30PaMd`&Kj%tTmFn{i?XG79V1+E`Ab
zHfF??|IvTU!@&mIH@Z0MgKD{QBhZ!fqm{6DMh8+vSGH<^)-j3^wx1<dhpfYPU2T>(
zuC}izP#g@Z0^_WLfst@RjV4c4Lew7ynw9jOJ5~Os+KgJ(2{tRn{Zv<H1H^>^+l^>(
zW-iKb$Y%U@f`swM>ZGeSvl1)UwA#MKCtgvSHsR5gq;2zv?Ye0B$T8e~B5S-KQGmzd
zcW?|fyoOGOx+(F_2`5ueA8sUS@fKkrnZ6WSOtopH(PI8hD<d;_wyi8$WSPDkS`Jzl
z16+7i?sk!1T<zU1{j>b+J$1F0(xKdv-_bR2Vj3HA0Zt4ijqSJ~EY=rN?90gxJYQS6
z2qwz~8y(E~i0PlR%*+roC}L<v?$!x(kpc8>3^34440TdD^yP6v63>bn#?Q+DpB=&%
zF)}0jh4n=`PmlvKJuA6DR?uZ)rjWg%n1`V`Ou8r5fuZad7AT>)1eAx;cOzz9Q?*4d
zL5HSXI&`(?2p5t^Dq1=>$OAkVgYy7)@iyQ*z+GYKQQ$nltZN2a*NWJp!8TQ319oGu
z3+^q#6M`YS%H>uzEpoYuUkCtp6JX{OE)nsxTzS?;TmZPOlM4X1V{ifBj_`mXxPX8=
z=r;iuz~!cs9s}k+SkFcNEtn-V0J9Q0!UKe0W^Mqc<O49*xE@@JxupcRq})!#Ed>f@
zIZ@(L0?e&sB{oW|A&@e_Eu<{1ft7)~RklXBvL=jsoU}4%-^a5_7&XH2rIj$yHSiS2
zHF}9SJ%BgUy}I!LZsVFZU@r>Og|Jg<wR=IH=7!^^*}h|7?ue5$2Ic~`vtf>bxr6IB
z&@n)d;`!PNW9Lm^qGf0m92QNrv3hwSo9eA3Lau1Y3lYAeAzL~xX_GS2S%^*P;Y0{1
zDevSakS6A80$NoljwjWj3g|%wrUF-E9SCJT8yy&O4b1sC<QmxXN~k3isRb$tuMjgS
zi{FkGUjzPr^qBlHt5#+o0-Ft22Y5y2))U~ma<@g?I;D=4uE$DWl%TFPzP>QVW0A)J
zZpAqq2e^y!GXakS+KmGq2iO+elwLSCU>4kML&tgp%xz=_8hZoKt(qUI&;WE1#b-or
z0Lpc67f<OydNb&Rg(`DGnLMz_oB(rc9Oy*M40tr~Al<E7WB1UJGYJLm)yb0pAJW^5
zs7ZkD!`WuQlK|frgC_w#j2?5KGm$pf(Vfu*b49TK4W<d`e%T(kcum;aZ322Eg4Usd
z-5JfHV5j1A@je}-i#Op;T<gXQFD`R=v0$gb4Q#&Zm_!wLk3ofB+5+RQ*rO`60NxYV
zK?~r$`fHb(v;ba;Q`Q3bF3|9k7u&Ukn`4*Wn%scqQkz!~$HfogqoNJ`13;Nb+rU4F
zlg+lMhpmWqtOxOJ;P>fv<e_R7z)ju32HY(_K==%hhxc7^@Er{vsgb~RX61+aUnOPf
z0RJO&U0Wf(1N=jXzK%M#_+fpzaImZ{x(OFuxcHv_AfbmY^cn1vE<70B*8-f<(-=C7
z3T0I?@=X{#Xl;&LmvQtg;Ziu0nnUg$MOY{B_mDgizaPMpv7S(y>E(z=F_yL}j%)tE
z;e(pTZ%5W&{DX2PGFlsh;lM#K9AR3Qacv*Ozy^Q^QgwMN$BVnCQ_aUTPQP>oUigc%
zf_Fau34r|B$5&4NiNA2?-Ua7ucyjM^SqB61;ipR{!+m?_oM%^0Exqi7ug>?+FJCG2
kA3OEN<=?*Rq*wp7T&aY|Z*l)}_{)0gy*;a6{Uqo79~e$$r2qf`

diff --git a/tsg_util/calibration.m b/tsg_util/calibration.m
index ffbe13d..283d544 100644
--- a/tsg_util/calibration.m
+++ b/tsg_util/calibration.m
@@ -28,7 +28,7 @@ for i = 1:3
 
   if ~isempty( tsg.(PARA(i,:)) )
 
-    para1 = [PARA(i,:) '_LINCOEF'];
+    para1 = [PARA(i,:) '_LINCOEF_NEW'];
     para2 = [PARA(i,:) '_CAL'];
     
     % If the Slope = 1 and the offset = 0 : No calibration
diff --git a/tsgqc.m b/tsgqc.m
index aee96d8..eacf18a 100644
--- a/tsgqc.m
+++ b/tsgqc.m
@@ -1518,6 +1518,19 @@ hrbInterpCancel = uicontrol( ...
     set( hetCalSSJTOffset, 'String', num2str(tsg.SSJT_LINCOEF(2)));
     set( hetCalSSTPSlope,  'String', num2str(tsg.SSTP_LINCOEF(1)));
     set( hetCalSSTPOffset, 'String', num2str(tsg.SSTP_LINCOEF(2)));
+    
+    % Intermediate variables
+    % ----------------------
+    tsg.CNDC_LINCOEF_NEW(1) = str2num(get( hetCalCNDCSlope,  'String'));
+    tsg.CNDC_LINCOEF_NEW(2) = str2num(get( hetCalCNDCOffset, 'String'));
+    tsg.SSJT_LINCOEF_NEW(1) = str2num(get( hetCalSSJTSlope,  'String'));
+    tsg.SSJT_LINCOEF_NEW(2) = str2num(get( hetCalSSJTOffset, 'String'));
+    tsg.SSTP_LINCOEF_NEW(1) = str2num(get( hetCalSSTPSlope,  'String'));
+    tsg.SSTP_LINCOEF_NEW(2) = str2num(get( hetCalSSTPOffset, 'String'));
+
+    % Save tsg application data
+    % --------------------------
+    setappdata( hMainFig, 'tsg_data', tsg );
 
   end
 
@@ -1551,12 +1564,16 @@ hrbInterpCancel = uicontrol( ...
 
     % Save the calibration coefficient
     % --------------------------------
-    tsg.CNDC_LINCOEF(1) = str2num(get( hetCalCNDCSlope,  'String'));
-    tsg.CNDC_LINCOEF(2) = str2num(get( hetCalCNDCOffset, 'String'));
-    tsg.SSJT_LINCOEF(1) = str2num(get( hetCalSSJTSlope,  'String'));
-    tsg.SSJT_LINCOEF(2) = str2num(get( hetCalSSJTOffset, 'String'));
-    tsg.SSTP_LINCOEF(1) = str2num(get( hetCalSSTPSlope,  'String'));
-    tsg.SSTP_LINCOEF(2) = str2num(get( hetCalSSTPOffset, 'String'));
+    tsg.CNDC_LINCOEF(1) = tsg.CNDC_LINCOEF_NEW(1);
+    tsg.CNDC_LINCOEF(2) = tsg.CNDC_LINCOEF_NEW(2);
+    tsg.SSJT_LINCOEF(1) = tsg.SSJT_LINCOEF_NEW(1);
+    tsg.SSJT_LINCOEF(2) = tsg.SSJT_LINCOEF_NEW(2);
+    tsg.SSTP_LINCOEF(1) = tsg.SSTP_LINCOEF_NEW(1);
+    tsg.SSTP_LINCOEF(2) = tsg.SSTP_LINCOEF_NEW(2);
+    
+    tsg.CNDC_LINCOEF_NEW = [];
+    tsg.SSJT_LINCOEF_NEW = [];
+    tsg.SSTP_LINCOEF_NEW = [];
 
     % Save tsg application data
     % --------------------------
@@ -1568,6 +1585,7 @@ hrbInterpCancel = uicontrol( ...
     plot_Validation( hMainFig, hPlotAxes, 2, tsg.plot.parameter{2} );
     plot_Validation( hMainFig, hPlotAxes, 3, tsg.plot.parameter{3} );
 
+
   end
 
 %% CalibrateCallback .......................................... Calibration
@@ -1581,12 +1599,12 @@ hrbInterpCancel = uicontrol( ...
     % Get the calibration coefficients.
     % They will be used in the function calibration
     % ---------------------------------------------
-    tsg.CNDC_LINCOEF(1) = str2num(get( hetCalCNDCSlope,  'String'));
-    tsg.CNDC_LINCOEF(2) = str2num(get( hetCalCNDCOffset, 'String'));
-    tsg.SSJT_LINCOEF(1) = str2num(get( hetCalSSJTSlope,  'String'));
-    tsg.SSJT_LINCOEF(2) = str2num(get( hetCalSSJTOffset, 'String'));
-    tsg.SSTP_LINCOEF(1) = str2num(get( hetCalSSTPSlope,  'String'));
-    tsg.SSTP_LINCOEF(2) = str2num(get( hetCalSSTPOffset, 'String'));
+    tsg.CNDC_LINCOEF_NEW(1) = str2num(get( hetCalCNDCSlope,  'String'));
+    tsg.CNDC_LINCOEF_NEW(2) = str2num(get( hetCalCNDCOffset, 'String'));
+    tsg.SSJT_LINCOEF_NEW(1) = str2num(get( hetCalSSJTSlope,  'String'));
+    tsg.SSJT_LINCOEF_NEW(2) = str2num(get( hetCalSSJTOffset, 'String'));
+    tsg.SSTP_LINCOEF_NEW(1) = str2num(get( hetCalSSTPSlope,  'String'));
+    tsg.SSTP_LINCOEF_NEW(2) = str2num(get( hetCalSSTPOffset, 'String'));
 
     % Save tsg application data
     % --------------------------
@@ -1634,6 +1652,15 @@ hrbInterpCancel = uicontrol( ...
     % Update the Adjusted variables
     % -----------------------------
     % updateAdjustedVariable( hMainFig );
+    
+    % Write the Cal Coef in the Editable uicontrol
+    % --------------------------------------------
+    set( hetCalCNDCSlope,  'String', num2str(tsg.CNDC_LINCOEF(1)));
+    set( hetCalCNDCOffset, 'String', num2str(tsg.CNDC_LINCOEF(2)));
+    set( hetCalSSJTSlope,  'String', num2str(tsg.SSJT_LINCOEF(1)));
+    set( hetCalSSJTOffset, 'String', num2str(tsg.SSJT_LINCOEF(2)));
+    set( hetCalSSTPSlope,  'String', num2str(tsg.SSTP_LINCOEF(1)));
+    set( hetCalSSTPOffset, 'String', num2str(tsg.SSTP_LINCOEF(2)));
 
     % Refresh plot #1
     % ---------------
-- 
GitLab