Learn R Programming

fields (version 1.7.2)

vgram.matrix: Computes a variogram from an image

Description

Computes a variogram for an image taking into account different directions and returning summary information about the differences in each of these directions.

Usage

vgram.matrix(dat, R=5, nsum=1:8, collapse=TRUE, dx = 1,dy = 1 )

Arguments

Value

If collapse=T A list with components: d, a vector of distances for the differences, and vgram, the variogram values. This is the traditional variogram ignoring direction. If collapse=F A list with components: d, a vector of distances for the differences, ind, a two column matrix giving the x and y increment used to compute the differences, stats, the result of applying the stats function to each set of differences, and vgram, the mean of the differences

Details

When collapse=F this function is designed to look for departures from isotropy by separating the variogram differences according to orientation. For small R this runs efficiently because the differences are found by sub-setting the image matrix.

For example, suppose that a row of the ind matrix is (2,3). The variogram value associated with this row is the mean of the differences (X(i,j)- X( i+2,j+3))**2 for all i and j. (Here X(.,.) are the values for the spatial field.) In this example d= sqrt(13) and there will be another entry with the same distance but corresponding to the direction (3,2). plot.vgram.matrix attempts to organize all the different directions into a coherent image plot.

See Also

vgram

Examples

Run this code
# variogram for Lennon image.
data(lennon)
out<-vgram.matrix( lennon) 

plot( out$d, out$vgram, xlab="separation distance", ylab="variogram") 
# image plot of vgram values by direction.  

# look at different directions 
out<-vgram.matrix( lennon, R=10, collapse=FALSE) #this takes a bit of time 

set.panel(2,1)
plot( out$d, out$vgram) 
plot(out$d, out$vgram.robust) 

#image plot of variogram values for different directions. 
set.panel(1,1)
plot.vgram.matrix( out)
# John Lennon appears remarkably isotropic!

Run the code above in your browser using DataLab