Changeset 16
- Timestamp:
- 03/22/11 10:35:04 (13 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 47 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data_out/plot_results.m
r15 r16 1 f=netcdf('exp_T.nc'); 2 3 addpath('../scripts/matlab_toolbox'); 1 4 sparam=cell(0,5); 2 5 sparam(end+1,:)={'t',[12:1:24],[0:2:24],[-1:0.2:1],[-1:0.2:1]}; … … 4 7 sparam(end+1,:)={'u',[-0.2:0.02:0.2],[-0.2:0.015:0.2],[-0.14:0.02:0.14],[-0.14:0.02:0.14]}; 5 8 sparam(end+1,:)={'v',[-0.2:0.02:0.2],[-0.2:0.015:0.2],[-0.14:0.02:0.14],[-0.14:0.02:0.14]}; 6 f=netcdf('exp_T.nc');9 sparam(end+1,:)={'ssh',[-0.8:0.05:0.2],[-0.2:0.015:0.2],[-0.14:0.02:0.14],[-0.14:0.02:0.14]}; 7 10 8 11 suff=cell(0,2); … … 13 16 suff(end+1,:)={'a_c_true','parametre vrai (TP)'}; 14 17 suff(end+1,:)={'b_obs_48','forward du TP'}; 18 19 suff2=cell(0,2); 20 suff2(end+1,:)={'n_c_init','first guess (FG)'}; 21 suff2(end+1,:)={'b_forw0_48','forward du FG'}; 22 suff2(end+1,:)={'n_c_fin','param control final (AP)'}; 23 suff2(end+1,:)={'b_forwfin_48','forward du PA'}; 24 suff2(end+1,:)={'n_c_true','parametre vrai (TP)'}; 25 suff2(end+1,:)={'b_obs_48','forward du TP'}; 26 15 27 16 28 delta=cell(0,2); … … 38 50 for k=1:length(suff) 39 51 52 if strcmp(sparam{j,1},'ssh') 53 param=f{[sparam{j,1} suff2{k,1}]}(:,:,:); 54 55 param=squeeze(param); 56 paramy{k}=mat2yao(param); 57 paramy{k}=mat2yao(param); 58 paramy{k}(:,1:2)=fliplr(paramy{k}(:,1:2)); 59 paramy{k}=sortrows(paramy{k},[1 2]); 60 figure(j); 61 subplot(3,2,k) 62 % contourf(longi(2:end-1,2:end-1),lati(2:end-1,2:end-1),param(2:end-1,2:end-1),sparam{j,2}); 63 % caxis([sparam{j,2}(1) sparam{j,2}(end)]) 64 %xlabel('longitude','Fontsize',9) 65 %ylabel('latitude','Fontsize',9) 66 plot_nemo_3D(paramy{k},longi,lati,zlev,1,sparam{j,2},1); 67 68 69 title(suff2{k,2}); 70 if (k==1) 71 colorbar 72 end 40 73 41 param=f{[sparam{j,1} suff{k,1}]}(:,:,:,:);42 param=squeeze(param);43 paramy{k}=mat2yao(param);44 paramy{k}(:,1:3)=fliplr(paramy{k}(:,1:3));45 paramy{k}=sortrows(paramy{k},[1 2 3]);46 74 else 75 param=f{[sparam{j,1} suff{k,1}]}(:,:,:,:); 76 param=squeeze(param); 77 paramy{k}=mat2yao(param); 78 paramy{k}(:,1:3)=fliplr(paramy{k}(:,1:3)); 79 paramy{k}=sortrows(paramy{k},[1 2 3]); 47 80 figure(j); 48 81 subplot(3,2,k) 49 82 plot_nemo_3D(paramy{k},longi,lati,zlev,1,sparam{j,2},1); 50 title(suff{k,2}) 83 title(suff{k,2}) 84 85 51 86 if (k==1) 52 87 colorbar … … 59 94 colorbar 60 95 end 61 96 end %if ~ssh 62 97 63 end 98 end %for k 99 64 100 %%Graphe des différences 65 101 for k=1:size(delta,1) 66 102 67 param=paramy{delta{k,1}(1)}; 68 param(:,end)=param(:,end)-paramy{delta{k,1}(2)}(:,end); 69 70 figure(j+2*size(sparam,1)) 71 subplot(2,2,k) 72 plot_nemo_3D(param,longi,lati,zlev,1,sparam{j,4},1); 73 colormap(cmapdif); 74 title(delta{k,2}); 75 if (k==2) 76 colorbar 77 end 78 79 figure(j+3*size(sparam,1)) 80 subplot(2,2,k) 81 plot_nemo_3D(param,longi,lati,zlev,lat0,sparam{j,5},2); 82 colormap(cmapdif); 83 title(delta{k,2}); 84 if (k==2) 85 colorbar 86 end 87 fprintf(1,[sparam{j,1} ' ' delta{k,2} '\n']); 88 [N,RPD,URPD,MAD,RMS,slope,intercept,r2]=make_stats(paramy{delta{k,1}(1)}(:,end),paramy{delta{k,1}(2)}(:,end)) 103 104 param=paramy{delta{k,1}(1)}; 105 param(:,end)=param(:,end)-paramy{delta{k,1}(2)}(:,end); 106 107 figure(j+2*size(sparam,1)) 108 subplot(2,2,k) 109 plot_nemo_3D(param,longi,lati,zlev,1,sparam{j,4},1); 110 colormap(cmapdif); 111 title(delta{k,2}); 112 if (k==2) 113 colorbar 114 end 115 if ~strcmp(sparam{j,1},'ssh') 116 figure(j+3*size(sparam,1)) 117 subplot(2,2,k) 118 plot_nemo_3D(param,longi,lati,zlev,lat0,sparam{j,5},2); 119 colormap(cmapdif); 120 title(delta{k,2}); 121 if (k==2) 122 colorbar 123 end 124 end % if ~ssh 125 126 if strcmp(sparam{j,1},'ssh') 127 n1=max(paramy{delta{k}(1)}(:,1)); 128 n2=max(paramy{delta{k}(1)}(:,2)); 129 iok=find(paramy{delta{k}(1)}(:,1)>1 & paramy{delta{k}(1)}(:,1)<n1 & paramy{delta{k}(1)}(:,2)>1 & ... 130 paramy{delta{k}(1)}(:,2)<n2); 131 else 132 n1=max(paramy{delta{k}(1)}(:,1)); 133 n2=max(paramy{delta{k}(1)}(:,2)); 134 n3=max(paramy{delta{k}(1)}(:,3)); 135 iok=find(paramy{delta{k}(1)}(:,1)>1 & paramy{delta{k}(1)}(:,1)<n1 & paramy{delta{k}(1)}(:,2)>1 & ... 136 paramy{delta{k}(1)}(:,2)<n2 & paramy{delta{k}(1)}(:,3)<n3); 137 end 138 139 140 % fprintf(1,[int2str(j) sparam{j,1} ' ' delta{k,2} '\n']); 141 [N(j,k),RPD(j,k),URPD(j,k),MAD(j,k),RMS(j,k),slope(j,k),intercept(j,k),r2(j,k) ]=make_stats(paramy{delta{k,1}(1)}(iok,end),paramy{delta{k,1}(2)} (iok,end)); 89 142 90 91 end 143 end %for k 92 144 93 145 … … 102 154 end 103 155 close(f) 156 157 %sauvegarde du tableau 158 159 fid=fopen('tab.txt','w'); 160 for j=1:size(sparam,1) 161 162 fprintf(fid,'\n * ParamÚtre %s \n',sparam{j,1}); 163 fprintf(fid,'||Name ||bias|| RMS || rel. err || r2 ||\n'); 164 for k=1:size(delta,1) 165 166 167 fprintf(fid,'||%s %s || %4.3e || %4.3e || %4.3f || %4.3f ||\n',sparam{j,1},delta{k,2}, MAD(j,k),RMS(j,k), ... 168 URPD(j,k),r2(j,k)); 169 170 end 171 172 fprintf(fid,'\n'); 173 174 end 175 fclose(fid); -
trunk/scripts/sinobad.i
r14 r16 16 16 17 17 xwriteout 0 true ../data_out/exp_T.nc 18 savestate sshn_c 1 ij 0 A 1 ../data_out/sshn_c_true.dat19 savestate ta_c 1 ijk 0 A 1 ../data_out/ta_c_true.dat20 savestate sa_c 1 ijk 0 A 1 ../data_out/sa_c_true.dat21 savestate ua_c 1 ijk 0 A 1 ../data_out/ua_c_true.dat22 savestate va_c 1 ijk 0 A 1 ../data_out/va_c_true.dat23 18 24 19 print_time OFF … … 29 24 ##OBSERVATION 30 25 xwriteout 50 obs_48 ../data_out/exp_T.nc 31 savestate sshb 1 ij 50 A 1 ../data_out/sshb_obs_48.dat32 savestate tb 1 ijk 50 A 1 ../data_out/tb_obs_48.dat33 savestate sb 1 ijk 50 A 1 ../data_out/sb_obs_48.dat34 savestate ub 1 ijk 50 A 1 ../data_out/ub_obs_48.dat35 savestate vb 1 ijk 50 A 1 ../data_out/vb_obs_48.dat36 26 37 27 loadobs sshb 1 ij 50 A 1 ../data_out/sshb_obs_48.dat D … … 49 39 print_time OFF 50 40 FORWARD 41 51 42 xwriteout 0 init ../data_out/exp_T.nc 52 savestate sshn_c 1 ij 0 A 1 ../data_out/sshn_c_init.dat53 savestate ta_c 1 ijk 0 A 1 ../data_out/ta_c_init.dat54 savestate sa_c 1 ijk 0 A 1 ../data_out/sa_c_init.dat55 savestate ua_c 1 ijk 0 A 1 ../data_out/ua_c_init.dat56 savestate va_c 1 ijk 0 A 1 ../data_out/va_c_init.dat57 58 43 xwriteout 50 forw0_48 ../data_out/exp_T.nc 59 savestate sshb 1 ij 50 A 1 ../data_out/sshb_forw0_48.dat60 savestate tb 1 ijk 50 A 1 ../data_out/tb_forw0_48.dat61 savestate sb 1 ijk 50 A 1 ../data_out/sb_forw0_48.dat62 savestate ub 1 ijk 50 A 1 ../data_out/ub_forw0_48.dat63 savestate vb 1 ijk 50 A 1 ../data_out/vb_forw0_48.dat64 44 65 45 ##TEST DE LA FONCTION OBJECTIVE … … 83 63 ##SAUVEGARDE 84 64 xwriteout 0 fin ../data_out/exp_T.nc 85 savestate sshn_c 1 ij 0 A 1 ../data_out/sshn_c_fin.dat 86 savestate ta_c 1 ijk 0 A 1 ../data_out/ta_c_fin.dat 87 savestate sa_c 1 ijk 0 A 1 ../data_out/sa_c_fin.dat 88 savestate ua_c 1 ijk 0 A 1 ../data_out/ua_c_fin.dat 89 savestate va_c 1 ijk 0 A 1 ../data_out/va_c_fin.dat 65 xwriteout 50 forwfin_48 ../data_out/exp_T.nc 90 66 91 xwriteout 50 forwfin_48 ../data_out/exp_T.nc 92 savestate sshb 1 ij 50 A 1 ../data_out/sshb_forwfin_48.dat 93 savestate tb 1 ijk 50 A 1 ../data_out/tb_forwfin_48.dat 94 savestate sb 1 ijk 50 A 1 ../data_out/sb_forwfin_48.dat 95 savestate ub 1 ijk 50 A 1 ../data_out/ub_forwfin_48.dat 96 savestate vb 1 ijk 50 A 1 ../data_out/vb_forwfin_48.dat 97 98 goto FINRUN 99 100 ## analytiquement (2) 101 xistate_init 1 ../data_in/file_rest/GYRE_00000424_restart.nc 102 #xistate_init 1 ../data_in/file_rest/GYRE_00000400_restart.nc 67 xrst_save GYRE_00000400_restart_CONTROL_T.nc 103 68 104 69 105 106 107 true_target_in_tab ta_c108 savestate ta_c 1 ijk 0 A 1 ../data_out/ta_c_true.dat109 print_time OFF110 set_modeltime 0111 FORWARD112 savestate tb 1 ijk 0 A 3 ../data_out/tb_forw_init_424.dat113 GOTO FINRUN114 115 #load_shape_func ta_c ../data_in/shfs/tb400-450/shfs15_N00_tb.dat116 #load_mean 1 ta_c ../data_in/shfs/tb400-450/mean_N00_tb.dat117 #load_stdev_pca ta_c ../data_in/shfs/tb400-450/stdevEOF_N00_tb.dat118 119 #loadstate ta_c 1 ijk 0 a 1 ../data_in/start_in_tb/ta_start400.dat D120 #loadstate ta_c 1 ijk 0 A 1 ../data_out/tb_st10.dat D121 #loadstate ta_c 1 ijk 0 a 1 ../data_out/ta_c_yao.dat D122 123 #load_mean 0 ta_c | creating the observations124 125 #setstate pca_ta 0126 GOTO NOF127 ## Faire une simulation direct128 print_time OFF129 set_modeltime 0130 FORWARD131 #savestate mod_name ns ijk pdt coding format file_name132 133 #####savestate tb 1 ijk 0 A 3 ../data_out/tb_50.dat134 #savestate tb 1 ijk 23 A 1 ../data_out/tb_obs20_2.dat135 #savestate sshb 1 ij 23 A 1 ../data_out/sshb_obs20_0_1.dat136 137 savestate tb 1 ijk 23 A 1 ../data_out/tb_obs_std_424.dat138 savestate sshb 1 ij 23 A 1 ../data_out/sshb_obs_std_424.dat139 140 #savestate tb 1 ijk 10 A 1 ../data_out/tb_st10.dat141 #savestate tb 1 ijk 3 A 3 ../data_out/tb_sbd100.dat142 #savestate sb 1 ijk 3 A 3 ../data_out/sb_sbd100.dat143 #savestate ub 1 ijk 3 A 3 ../data_out/ub_sbd100.dat144 #savestate vb 1 ijk 3 A 3 ../data_out/vb_sbd100.dat145 #savestate sshb 1 ij 3 A 3 ../data_out/sshb_sbd100.dat146 ###savestate ta 1 ijk 3 A 1 ../data_in/start_in_tb/ta_start400.dat147 | sauvegarder la148 | sortie du module tb149 | au pas du temps 100150 #savestate sshb 1 ij 102 A 3 ../data_out/sshb100.dat151 | sauvegarder la152 | sortie du module sshb153 | au pas du temps 100154 155 GOTO FINRUN156 NOF157 #loadobs tb 1 ijk 23 A 1 ../data_out/tb_obs20_2.dat D158 loadobs tb 1 ijk 23 A 1 ../data_out/tb_obs_std_16_12_1_424.dat D159 #loadobs sshb 1 ij 23 A 1 ../data_out/sshb_obs20.dat D160 #loadstate ta_c 1 ijk 0 a 1 ../data_in/start_in_tb/GYRE_sortie_mohamed_ptb_198.dat D161 #exit162 print_cost ON163 GOTO 3164 165 166 GOTO TESTAD |TESTLT |TESTAD |va vers TESTAD167 168 outoobs sshb 1 12169 outoobs tb 1 12170 171 true_target_in_tab ta_c172 173 GOTO TESTEND | TESTEND |TESTOF174 FINTESTDF175 #TEST DE LA PROGRAMMATION DES DERIVEES176 TESTDF177 testdf 3 3 1 4 f 1.e-10 0.001 10178 stop179 FINTESTDF180 181 GOTO TESTEND182 GOTO TESTEND183 #-----------------184 # TEST DE LINEAIRE TANGENT185 TESTLT186 testlt 1.e+00 0.5e-01 2. 15187 stop188 #-----------------189 #TEST DE L'ADJOINT190 TESTAD191 testad 0.001192 stop193 testad 0.001 1.0e-6 1000 1.0e-16194 stop195 #------------------196 #TEST DE LA FONCTION OBJECTIVE197 TESTOF198 print_cost OFF199 loadstate ta_c 1 ijk 0 a 1 ../data_in/start_in_tb/GYRE_sortie_mohamed_ptb_200.dat D200 testof 1.e+00 0.5e-01 2. 10 1201 TESTEND202 203 #---------------------------------------------------------------------204 #----------------------> choice of the run <-------------------------205 #---------------------------------------------------------------------206 #-------> 1. RUNYAO207 #-------> 2. RUNM2QN1208 #-------> 3. RUNM1QN3209 210 #charger l'état initial211 loadstate ta_c 1 ijk 0 a 1 ../data_in/start_in_tb/GYRE_sortie_mohamed_ptb_200.dat D212 213 GOTO 3214 #---------------------------------------------------------------------215 1216 !echo "RUN OPTIMIZATION WITH YRUN ......."217 set_nbiter 20218 setepsi ta_c 0.1219 run220 3221 print_time OFF222 set_modeltime 0223 !echo "RUN OPTIMIZATION WITH M1QN3 ......."224 setm_impres 5225 setm_io 6226 setm_mode 1227 set_nbiter 100228 setm_nsim 100229 setm_dxmin 1.0e-4230 setm_epsg 1.0e-10231 setm_ddf1 1232 runm233 234 savestate ta_c 1 ijk 0 A 1 ../data_out/ta_c_yao.dat235 savestate tb 1 ijk 23 A 1 ../data_out/tb_ret_424.dat236 70 237 71 goto FINRUN -
trunk/src/sinobad.h
r14 r16 352 352 int itest=atoi(argv[1]); 353 353 if(itest==1){// from restart file 354 printf("start from rest_file ");354 printf("start from rest_file\n "); 355 355 neuler=0;//=1;// Restart from a file // Set time-step indicator at nit000 (leap-frog) 356 356 // ifdef YE_*a_c alors *a=*b=*a_c
Note: See TracChangeset
for help on using the changeset viewer.