- Timestamp:
- 03/27/15 15:19:37 (9 years ago)
- Location:
- altifloat/matlab_toolbox
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
altifloat/matlab_toolbox/aviso2yao.m
r133 r139 1 function [ ] = aviso2yao( aviso_netcdf, meshmask,outfile,outmask)2 % [ ] = aviso2yao( aviso_netcdf_file, meshmask,outfile,outmask)1 function [Yao_uv,mask1] = aviso2yao( aviso_netcdf, meshmask,outfile,outmask,convlon) 2 % [Yao_uv,mask1] = aviso2yao( aviso_netcdf, meshmask,outfile,outmask) 3 3 % Read AVISO file aviso_netcdf_file and save to be read by read_bck (time step=1) 4 4 % Interpolate on meshmask (meshmask : two columns lon,lat) … … 11 11 12 12 13 %%%%%%%%%% Usually use: 14 %%%%%%%%%% Nlat=58; %Phi 15 %%%%%%%%%% Nlong=87; %Lambda 16 %% aviso_netcdf='../../data/AVISO/dt_med_allsat_madt_uv_20130828_20140704.nc' 17 %% meshmask='../obs_float/meshgrid3.dat' 18 %% outfile='../obs_float/uv_bck_20130828.dat'; 19 %% outmask='../obs_float/mask_20130828.dat'; 13 % Usually use: 14 % Nlat=58; %Phi 15 % Nlong=87; %Lambda 16 % aviso_netcdf='../../data/AVISO/dt_med_allsat_madt_uv_20130828_20140704.nc' 17 18 % meshmask='../obs_float/meshgrid3.dat' 19 % outfile='../obs_float/uv_bck_20130828.dat'; 20 % outmask='../obs_float/mask_20130828.dat'; 20 21 21 22 write_u=1; 23 if ~exist('convlon') 24 convlon=true; 25 end 22 26 23 27 … … 58 62 [LAT,LON]=meshgrid(lat,lon); %C'est à l'envers à cause de matlab 59 63 64 if convlon 60 65 %Conversion des longitudes 61 66 LON=LON-360; 67 end 62 68 63 69 %Conversion des vitesses inutile (malgré le champ scale_factor, ce que je trouve bizarre, … … 73 79 74 80 mask1=mask(:); 81 82 if (exist('outmask') & ~isempty(outmask)) 75 83 dlmwrite(outmask,mask1,'precision',1); 84 end 76 85 77 % %Masked velocity are zero86 %Masked velocity are zero 78 87 Uint(mask==0)=0; 79 88 Vint(mask==0)=0; … … 136 145 Yao_uv=[ ones(Nlong*Nlat,1) cd_lon(:) cd_lat(:) u_yao1 v_yao1]; 137 146 138 if (write_u==1 )147 if (write_u==1 & exist('outfile') & ~isempty(outfile)) 139 148 140 149 dlmwrite(outfile,Yao_uv,'\t'); -
altifloat/matlab_toolbox/interp_bck.m
r135 r139 1 function [ ]=interp_bck(uv_b1,uv_b2,it1,it2,dt,outfile)1 function [UV_bck,mask_back]=interp_bck(uv,it,dt,meshmask,outfile,outmask) 2 2 %[]=interp_bck(uv_b1,uv_b2,it1,it2,dt) 3 3 %Time unit : hour 4 % Cells containing file names in nc format 5 % it : time step of each file 4 6 5 %Check if same coordinate 6 7 %uv_b1='../obs_float/uv_bck_20130828.dat' 8 %uv_b2='../obs_float/uv_bck_20130828.dat' 9 %it1=1; 10 %it2=47; 11 %dt=2; 12 %outfile='../obs_float/uv_bk_24pdt_const.dat' 13 14 uv1=load(uv_b1); 15 uv2=load(uv_b2); 16 delta=(uv1(:,2:3)-uv2(:,2:3)).^2; 7 %Check if same coordinate 8 9 %uv_b1='../obs_float/uv_bck_20130828.dat' 10 %uv_b2='../obs_float/uv_bck_20130828.dat' 11 %it1=1; 12 %it2=47; 13 %dt=2; 14 %outfile='../obs_float/uv_bk_24pdt_const.dat' 15 16 %The grid in degrees 17 meshgrid2=load(meshmask); 18 Nlong=length(unique(meshgrid2(:,1))); 19 Nlat=length(unique(meshgrid2(:,2))); 20 21 UV_bck=[]; 22 mask_back=ones(Nlat*Nlong,1); 23 24 25 for idf=1:length(uv)-1 26 27 uv_b1=uv{idf}; 28 uv_b2=uv{idf+1}; 29 it1=it(idf); 30 it2=it(idf+1); 31 32 % uv1=load(uv_b1); 33 % uv2=load(uv_b2); 34 [uv1,mask1]=aviso2yao(uv_b1,meshmask,[],[],false); 35 [uv2,mask2]=aviso2yao(uv_b1,meshmask,[],[],false); 36 37 mask_back=mask_back.*mask1.*mask2; 38 39 delta=(uv1(:,2:3)-uv2(:,2:3)).^2; 17 40 if (sum(delta(:))>1e-8) 18 41 fprintf(2,'Coordinates does not match\n'); … … 31 54 32 55 end 33 34 56 tt=repmat(1:length(t),size(uv1,1),1); 35 57 tt=tt(:); 36 58 37 UV_bck=[tt,repmat(uv1(:,2:3),length(t),1),ui(:),vi(:)]; 59 UV_bck=[UV_bck;[tt,repmat(uv1(:,2:3),length(t),1),ui(:),vi(:)]]; 60 61 end %for idf 38 62 39 63 dlmwrite(outfile,UV_bck,'\t'); 40 64 dlmwrite(outmask,mask_back,'precision',1) 41 65 end 42 66
Note: See TracChangeset
for help on using the changeset viewer.