source: altifloat/matlab_toolbox/script_perso.m @ 160

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

finalize wind effect

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