RandFieldStructFuncs.jl

Structure functions in Julia
Author emmt
Popularity
1 Star
Updated Last
5 Months Ago
Started In
March 2023

Structure functions of random fields in Julia

Build Status Build Status Coverage

This package is to deal with structure functions of random fields with stationary increments in Julia.

The structure function of a random field φ is defined by:

Dᵩ(Δr) = ⟨[φ(r + Δr) - φ(r)]²⟩

where ⟨…⟩ denotes expectation while r and Δr are absolute and relative positions. If φ has stationary increments, its structure function does not depend on r, only on Δr.

This package let you build structure function objects, generate the associated covariance matrix, and simulate random fields having a given structure function Dᵩ and piston standard deviation σ. If σ > 0 holds, the covariance of φ is invertible.

This LaTeX file provides some mathematical background.

Usage

To measure empirically a structure function:

# Create structure function object with support S.
A = EmpiricalStructFunc(S)
for ϕₜ in Φ
    # Integrate structure function.
    push!(A, ϕₜ)
end
T = nobs(A);     # get the number of observations
D_ϕ = values(A); # compute the structure function

At any moment:

a = A.den; # get the denominator: `a = S ⊗ S`
fft_b =  A.num; # get the numerator in the frequency domain

It is also possible to define theoretical structure functions. For example, Kolmogorov structure function for Fried's parameter r0 is built by:

D = KolmogorovStructFunc(r0);

which yields a callable object D such that D(r) returns the value of the structure function at position r. Note that r and r0 are assumed to have the same units if r0 has no units; otherwise; r must have the same unit dimensions as r0.

Used By Packages

No packages found.