Learn R Programming

RandomFields (version 3.0.35)

RFfractaldim: RFfractaldimension

Description

The function estimates the fractal dimension of a process

Usage

RFfractaldim(x, y = NULL, z = NULL, data, grid, 
 bin= seq(min(ct$x[2, ]) / 2, 
          min(ct$x[2,] * ct$x[3,] / 4, vario.n * min(ct$x[2,]) + 1),
          min(ct$x[2,])),
 vario.n=5,
 sort=TRUE,
 fft.m = c(65, 86), ## in fft.max.length=Inf, fft.max.regr=150000,
 fft.shift = 50, # in method=c("variogram", "fft"), mode=c("plot", "interactive"),
 pch=16, cex=0.2, cex.main=0.85,
 printlevel = RFoptions()$general$printlevel,
 height=3.5,
 ...)

Arguments

x
matrix of coordinates, or vector of x coordinates; if x is not given a grid with unit grid length is assumed
y
vector of y coordinates
z
vector of z coordinates
data
the values measured.
grid
determines whether the vectors x, y, and z should be interpreted as a grid definition, see Details. grid does not apply for T.
bin
sequence of bin boundaries for the empirical variogram
vario.n
first vario.n value of the empirical variogram are used for the regression fit that are not NA.
sort
If TRUE then the coordinates are permuted such that the largest grid length is in x-direction; this is of interest for algorithms that slice higher dimensional fields into one-dimensional sections.
fft.m
numeric vector of two components; interval of frequencies for which the regression should be calculated; the interval is given in percent of the range of the frequencies in log scale.
fft.max.length
The first dimension of the data is cut into pieces of length fft.max.length. For each piece the FFT is calculated and then the average for all pieces is taken. The pieces may overlap, see the argument fft.shift.
fft.max.regr
If the fft.m is too large, parts of the regression fit will take a very long time. Therefore, the regression fit is calculated only if the number points given by fft.m is less than fft.max.regr.
fft.shift
This argument is given in percent [of fft.max.length] and defines the overlap of the pieces defined by fft.max.length. If fft.shift=50 the WOSA estimator is given; if fft.shift=100 no overlap exist.
method
list of implemented methods to calculate the fractal dimension; see Details
mode
character. A vector with components 'nographics', 'plot', or 'interactive': [object Object],[object Object],[object Object] Usually only one mode is given. Two modes may make sense in the combination c("pl
pch
vector or scalar; sign by which data are plotted.
cex
vector or scalar; size of pch.
cex.main
The size of the title in the regression plots.
printlevel
integer. If printlevel is 0 nothing is printed. If printlevel=1 error messages are printed. If printlevel=2 warnings and the regression results are given. If printlevel>2 tracing information is given
height
height of the grahics window
...
graphical arguments

Value

  • The function returns a list with elements vario, fft corresponding to the 2 methods given in the Details.

    Each of the elements is itself a list that contains the following elements.

  • xthe x-coordinates used for the regression fit
  • ythe y-coordinates used for the regression fit
  • regrthe return list of the lm.
  • smsmoothed curve through the (x,y) points
  • x.uNULL or the restricted x-coordinates given by the user in the interactive plot
  • y.uNULL or y-coordinates according to x.u
  • regr.uNULL or the return list of lm for x.u and y.u
  • Dthe fractal dimension
  • D.uNULL or the fractal dimension corresponding to the user's regression line

Details

The function calculates the fractal dimension by various methods:
  • variogram method % \item box counting % \item min / max method
  • Fourier transform

References

variogram method
  • Constantine, A.G. and Hall, P. (1994) Characterizing surface smoothness via estimation of effective fractal dimension.J. R. Statist. Soc. Ser. B56, 97-113.
fft
  • Chan, Hall and Poskitt (1995)

See Also

RMmodel, RFhurst

Examples

Run this code
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
##                   RFoptions(seed=NA) to make them all random again
x <- seq(0, 10, if (interactive()) 0.001 else 1)
z <- RFsimulate(RMexp(), x)
if (interactive()) str(RFfractaldim(data=z))
FinalizeExample()

Run the code above in your browser using DataLab