Functions in this group are designed to check periodogram for data series in a given direction or a list of directions.
kzpdr samples the data of wave field, and outputs the average
pattern of periodogram for series in a given direction. A collection of
these pattern records will be sent to
to estimate the wave frequecies and directions.
1 2 3
Data array. Only 2 dimensional arrays are allowed for current version.
Vector or single numeric value in radians.
TRUE or FLASE. Flag for outputting designed periodogram plot or not.
Defaults to FLASE. In
Logic. Defaults to TRUE, i.e., check the given directions and their orthogonal opposition at the same time.
kzpdr is used to sample the spatial data and generates
periodograms in orthogonal direction pairs; the frequencies of spikes
for each directional periodogram are identified and recorded as the
function output. The spike pattern of average periodograms for spatial
directions can help to identify wave frequencies and directions.
kzpdr.3d will provide 3D perspective plot as the
global view for periodograms of data series in a given direction.
The returned data list of function
kzpdr includes the
data frame for frequencies of spikes on mean periodograms of each
checked direction. It also includes a vector recording the md5sum
value of the spatial wave data array for internal control.
kzpdr will output the periodogram plots when
plot is set as TRUE. The frequencies of marked spikes
will also be print out for each sampling direction.
kzpdr.3d returns back the data frame for re-gridded mean
periodogram for data series in given direction, as showed in the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
dx <- 300 dy <- 300 b <- expand.grid(x=1:dx, y=1:dy) q1 <- pi/3; f1 <- 0.2; b$v1 <- sin(f1*2*pi*(b$x*cos(q1)+b$y*sin(q1))+100*runif(1)) q2 <- pi/6; f2 <- 0.05; b$v2 <- sin(f2*2*pi*(b$x*cos(q2)+b$y*sin(q2))+100*runif(1)) a <- array(0,c(dx,dy)) a[as.matrix(b[,1:2])] <- b$v1 + 1.5*b$v2 persp(1:dx, 1:dy, a, theta=90, phi=-110, ticktype="detailed", col="lightblue") a <- a + 5*matrix(rnorm(dx*dy,0,1),ncol=dy) persp(1:dx, 1:dy, a, theta=90, phi=-110, ticktype="detailed", col="lightblue") # It may take about 30 seconds # o <- kzpdr.3d(a, -pi/6) # Load pre-saved data to save running-time data(kzpdr.demo); # sampling, it may take a few minutes # system.time(kzpdr.demo <- kzpdr(a, pi/12, pair=FALSE, plot=TRUE)) # system.time(kzpdr.demo <- kzpdr(a, pi/12, plot=TRUE)) # system.time(kzpdr.demo <- kzpdr(a, c(0, pi/6, pi/4, pi/3), plot=TRUE)) kzpdr.spikes(kzpdr.demo) # For identification of the wave parameters, see kzpdr.estimate
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.