source: altifloat/matlab_toolbox/script_perso.m @ 199

Last change on this file since 199 was 164, checked in by jbrlod, 9 years ago

add nemed exp

File size: 5.3 KB
Line 
1close all
2clear all
3indir='../exp_nemed/';
4%indir='../exp_twin_aviso/';
5%indir='../../code_leila/altifloat/obs_float/';
6%indir='../obs_float/';
7%ut=load([ indir 'uzero.dat']);
8%vt=load([ indir 'vzero.dat']);
9robs=load([ indir 'obs.dat']);
10rsim=load([ indir 'rfloat_nodiv.dat']);
11uvb=load([ indir 'uv_back_aviso.dat']);
12uvt=load([ indir 'uv_back_aviso.dat']);
13uvr=load([indir 'uv_tot_nodiv.dat']);
14uvgeo=load([indir 'uv_geos_nodiv.dat']);
15meshg=load([indir 'meshgrid_aviso.dat']);
16Div_ana_file=[indir 'Div_ana.dat'];
17Div_fg_file=[indir 'Div_fg.dat'];
18
19%drifterdir='../altifloat/';
20%fname={'a300234011043340.mat','a300234011120770.mat','a300234011249440.mat'};
21%X1=ut(:,end-3);
22%Y1=ut(:,end-2);
23iech=1;
24jech=1;
25%LIM=[34.5 36 32.5 35];
26LON = [32.5 35.6];
27LAT = [32.5 35.5];
28LIM= [LON LAT];
29%Format : t/s, ilon, ilat, val
30
31%nlon=87;
32%nlat=58;
33lon=unique(meshg(:,1));
34lat=unique(meshg(:,2));
35nlon=length(lon);
36nlat=length(lat);
37
38[Lon,Lat]=meshgrid(lon',lat);
39
40%X1=X1+2;
41%Y1=Y1+2
42
43%Ut=reshape(ut(:,end),nlat,nlon);
44%Vt=reshape(vt(:,end),nlat,nlon);
45
46
47
48nfloat=length(unique(robs(:,2)));
49
50
51
52%it, ilon,ilat,u,v
53ntime=length(unique(uvb(:,1)));
54Ub=reshape(uvb(:,end-1),nlat,nlon,ntime);
55Vb=reshape(uvb(:,end),nlat,nlon,ntime);
56
57ntime=length(unique(uvt(:,1)));
58Ut=reshape(uvt(:,end-1),nlat,nlon,ntime);
59Vt=reshape(uvt(:,end),nlat,nlon,ntime);
60
61
62%it, ilon,ilat,u,v
63ntime=length(unique(uvr(:,1)));
64Ur=reshape(uvr(:,end-1),nlat,nlon,ntime);
65Vr=reshape(uvr(:,end),nlat,nlon,ntime);
66
67if exist('uvgeo')
68    ntime=length(unique(uvgeo(:,1)));
69Ugeo=reshape(uvgeo(:,end-1),nlat,nlon,ntime);
70Vgeo=reshape(uvgeo(:,end),nlat,nlon,ntime);
71end
72
73
74Hr=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), ...
75          mean(Vr(1:jech:end,1:iech:end,1:end-1),3),'r');
76hold on
77Hb=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');
78
79%Ht=quiver(Ut,Vt,'g');
80
81
82for j=1:nfloat     
83 
84 
85
86  rfloat=rsim(rsim(:,2)==j-1&rsim(:,end)>0,[end-1 end]);
87  rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1);
88  rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1);
89  Hsim=plot(rfloat_lon,rfloat_lat,'.-r');
90    rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]);
91  rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1);
92  rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1);
93  Hobs=plot(rfloat_lon,rfloat_lat,'.-m');
94
95  %   plot(rfloat(:,2)+1,rfloat(:,1)+1,'.-m');
96
97  % Hreal=plot(data.lon(1:4),data.lat(1:4),'.-k')
98 
99end
100
101
102Ht=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');
103axis(LIM);
104
105
106
107%Ajout des trajectoires réelles
108
109
110
111%legend([Hb Hr],'background','retrieved','Location','SouthEast');
112legend([Hb Hr Ht],'background.','retrieved','truth','Location','SouthEast');
113
114%print -dpng ../exp_forw_dan/simu_drifter_dan.png
115
116
117if (false)
118delta_b=sqrt(mean((Ut(:,:,1:end-1)-Ub(:,:,1:end-1)),3).^2+mean((Vt(:,:,1:end-1)-Vb(:,:,1:end-1)),3).^2);
119delta_r=sqrt(mean((Ut(:,:,1:end-1)-Ur(:,:,1:end-1)),3).^2+mean((Vt(:,:,1:end-1)-Vr(:,:,1:end-1)),3).^2);
120delta_inc=sqrt(mean((Ub(:,:,1:end-1)-Ur(:,:,1:end-1)),3).^2+mean((Vb(:,:,1:end-1)-Vr(:,:,1:end-1)),3).^2);
121
122cscale=[0 5e-4];
123
124figure(2)
125subplot(2,2,1)
126imagesc(lon,lat,delta_b,cscale);
127axis xy;axis(LIM);
128hold on
129for j=1:3
130   data= load([drifterdir fname{j}]);
131  rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]);
132  rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1);
133  rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1);
134plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'o-m');
135end
136title('Backround error');
137
138
139subplot(2,2,2)
140imagesc(lon,lat,delta_r,cscale);
141axis xy;axis(LIM);
142hold on
143for j=1:3
144   data= load([drifterdir fname{j}]);
145  rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]);
146  rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1);
147  rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1);
148plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'o-m');
149end
150
151title('Analysis error');
152
153
154
155subplot(2,2,4)
156imagesc(lon,lat,delta_inc);
157axis xy;axis(LIM);
158colorbar
159hold on
160for j=1:3
161   data= load([drifterdir fname{j}]);
162  rfloat=robs(robs(:,2)==j-1&robs(:,end)>0,[end-1 end]);
163  rfloat_lon=interp1(1:nlon,lon,rfloat(:,2)+1);
164  rfloat_lat=interp1(1:nlat,lat',rfloat(:,1)+1);
165plot([data.lon(1);rfloat_lon],[data.lat(1);rfloat_lat],'o-m');
166end
167title('Increment');
168
169
170%print -f1 -dpng ../exp_forw_dan/twin_exp_uv_field.png
171%print -f2 -dpng ../exp_forw_dan/twin_exp_errors.png
172end
173
174
175%% Erreur le long du trajet
176if(false)
177Id=0;
178for id=Id
179  figure(5+id)
180  I=find(robs(:,2)==id-1);
181  Xq=robs(I,end)+1;
182  Yq=robs(I,end-1)+1;
183  Tq=robs(I,1)+1;
184 
185  err_b=interp3(1:nlon,1:nlat,1:ntime,delta_b,Xq,Yq,Tq);
186  err_r=interp3(1:nlon,1:nlat,1:ntime,delta_r,Xq,Yq,Tq);
187  incr=interp3(1:nlon,1:nlat,1:ntime,delta_inc,Xq,Yq,Tq);
188end %id
189end %if false
190
191%% Divergence
192Div_ana=load(Div_ana_file);
193Div_fg=load(Div_fg_file);
194
195Div2_ana=reshape(Div_ana(:,end),nlat,nlon,ntime-1);
196Div2_fg=reshape(Div_fg(:,end),nlat,nlon,ntime-1);
197
198figure(3)
199subplot(3,1,1)
200imagesc(lon,lat,mean(Div2_fg,3),[-2 2]*1e-5);
201axis xy;
202axis(LIM);
203title('Mean divergence Background');
204colorbar
205
206
207figure(3)
208subplot(3,1,3)
209imagesc(lon,lat,mean(Div2_ana,3),[-2 2]*1e-5);
210axis xy;
211axis(LIM);
212title('Mean divergence Analyse');
213colorbar
214
215subplot(3,1,2);
216imagesc(lon,lat,mean(Div2_ana,3)-mean(Div2_fg,3),[-2 2]*1e-5);
217axis xy;
218axis(LIM);
219title('Mean difference');
220 colorbar
Note: See TracBrowser for help on using the repository browser.