- Timestamp:
- 04/06/15 19:15:40 (9 years ago)
- Location:
- altifloat/matlab_toolbox
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
altifloat/matlab_toolbox/script_perso.m
r144 r145 6 6 %ut=load([ indir 'uzero.dat']); 7 7 %vt=load([ indir 'vzero.dat']); 8 robs=load([ indir 'rfloat_total.dat']); 9 rsim=load([ indir 'rfloat_total_jum0.dat']); 10 uvb=load([ indir 'uv_bck_dan.dat']); 11 uv=load([indir 'uv_total_jum0.dat']); 8 robs=load([ indir 'obs_jum.dat']); 9 rsim=load([ indir 'rfloat_total_jum1.dat']); 10 uvb=load([ indir 'uv_bck_dan_s.dat']); 11 uvt=load([ indir 'uv_bck_dan.dat']); 12 uvr=load([indir 'uv_total_jum1.dat']); 12 13 meshg=load([indir 'meshgrid_dan.dat']); 13 14 drifterdir='../altifloat/'; … … 17 18 iech=3; 18 19 jech=3; 19 LIM=[34. 9 35.3 33.2533.6];20 LIM=[34.8 35.3 33.2 33.6]; 20 21 %Format : t/s, ilon, ilat, val 21 22 … … 48 49 49 50 %it, ilon,ilat,u,v 50 ntime=length(unique(uv (:,1)));51 Ur=reshape(uv (:,end-1),nlat,nlon,ntime);52 Vr=reshape(uv (:,end),nlat,nlon,ntime);51 ntime=length(unique(uvr(:,1))); 52 Ur=reshape(uvr(:,end-1),nlat,nlon,ntime); 53 Vr=reshape(uvr(:,end),nlat,nlon,ntime); 53 54 54 Hb=quiver(Lon(1:jech:end,1:iech:end),Lat(1:jech:end,1:iech:end),mean(Ub(1:jech:end,1:iech:end,1),3),mean(Vb(1:jech:end,1:iech:end,1),3),'b'); 55 ntime=length(unique(uvt(:,1))); 56 Ut=reshape(uvt(:,end-1),nlat,nlon,ntime); 57 Vt=reshape(uvt(:,end),nlat,nlon,ntime); 58 59 Hr=quiver(Lon(1:jech:end,1:iech:end),Lat(1:jech:end,1:iech:end),mean(Ur(1:jech:end,1:iech:end,1:end-1),3), ... 60 mean(Vr(1:jech:end,1:iech:end,1:end-1),3),'r'); 61 hold on 62 Hb=quiver(Lon(1:jech:end,1:iech:end),Lat(1:jech:end,1:iech:end),mean(Ub(1:jech:end,1:iech:end,1:end-1),3),mean(Vb(1:jech:end,1:iech:end,1:end-1),3),'b'); 55 63 56 64 %Ht=quiver(Ut,Vt,'g'); 57 hold on 65 58 66 59 67 for j=1:nfloat 60 68 data= load([drifterdir fname{j}]); 61 69 62 rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]); 63 rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1); 64 rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1); 65 Hobs=plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'.-b'); 70 66 71 67 72 rfloat=rsim(rsim(:,2)==j-1&rsim(:,end)>0,[end-1 end]); … … 69 74 rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1); 70 75 Hsim=plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'.-r'); 71 76 rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]); 77 rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1); 78 rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1); 79 Hobs=plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'.-m'); 72 80 73 81 % plot(rfloat(:,2)+1,rfloat(:,1)+1,'.-m'); 74 82 75 Hreal=plot(data.lon(1:4),data.lat(1:4),'.-k')83 % Hreal=plot(data.lon(1:4),data.lat(1:4),'.-k') 76 84 77 85 end 78 86 79 Hb=quiver(Lon(1:jech:end,1:iech:end),Lat(1:jech:end,1:iech:end),mean(Ur(1:jech:end,1:iech:end,1),3),mean(Vr(1:jech:end,1:iech:end,1),3),'b'); 87 88 Ht=quiver(Lon(1:jech:end,1:iech:end),Lat(1:jech:end,1:iech:end),mean(Ut(1:jech:end,1:iech:end,1:end-1),3),mean(Vt(1:jech:end,1:iech:end,1:end-1),3),'m'); 80 89 axis(LIM); 81 90 … … 86 95 87 96 %legend([Hb Hr],'background','retrieved','Location','SouthEast'); 88 legend([H obs Hsim],'real traj.','simulated traj');97 legend([Hb Hr Ht],'background.','retrieved','truth'); 89 98 90 print -dpng ../exp_forw_dan/simu_drifter_dan.png99 %print -dpng ../exp_forw_dan/simu_drifter_dan.png 91 100 101 102 103 delta_b=sqrt(mean((Ut(:,:,1:end-1)-Ub(:,:,1:end-1)),3).^2+mean((Vt(:,:,1:end-1)-Vb(:,:,1:end-1)),3).^2); 104 delta_r=sqrt(mean((Ut(:,:,1:end-1)-Ur(:,:,1:end-1)),3).^2+mean((Vt(:,:,1:end-1)-Vr(:,:,1:end-1)),3).^2); 105 delta_inc=sqrt(mean((Ub(:,:,1:end-1)-Ur(:,:,1:end-1)),3).^2+mean((Vb(:,:,1:end-1)-Vr(:,:,1:end-1)),3).^2); 106 107 cscale=[0 5e-4]; 108 109 figure(2) 110 subplot(2,2,1) 111 imagesc(lon,lat,delta_b,cscale); 112 axis xy;axis(LIM); 113 hold on 114 for j=1:3 115 data= load([drifterdir fname{j}]); 116 rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]); 117 rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1); 118 rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1); 119 plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'o-m'); 120 end 121 title('Backround error'); 122 123 124 subplot(2,2,2) 125 imagesc(lon,lat,delta_r,cscale); 126 axis xy;axis(LIM); 127 hold on 128 for j=1:3 129 data= load([drifterdir fname{j}]); 130 rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]); 131 rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1); 132 rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1); 133 plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'o-m'); 134 end 135 136 title('Analysis error'); 137 138 139 140 subplot(2,2,4) 141 imagesc(lon,lat,delta_inc); 142 axis xy;axis(LIM); 143 colorbar 144 hold on 145 for j=1:3 146 data= load([drifterdir fname{j}]); 147 rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]); 148 rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1); 149 rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1); 150 plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'o-m'); 151 end 152 title('Increment'); 153 154 155 %print -f1 -dpng ../exp_forw_dan/twin_exp_uv_field.png 156 %print -f2 -dpng ../exp_forw_dan/twin_exp_errors.png 157 158 %% Erreur le long du trajet 159 if(false) 160 Id=0; 161 for id=Id 162 figure(5+id) 163 I=find(robs(:,2)==id-1); 164 Xq=robs(I,end)+1; 165 Yq=robs(I,end-1)+1; 166 Tq=robs(I,1)+1; 167 168 err_b=interp3(1:nlon,1:nlat,1:ntime,delta_b,Xq,Yq,Tq); 169 err_r=interp3(1:nlon,1:nlat,1:ntime,delta_r,Xq,Yq,Tq); 170 incr=interp3(1:nlon,1:nlat,1:ntime,delta_inc,Xq,Yq,Tq); 171 end %id 172 end %if false -
altifloat/matlab_toolbox/script_prepare_exp_modele.m
r144 r145 21 21 interp_bck(aviso_netcdf,it,dt,meshfile,outfile,outmask); 22 22 23 %% Lissage 24 outfile_s='../exp_forw_dan/uv_bck_dan_s.dat'; 25 26 27 uvb=load(outfile); 28 meshg=load(meshfile); 29 lon=unique(meshg(:,1)); 30 lat=unique(meshg(:,2)); 31 nlon=length(lon); 32 nlat=length(lat); 33 ntime=length(unique(uvb(:,1))); 34 Ub=reshape(uvb(:,end-1),nlat,nlon,ntime); 35 Vb=reshape(uvb(:,end),nlat,nlon,ntime); 36 37 Ub_s=nan*ones(size(Ub)); 38 Vb_s=nan*ones(size(Vb)); 39 40 K=ones(95,95); 41 K=K./sum(K(:)); 42 43 for it=1:ntime 44 Ub_s(:,:,it)=conv2(Ub(:,:,it),K,'same'); 45 Vb_s(:,:,it)=conv2(Vb(:,:,it),K,'same'); 46 end 47 48 uvb_s=uvb; 49 uvb_s(:,end-1) = Ub_s(:); 50 uvb_s(:,end) = Vb_s(:); 51 dlmwrite(outfile_s,uvb_s,'\t'); 52 23 53 %% STEP THREE : Prepare init 24 54 drifterdir='../altifloat/'; … … 40 70 dlmwrite(['../exp_forw_dan/' initfile],MM,'\t'); 41 71 42 %STEP OBS : modify obs file 72 %% STEP OBS : modify obs file 73 init=load(['../exp_forw_dan/' initfile]); 74 obs=load(['../exp_forw_dan/rfloat_total.dat']); 43 75 76 ilon=find(init(:,1)==1); 77 ilat=find(init(:,1)==2); 78 79 init=[init(ilon,2)-1 init(ilon,3)-1 init(ilat,4) init(ilon,4)]; 80 81 istep=5; 82 I=find(obs(:,end)>1e-8); 83 obs=obs(I,:); 84 85 obs=[init;obs]; 86 obs=sortrows(obs,[2 1]); 87 88 t=unique(obs(:,1)); 89 tech=t(1:istep:end); 90 91 I=find(ismember(obs(:,1),tech)); 92 obs=obs(I,:); 93 dlmwrite(['../exp_forw_dan/obs_jum.dat'],obs,'\t'); 94 95 %% Create bck 96 aviso_netcdf={[dir_uvfiles 'uveta_cyco1_2013092812.nc']... 97 [dir_uvfiles 'uveta_cyco1_2013092912.nc'];}; 98 99 it=1:24:1+24*(length(aviso_netcdf)-1); 100 101 %meshmask='../exp_forw_dan/meshgrid_dan.dat'; 102 outfile='../exp_forw_dan/uv_bck2_dan.dat'; 103 outmask='../exp_forw_dan/mask_dan2.dat'; 104 105 dt=1; 106 107 interp_bck(aviso_netcdf,it,dt,meshfile,outfile,outmask); 108
Note: See TracChangeset
for help on using the changeset viewer.