Table of Contents
bla
mGstat Toolbox Version 0.1 Feb 18, 2004 mGstat COMMANDS mgstat_verbose - display verbose information krig - simple/ordinary/tren kriging precal_covar - precalculate covariance matrix semivar_synth semivar_exp nscore : Normal socre transformation inscore : Normal socre back transformation sgsim : Sequential Gaussian Simulation dssim : Direct sequential simulation dssim-hr : Direct sequential simulation with histogram reprod. etype : E-Type from reaslizations. GSTAT SPECIFIC COMMANDS gstat - call gstat with parfile of mat-structure gstat_convert - convert binary GSTAT output to ASCII gstat_krig - Point kriging --gstat_cokrig - Point cokriging --gstat_krig2d - 2D kriging --gstat_cokrig2d- 2D cokriging gstat_binary - returns the path to the binary gstat gstat_demo - mGstat demos semivar_exp_gstat - IO read_petrel - read petrel ascii formatted file read_gstat_par - read gstat parameter file write_gstat_par - write gstat parameter file read_eas - read EAS ascii formatted files write_eas - write EAS ascii formatted files read_arcinfo_ascii - read ARCINFO ascii formatted files write_arcinfo_ascii - write ARCINFO ascii formatted files MISC nanmean - mean of array, where NaN are excluded. strip_space.m format_variogram.m deformat_variogram.m vonk2d - random field generator watermark - adds label to figure progress_txt - ascii progress bar Overloaded methods: serial/Contents mmreader/Contents audiorecorder/Contents audioplayer/Contents VideoReader/Contents instrument/Contents rsmd/Contents resultset/Contents drivermanager/Contents driver/Contents dmd/Contents dbtbx/Contents database/Contents cursor/Contents
CreateMisfitFunction : Dynamically created function to be used for semivariogram optimization
arcinfo2eas : convert ArcInfo file to EAS CALL arcinfo2eas(file_arcinfo,file_eas); or arcinfo2eas(file_arcinfo); using the same file name as the arcinfo file but with the 'eas' file extension.
cokrig_sk : Simple CoKriging Call : function [d_est,d_var,lambda_sk,K_sk,k_sk]=cokrig_sk(pos_known,val_known,pos_est,V,val_0); TMH/2005
colorbar_shift : Adds a colorbar to the current figure, with no reshaping Before printing to a PS file you may need to set : set(gca,'ActivePositionProperty','Position') example : subplot(2,2,1) imagesc(peaks) subplot(2,2,2) imagesc(peaks) set(gca,'ActivePositionProperty','Position') colorbar_shift;
colormap_nan Replaces all NaN values with a specific color, and rescales the colorbar appropriately; example : d=peaks(200); d(find(d<0))=NaN; figure(1);imagesc(d); colormap(hot); colormap_nan; drawnow; pause(2) figure(2);imagesc(d); colormap_nan(jet,[.2 .9 .1]); colorbar;drawnow; pause(2); figure(3);imagesc(d); colormap_nan(jet(1000),[.2 .9 .1]); colorbar
colormap_squeeze Call : colormap_squeeze(dperc); dperc=[0 .. 0.5]; imagesc(peaks); colormap_squeeze(.1); pause(1); colormap_squeeze(.1);
comb_cprob : PDF combination using permancne of ratios Call : pAgBC=comb_cprob(pA,pAgB,pAgC) pA : Prob(A) pAgB : Prob(A|B) pAgC : Prob(A|C) pAgBC : Prob(A|B,C) Combination of conditional probabilities based on permanence of updating ratios. Journel, An Alternative to Traditional Data Independence Hypotheses, Math Geol(34), 2002
comb_cprob_ind : Combination of two independent conditional PDF Call : pAgBC=comb_cprob_ind(pA,pAgB,pAgC) pA : Prob(A) pAgB : Prob(A|B) pAgC : Prob(A|C) pAgBC : Prob(A|B,C) TMH/2005
comb_cprob_nd : PDF combination using permancne of ratios Combination of 'nd' conditional probabilities based on permanence of updating ratios. Call : pAgND=comb_cprob(pA,pAgND,wAgND) pA [scalar] : Prob(A) pAgND [array] : Prob(A|N1),Prob(A|N2),...,Prob(A|ND) wAgBC [array] : Weight of each cprob pAgBC [scala] : Prob(A|ND) Combination of conditional probabilities based on permanence of updating ratios. Journel, An Alternative to Traditional Data Independence Hypotheses, Math Geol(34), 2002
semivar_exp : Calcualte experimental variogram [hc,garr,h,gamma,hangc,head,tail]=semivar_exp(pos,val,nbin,nbinang) pos : [ndata,ndims] val : [ndata,ndata_types] nbin : [integer] number of bins on distance anxes [array] if specified as an array, this is used. nbinang : [integer] number of arrays between 0/180 degrees (default 1) Example isotrop: [hc,garr]=semivar_exp(pos,val); plot(garr,hc); Example directional [0,45,90,135,180]: [hc,garr,h,gamma,hangc]=semivar_exp(pos,val,20,4); plot(garr,hc); legend(num2str(hangc')) TMH/2005
cpdf : cumulative probability density function [pk_obs]=cpdf(alldata,d_obs,doPlot) finds pk quantiles for data (d_obs), based on a series of data (alldata)
csemivar_exp : Calculate experimental cross semivariogram [hc,garr,h,gamma,hangc,head,tail]=semivar_exp(pos1,val1,pos2,val2,nbin,nbinang) pos1 : [ndata,ndims] : attribute 1 val1 : [ndata,1] : attribute 1 pos2 : [ndata,ndims] : attribute 2 val2 : [ndata,1] attribute 2 nbin : [integer] number of bins on distance anxes [array] if specified as an array, this is used. nbinang : [integer] number of arrays between 0/180 degrees (default 1) Example isotrop: [hc,garr]=semivar_exp(pos1,val1,pos2,val2); plot(garr,hc); Example directional [0,45,90,135,180]: [hc,garr,h,gamma,hangc]=semivar_exp(pos1,val1,pos2,val2,20,4); plot(garr,hc); legend(num2str(hangc')) TMH/2005
deformat_variogram : convert gstat variogram line into matlab structure Call: V=deformat_variogram(txt); Example: V=deformat_variogram('1 Sph(2)') V = par1: 1 par2: 2 type: 'Sph' itype: 1 See also : format_variogram TMH /2004
edist : Euclidean distance Call : D=edist(p1,p2,transform,isorange) p1,p2 : vectors transform : GSTAT anisotropy and/or range information isorange : [0] (default), transform is the usual GSTAT-anisotropy setting isorange : [1] means that transform simply lists the range in each dimensions, and that no rotation is performed
estim_taran, one data set : Tarantola equations (16-17) CALL : [m_est,Cm_est]=estim_taran(G,Cm,Cd,m0,d0);
f77strip : Strips f77 characters from binary file. [data]=f77strip(file,format,xskip,zskip); IN : required file [string], optional, deafult='f77.bin' optional : format [string], 'float16','float32'[default],'float64' xskip [scalar], Skip every xskip column zskip [scalar], Skip every zskip row OUT data [matrix], required Purpose : Reads a f77 style binary file At the beginning and end of each row, an integer containing the number of bytes in the row is printed (like ftnunstrip/ftnstrip in the CWP SU package) by Thomas Mejer Hansen, 05/2000 Octave 2.0.15 and Matlab 5.3 compliant
The FFT-MA algorithm in 3D Call: out=FFT_MA_3D(ny,nx,nz,Nly,Nlx,Nlz,cell,h_min,h_max,h_z,gmean,gvar,it) it: 1) Spherical, 2) Exponential, 3) Gaussian ny, nx, nz: Number of model parameters in the x, y, and z directions, respectively Nlx, Nly, Nlz: Extensions of the grid in the x, y, and z directions in order to avoid artefacts due to edge effects. Number of model parameters in the extension = Nlx*range_x/cell, where cell is the size of the cells and range_x is the range i the x-direction. h_min, h_max, and h_z, are the ranges in the horizontal (x), vertical (y) and (z) direction. gvar: Global variance gmean: Global mean
format_variogram : Convert matlab style Variogram to Gstat style Call : txt=format_variogram(V); See also: deformat_variogram
fresnel_punch : computes the sensitivity kernel for a wave traveling from S to R. CALL : [K,RAY,timeS,timeR,raypath]=fresnel_punch(Vel,x,y,z,S,R,freq,alpha); IN : Vel : Velocity field x [1:nx] : y [1:ny] : z [1:nz] : S [1,3] : Location of Source R [1,3] : Location of Receiver freq : frequency alpha: controls exponential decay away ray path OUT : K : Sensitivity kernel R : Ray sensitivity kernel (High Frequency approx) timeS : travel computed form Source timeR : travel computed form Receiver raypath [nraydata,ndim] : the center of the raypath TMH/2006
gaussian_simulation_cholesky : generate realizations from a Gaussian 2D distribution mean m0 and covariance Cm Very eficient for smaller models to generate a sample of the posterior PDF for least squares inversion problems : For example : [m_est,Cm_est]=least_squares_inversion(G,Cm,Cd,m0,d0); z_uncond=gaussian_simulation_cholesky(m_est,Cm_est,nsim); z_cond=gaussian_simulation_cholesky(m_est,Cm_est,nsim); Choleksy decomposition can be calculated prior to calling Cm=chol(Cm); is_chol=1; z_cond=gaussian_simulation_cholesky(m_est,Cm_est,nsim,is_chol); % unconditional realization: x=[1:1:40]; y=[1:1:40]; [xx,yy]=meshgrid(x,y); Cm=precal_cov([xx(:) yy(:)],[xx(:) yy(:)],'1 Sph(45,.1,30)'); m0=xx.*0; nsim=12; [z_uncond,D]=gaussian_simulation_cholesky(m0,Cm,nsim); for i=1:nsim;subplot(4,3,i);imagesc(x,y,D(:,:,i));axis image;end see also gaussian_simulation_cholesky_resim
gstat : call gstat from Matlab CALL : gstat(G) G : gstat data structure OR gstat parameter file on disk [pred,pred_var,pred_covar,mask,G]=gstat(G)
gstat_convert : convert between ascii/binary formats CALL : [data,x,y,dx,nanval]=gstat_convert(file,f,suf)
gstat_krig : Simple/Ordinary Kriging using GSTAT Call : [d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V,options); ndata : number of data observations ndims : dimensions of data location (>=1) nest : number of data locations to be estimated pos_known [ndata,ndims] : Locations of data observations val_known [ndata,1 or 2] : col1 : Data value as measured at 'pos_known' col2 : Data uncertainty as measured at 'pos_known' (optional) pos_est [nest ,ndims] : Location of data to be estimated V : Variogram model, e.g. '1 Sph(100)' %% Example 1 : 1D - NO DATA UNCERTAINTY profile on pos_known=10*rand(10,1); val_known=rand(size(pos_known)); % adding some uncertainty pos_est=[0:.01:10]'; V=deformat_variogram('1 Sph(1)'); [d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V); plot(pos_est,d_est,'r.',pos_est,d_var,'b.',pos_known,val_known(:,1),'g*') legend('SK estimate','SK variance','Observed Data') title(['V = ',V]) profile viewer %% Example 2 : 1D - Data Uncertainty pos_known=[1;5;10]; val_known=[0 3 2;0.001 1 0.001]'; % adding some uncertainty pos_est=[0:.01:10]'; V='1 Sph(2)'; [d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V); plot(pos_est,d_est,'r.',pos_est,d_var,'b.',pos_known,val_known(:,1),'g*') legend('SK estimate','SK variance','Observed Data') title(['using data uncertainty, V = ',V]) %% Example 3 : 2D estimation pos_known=[0 1;5 8;10 1]; val_known=[0 3 2]'; x=[0:.1:10]; y=[0:.1:10]; [xx,yy]=meshgrid(x,y); pos_est=[xx(:) yy(:)]; V='1 Sph(7)'; [d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V); subplot(1,2,1);scatter(pos_est(:,1),pos_est(:,2),10,d_est) axis image;title('Kriging mean') subplot(1,2,2);scatter(pos_est(:,1),pos_est(:,2),10,d_var) axis image;title('Kriging variance') %% Example 4 :SIMULATION pos_known=[0 1;5 1;10 1]; val_known=[0 3 2]'; pos_est=linspace(-1,11,200)';pos_est(:,2)=1; V='.0001 Nug(0) + .2 Gau(2)'; [d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V); plot(pos_est(:,1),d_est,'k-',pos_known(:,1),val_known(:,1),'r*') options.nsim=120; [d_sim,d_varsim,pos_sim]=gstat_krig(pos_known,val_known,pos_est,V,options); d=sortrows([pos_sim(:,1) d_sim],1); d_sim=d(:,2:(options.nsim+1)); d=sortrows([pos_sim(:,1) d_varsim],1); d_varsim=d(:,2); plot(pos_est(:,1),d_sim,'r-'); hold on plot(pos_est(:,1),d_est,'k-','linewidth',4) plot(pos_known(:,1),val_known(:,1),'b.') plot(pos_est(:,1),d_varsim-4,'k-') plot(pos_est(:,1),d_var-4,'r-') hold off
gstat_krig_blinderror : blind cross validation using gstat Call as gstat_krig is called : [d_est,d_var,be,d_diff]=gstat_krig_blinderror(pos_known,val_known,pos_est,V,options); [d_est,d_var] : Cross validation prediction [be] : Cross validation error /TMH 12/2005
hpd_2d : highest posterior density call : [levels]=hpd_2d(lik,hpd_level)cl lik=abs(peaks); levels=hpd_2d(lik,[.1:.2:.9]) contourf(lik,levels)
hpd_2d_point : highest posterior density plot from scattered data Call : [lik,levels,x,y]=hpd_2d_point(x_p,y_p,lik_p,x,y,hpd_levels,corner_type) See also : hpd_2d Example : nd=1300; x_p=randn(nd,1)*1; y_p=randn(nd,1)*1; lik_p = abs(peaks(x_p,y_p)); subplot(1,3,1); [lik,levels,x,y]=hpd_2d_point(x_p,y_p,lik_p); subplot(1,3,2); [lik,levels,x,y]=hpd_2d_point(x_p,y_p,lik_p,[],[],[.1:.1:1]); subplot(1,3,3); [lik,levels,x,y]=hpd_2d_point(x_p,y_p,lik_p,-1:.1:1,-1:.1:1,[.2 0.5 1.0]);
icdf : inverse cimulative density function find data value associated to an pk quantile. CALL : d_obs=icdf(data,pk_obs)
indicator_transform_con : transform continous data into indicator CALL : [id,lev]=indicator_transform_con(d,lev) [d] : data [lev] : indicator transform of list lev#s : Prob(zi<lev(i)) if not specified level is chosen to match qantiles .1,.2,...,.9
indicator_transform_dis : transform discrete data into indicator CALL : [id,lev]=indicator_transform_dis(d,ident) [d] : data [ient] : Transform data into a binary discrete data, such that Prob(zi=ident(i)) if not specified level is chosen all unique4 discrete identifiers are chosen.
inscore : normal score BACK transform CALL : d=inscore(d_nscore,o_nscore) d_nscore : normal score values to be back transformed using the 'o_nscore' object, obtained using 'nscore' See also nscore.m
isorange : convert range scaling to gstat/gslib range settings for example V = '1.0 Sph(0.7,0.8,0.9)'; Vgstat=isorange(V); format_variogram(Vgstat,1) Used when 'options.isorange=1'
krig : Simple/Ordinar/Trend Kriging Call : [d_est,d_var,lambda,K,k,inhood]=krig(pos_known,val_known,pos_est,V,options); ndata : number of data observations ndims : dimensions of data location (>=1) nest : number of data locations to be estimated pos_known [ndata,ndims] : Locations of data observations val_known [ndata,1 or 2] : col1 : Data value as measured at 'pos_known' col2 : Data uncertainty as measured at 'pos_known' (optional) pos_est [N ,ndims] : Location of N data locations to be estimated V : Variogram model, e.g. '1 Sph(100)' val_0 : A priori assumed data value (default=mean(val_known)) Example 1D - NO DATA UNCERTAINTY profile on pos_known=10*rand(10,1); val_known=rand(size(pos_known)); % adding some uncertainty pos_est=[0:.01:10]'; V=deformat_variogram('1 Sph(1)'); [d_est,d_var]=krig(pos_known,val_known,pos_est,V); plot(pos_est,d_est,'r.',pos_est,d_var,'b.',pos_known,val_known(:,1),'g*') legend('SK estimate','SK variance','Observed Data') %title(['V = ',V]) profile viewer See source code for more examples see also : krig_npoint, krig_blinderror
krig_blinderror : Cross validation blind error CALL : [d_est,d_var,be,d_diff,L,L2]=krig_blinderror(pos_known,val_known,pos_est,V,options,nleaveout)
krig_covar_lik : Calculates the likelihood tha V is consistent with data observations Call : L=krig_covar_lik(pos_known,val_known,V,options) Can be used to infer covariance properties (range, sill, anisotropy,...)
krig_crossval_1d_exh CALL : [V_L,B_be,ML,Mbe,ML2,par2_range,nugfrac_range]=krig_crossval_1d_exh(pos_known,val_known,V,options); function [V_L,V_be,ML,Mbe,ML2,par2_range,nugfrac_range]=krig_crossval_1d_exh(pos_known,val_known,V,options);
krig_npoint : as 'krig' butfor multiple estimation position. [d_est,d_var,options]=krig_npoint(pos_known,val_known,pos_est,V,options); As krig, but allowing size(pos_known,1)>1 See also : krig
krig_optim_1d_exh CALL : [V_L,B_be,ML,Mbe,ML2,par2_range,nugfrac_range]=krig_optim_1d_exh(pos_known,val_known,V,options);
krig_optim_mcmc CALL : [V_new,be_acc,L_acc,par2,nugfrac_acc,V_acc,options]=krig_optim_mcmc(pos_known,val_known,V,options)
krig_optim_ml : MCMC Maximum likelihood optimization Call : [Vop2,Vop1,be,L,par2,nugfrac,Vall]=krig_optim_ml(pos_known,val_known,V,options)
least_squares_inversion, one data set : Tarantola equations (16-17) CALL : [m_est,Cm_est]=least_squares_inversion(G,Cm,Cd,m0,d0); See also : gaussian_simulation_cholesky
least_squares_oneone : Least squares inverison using only scalar operations. (only valid when offdiag(Cd)=0) See Tarantola (2005), Inverse Problem Theory, page 198, Ch 6. Call : [m_est,sigma2,Cm_est]=least_squares_oneone(G,Cm,Cd,m0,d_obs)
least_squares_partition_data : least sq. inversion using partitioning See Tarantola (2005), page 197, eqn. 6.211 or 6.212. Least squares inversion by partitioning into to data subsets with independent data covariance ! This can be very fast if the number of data observations is large, and large compared to the number of model parameters. CALL : [m_est,Cm_est]=least_squares_partition_data(G,Cm,Cd,m0,d_obs,nsubsets,use_eq);
least_squares_slice : least sq. inversion using partitioning CALL : [m_est,Cm_est]=least_squares_slice(G,Cm,Cd,m0,d0,id,im);
mgstat_demo : demos illustrating the use of mGstat Try some of the following demos: mgstat_demo('mgstat'); % mgstat demo, illustrating the native matlab % algorithms mgstat_demo('gstat'); % demos using gstat mgstat_demo('visim'); % demos using visim mgstat_demo('sgems'); % demos using sgems mgstat_demo('snesim'); % demos using snesim mgstat_demo('all'); % runs all of the available demos.
mgstat_set_path : set path to all mGstat set path to : mGstat_Install_Dir/snesim mGstat_Install_Dir/visim mGstat_Install_Dir/sgems mGstat_Install_Dir/fast mGstat_Install_Dir/misc
mgstat_verbose : list verbose information to the console Call: mgstat_verbose(txt,verbose) txt [string] : text to be displayed verbose [integer] (def=0) : increase to see more information 'vlevel' must be set in the mgstat_verbose.m m-file. All entries with vebose>vlevel are displayed
nanmean : mean of data, ignoring NaN's call : meandata=nanmean(data) data [n-dimensional array] meandata [scalar] TMH(tmh@gfy.ku.dk), 2001
nanstd : std of data, ignoring NaN's call : stddata=nanstd(data) data [n-dimensional array] stddata [scalar] TMH(tmh@gfy.ku.dk), 2001
nanvar : var of data, ignoring NaN's call : vardata=nanvar(data) data [n-dimensional array] vardata [scalar] TMH(tmh@gfy.ku.dk), 2001
NORMCDF returns normal cumulative distribtion function cdf = normcdf(x,m,s); Computes the CDF of a the normal distribution with mean m and standard deviation s default: m=0; s=1; x,m,s must be matrices of same size, or any one can be a scalar. see also: NORMPDF, NORMINV
NORMINV returns inverse cumulative function of the normal distribution x = norminv(p,m,s); Computes the quantile (inverse of the CDF) of a the normal cumulative distribution with mean m and standard deviation s default: m=0; s=1; p,m,s must be matrices of same size, or any one can be a scalar. see also: NORMPDF, NORMCDF
NORMPDF returns normal probability density pdf = normpdf(x,m,s); Computes the PDF of a the normal distribution with mean m and standard deviation s default: m=0; s=1; x,m,s must be matrices of same size, or any one can be a scalar. see also: NORMCDF, NORMINV
nscore : Normal score transform CALL : [d_nscore,o_nscore]=nscore(d,w1,w2,dmin,dmax,DoPlot) INPUT PARAMETERS : Required : d : array of data to transformed into normal scorres. Optional : w1,dmin : Extrapolation options for lower tail. w1=1 -> linear interpolation w1>1 -> Gradual power interpolation w2,dmax : Extrapolation options for lower tail. w1=1 -> linear interpolation w1<1 -> Gradual power interpolation See Goovaerts page 280-281 for details DoPlot : ==1 --> The choice of CCPDF to be used for normal score transformation is plotted OUTPUT PARAMETERS d_nscore : normal score transform of input data o_nscore : normal socre object containing information needed to perform normal score backtransform. See also : inscore
plot_scale : plot scale to figure Call: plot_scale(ax,len,pos,FontSize) ax: axis (gca) len [1,2]: length of scale length in each direction pos [1],[2],[3] or [4]: Position of scale plot. [NW],[SW],[NE],[SE] Example imagesc(peaks); hold on; plot_scale(gca,[15 15],3); hold off; axis image
file=ppp.m : Creates a lx,ly cm plot call function ppp(lx,ly,Fsize,x1,y1), (lx,ly) : WIDTH and HEIGHT of plot in cm Fsize : Font Size (x1,y1) : Lower left corner of plot (relative to lower left corner of paper) (C) Thomas Mejer Hansen, 1997-2001, tmh@gfy.ku.dk
precal_cov : Precalculate covariance matrix CALL : cov=precal_cov(pos1,pos2,V,options); pos1 [ndata1,ndims] : Location of data to be estimated pos2 [ndata2,ndims] : Location of data to be estimated V [struct] : Variogram structure cov [ndata1,ndata1] : Covariance matrix Ex: x=[1:1:10]; y=[1:1:20]; [xx,yy]=meshgrid(x,y); cov=precal_cov([xx(:) yy(:)],[xx(:) yy(:)],'1 Sph(5,.1,0)');
print_mul : prints both EPS and PNG figures of current plot Call : print_mul('test') : prints test.eps and test.png In case 'mogrify' is available on the system the png file will be trimmed and optionall A specific color will be made transparent : print_mul('test',red) also creates trim_test.png print_mul('test',1) also creates trim_test.png, with transparent white color print_mul('test','red') also creates trim_test.png, with transparent red color /TMH 12/2005
progress_txt : console based progress bar Ex1 : for i=1:10000; progress_txt(i,10000,'Ciao'); end Ex1 : for i=1:10; for j=1:10; for k=1:10; progress_txt([i j k],[10 100 1000],'i','j','k'); end end end TMH/2005, thomas@cultpenguin.com
read_arcinfo_ascii : Reads ascii formatted ArcInfo files Call : [data,x,y,dx,nanval,x0,y0,xll,yll]=read_arcinfo_ascii(filename);
read_bin : Reads a binary file to matlab CALL : function [dataout]=read_bin(fileid,nx,nz,fchar,format,b_order) REQUIRED fileid nx OPTIONAL nz : Number of samples in 2nd direction fchar (scalar) : (==1)Remove F77 chracters format (string) : 'float32' [default] or 'int16' or 'int32',... b_order : set byteorder : '0' : Little Endian '1' : Big endian /TMH 2006
read_eas : reads an GEO EAS formatted file into Matlab. Call [data,header,title]=read_eas(filename); TMH (tmh@gfy.ku.dk)
read_gstat_par : Reads gstat.par file into Matlab data structure CALL : G = read_gstat_par('ex01.cmd'); KNOWN BUGS (FEB 2004) Cannot load covariogram : covariogram(data1,data2) Semivariogram line : Can only contain veriogram, not filename
read_peterl : reads an PETREL ascii point file Call [data,header]=read_eas(filename); TMH (tmh@gfy.ku.dk)
FUNCTION : [fxs,fys,fzs,nx,ny,nz,x0,y0,z0,h,timefile,velfile,reverse,maxoff]=read_punch_par(filename); Purpose : Reads PAR file from PUNCH program (HOLE PROGRAM) TMH 09/1999;
read_surfer_grid : Read Surfer ASCII GRD file CALL : [data,x,y]=read_surfer_grid(filename); IN: filename [char] :string OUT: data [ny,nx] x [nx] y [ny]
rot2 : 2D coordiante transformation Call : htrans=rot2(h,ang,ani,dir) h :[hx,hy] location ang : angle in radians ani : anisotropy factor dir : 'direction' =1, normal transform, <>1, inverse transform TMH/2005
scatter_hpd : calculate 2D HPD region [prob,levels,x_arr,y_arr,f2,c2]=scatter_hpd(x,y,p,p_levels,x_arr,y_arr)
semivar : calcualte semivariogram [binc,sv,bin_array,svM]=semivar(loc,val,bin_array); loc : [ndim,n]
semivar_exp : Calculate experimental variogram [gamma,h,ang_center,gamma_cloud,h_cloud]=semivar_exp(pos,val,nbin,nbinang) pos : [ndata,ndims] val : [ndata,ndata_types] nbin : [integer] number of bins on distance anxes [array] if specified as an array, this is used. nbinang : [integer] number of arrays between 0/180 degrees (def=1) [array] array of angles. Example : load jura data dwd=[mgstat_dir,filesep,'examples',filesep,'data',filesep,'jura',filesep]; [p,pHeader]=read_eas([dwd,'prediction.dat']); idata=6;dval=pHeader{idata}; pos=[p(:,1) p(:,2)]; val=p(:,idata); figure;scatter(pos(:,1),pos(:,2),10,val(:,1),'filled'); colorbar;title(dval);xlabel('X');ylabel('Y');axis image; Example isotrop: [garr,hc]=semivar_exp(pos,val); plot(hc,garr); xlabel('Distance (m)');ylabel('semivariance');title(dval) Exmple directional [garr,hc,hangc,gamma,h]=semivar_exp(pos,val,20,4); plot(hc,garr); legend(num2str(180*hangc'./pi)) xlabel('Distance (m)');ylabel('semivariance');title(dval)
semivar_exp_gstat : Experimental semivariance using GSTAT CALL : [gamma,hc,np,av_dist]=semivar_exp_gstat(pos,val,angle,tol,width,cutoff) IN : pos : [ndata,ndims] : location of data val : [ndata,1] : data values angle [1] : angle (degrees) tol [1] : angle tolerance around 'angle' (degrees) width[1] : width of bin use to average semivariance cutoff[1] : max distance for whoch to compute semivariance 'angle' and 'tol' are optional defults: angle=0; tol=180 OUT : gamma : semivariance hc : Seperation distance np : Number of points for each seperation distance av_dist : Average distance EXAMPLE : % GET JURA DATA dwd=[mgstat_dir,filesep,'examples',filesep,'data',filesep,'jura',filesep]; [p,pHeader]=read_eas([dwd,'prediction.dat']); idata=6;dval=pHeader{idata}; pos=[p(:,1) p(:,2)]; val=p(:,idata); figure;scatter(pos(:,1),pos(:,2),10,val(:,1),'filled'); colorbar;title(dval);xlabel('X');xlabel('Y');axis image; % ISOTROP SEMIVARIOGRAM [gamma,hc]=semivar_exp_gstat(pos,val); figure;plot(hc,gamma); title(dval);xlabel('Distance (m)');ylabel('Semivariance'); % ANISOTROPIC SEMIVARIOGRA hang=[0 45 90]; tol=10; % Angle tolerance clear gamma; figure for ih=1:length(hang); [gamma(:,ih),hc]=semivar_exp_gstat(pos,val,hang(ih),tol); end figure;plot(hc,gamma); title(dval);xlabel('Distance (m)');ylabel('Semivariance'); legend(num2str(hang')); % ANISOTROPIC SEMIVARIOGRAM (2) width=[0.1]; cutoff=[4]; hang=[0 45 90]; tol=10; % Angle tolerance clear gamma; for ih=1:length(hang); [gamma,hc]=semivar_exp_gstat(pos,val,hang(ih),tol,width,cutoff); p(ih)=plot(hc,gamma);hold on if ih==1, set(p(ih),'color',[0 0 0]);end if ih==2, set(p(ih),'color',[0 1 0]);end if ih==3, set(p(ih),'color',[0 0 1]);end end hold off title(dval);xlabel('Distance (m)');ylabel('Semivariance'); legend(num2str(hang'));
semivar_synth : synthethic semivariogram [sv,d]=semivar_synth(V,d,gstat); V : Variogram model d : seperation (array or matrix) gstat : [0] use SGeMS semivariogram definitions (default) gstat : [1] use GSTAT semivariogram definitions Call ex : [sv,d]=semivar_synth('0.1 Nug(0) + 1 Gau(1.5)',[0:.1:6]);plot(d,sv) or : V(1).par1=1;V(1).par2=1.5;V(1).type='Gau'; V(2).par1=0.1;V(2).par2=0;V(2).type='Nug'; [sv,d]=semivar_synth(V,[0:.1:6]);plot(d,sv)
sgsim : sequential Gaussian simulation Call : [sim_mul]=sgsim(pos_known,val_known,pos_sim,V,options);% all arguments are the same as for 'krig.m', except the number of generated realizations can be set using : options.nsim=10; (default is options.nsim=1) note: this algorithm is very slow and for teaching purposes if you intend to simulate large fields use either the 'gstat' or 'mgstat' simulation options. see also: krig
space2char : replace oen character with another in string txtout=space2char(txt,charout,charin); Example : txt='Hello nice world'; space2char(txt) ans = Hello_nice_world space2char(txt,'+') ans = Hello+nice+world space2char(txt,'+','l') ans = He++o nice wor+d
strip_space : strip leading/tailing spaces from string CALL : txt=strip_space(txt,type); txt[string] type[integer] : [0] strip leading and trailing space (default); type[integer] : [1] strip leading space; type[integer] : [2] strip trailing space; EX : a=' Hei Ho Here We Go '; ['''',strip_space(a),''''] ans = 'Hello World' % strip leading space ['''',strip_space(a,1),''''] % strip trailing space ['''',strip_space(a,2),'''']
suptitle : Puts a title above all subplots. SUPTITLE('text') adds text to the top of the figure above all subplots (a "super title"). Use this function after all subplot commands.
title_alt : Alternate title positioning Call : title_alt(string,isub,location,dw,w_out) title [str] : title string isub [int] : Number of subplot. 1-->'a)' is prepended to the title 2-->'b)' is prepended to the title.. 0--> use original string [Default] location [str] : 'NorthWestInside' 'NorthWestOutside' [Default] 'NorthEastInside' 'NorthEastOutside' dw [rea] : distance from edge to label, relative to plot size [default dw=0.01]; w_out [rea] : distance from edge to horizontal edge of label, when location='*Outsize', relative to plot size. [default dw=0.2]; EXAMPLE : figure for i=1:5; subplot(2,3,i) imagesc(peaks(i*10)) title_alt('Title',i); end figure subplot(2,2,1);title_alt('NorthWestInside',i,'NorthWestInside'); subplot(2,2,2);title_alt('NorthWestOutside',i,'NorthWestOutside'); subplot(2,2,3);title_alt('NorthEastInside',i,'NorthEastInside'); subplot(2,2,4);title_alt('NorthEastOutside',i,'NorthEastOutside'); (C) TMH/2007
VONK2D.M : 2D Von Karman Distribution Call : [randdata,x,z,data,expcorr]=vonk2d(rseed,dx,dz,ax,az,ix,iz,pop,med,nu,vel,frac) rseed : Random Seed number dx,dz : Spatial distance ax,az : Horizontal, vertical lengthscale ix,iz : size of model in same scale as ax,az nu : Hurst Number pop : Population, [1]:Gaussian [2]:PDF med : Medium , [1]:Gaussian [2]:Exponential [3]: Von Karman [4]:Pink [5]:Brown vel : Scalar or vector of velocities, For pop=pdf,v(1) is used as +/-max velocity of input field frac : fraction assigned to each velocity (normalized), same size as vel (C) 1998-2001 Thomas Mejer Hansen (tmh@gfy.ku.dk) UPDATED APR 05 1999 /TMH Octave 2.0.15 and Matlab 5.3 compliant
watermark : _add watermark to figure : watermark(txt,FontSize); Call watermark(txt); watermark(txt,FontSize); ax=watermark(txt,FontSize,position);
write_arcinfo_ascii : Writes ascii formatted ArcInfo files CALL : [data,x,y,dx,nanval]=write_arcinfo_ascii(filename,data,x,y,nannumber,xll,yll); filename [char] :string data [ny,nx] x [nx] y [ny] nannumber [1] : can be left empty []. Optional. xll [char] : 'CENTER'(def) or 'CORNER'. Optional. yll [char] : 'CENTER' or 'CORNER'. if 'xll' is set, yll=xll.
write_bin.m CALL : write_bin(filename,variable,fchar,format,b_order); REQUIRED : filename (string) variable : to be written to a binary file; OPTIONAL fchar (scalar) : [1] Remove F77 chracters [0,defailt] do nothing format (string) : 'float32' [default] or 'int16' or 'int32',... b_order : set byteorder : '0' : Little Endian
write_eas : writes a GEO EAS formatted file into Matlab. Call write_eas(filename,data,header,title,nanValue); filename [string] data [ndata,natts] header [structure{natts}] : header values for data columns title [string] : optional title for EAS file nanValue [float] : NaN value TMH (tmh@gfy.ku.dk)
write_gstat_par : write gstat.par file from Matlab structure CALL : filename=write_gstat_par(G,filename); input --: G [struct]: gstat matlab structure filename [string] : optinal filename output --: filename [string] : filename of command file written to disk
write_punch_par(filename,timefile,velfile,fxs,fys,fzs,nx,ny,nz,x0,y0,z0,h,reverse,maxoff); Purpose : WRITES OUT PAR-FILE FOR USE WITH 'PUNCH' (John Hole) CALL write_punch_par(filename,timefile,velfile,fxs,fys,fzs,nx,ny,nz,x0,y0,z0,h,reverse,maxoff); filename [string] : Name of par-file timefile [string] : Name of output-time file velfile [string] : Name of input velocity file fxs [scalar] : fys [scalar] : fzs [scalar] : nx [scalar] : ny [scalar] : nz [scalar] : x0 [scalar] : y0 [scalar] : z0 [scalar] : h [scalar] : reverse [scalar] : maxxoff [scalar] : Maximum offset TMH 09/1999
© 2004-2010 Thomas Mejer Hansen. | This site is hosted by |