Skip to content

fDependent

Eric Swanson edited this page Apr 6, 2023 · 5 revisions

The fDependent structure contains output from cBathy phase 1 in which all results are expressed still as a function of frequency. Each field will include maps of results that have the same number of rows as are in ym, the same number of columns that are in xm, and the number of planes (maps) is equal to nKeep, the number of frequencies that the user has asked to save in the settings file. In the case below, the user asked to save the four strongest frequencies so the third array dimension is 4 and results are ordered from strongest to weakest signals. Note that the selection of the strongest frequencies is made on a point by point basis during analysis so that any plane of each variable (i.e. k(:,:,1)) will likely not refer to a single frequency but will instead refer to the frequency of the dominant signal at each analysis point. The field fB contains the actual frequencies selected for each location and plane5. Fields for which no satisfactory solution was obtained are left as nan’s. This can be relatively common. The fDependent structure has the following fields:

bathy.fDependent =

fB: [41x43x4 double] 
k: [41x43x4 double] 
a: [41x43x4 double]
hTemp: [41x43x4 double] 
kErr: [41x43x4 double] 
aErr: [41x43x4 double] 
hTempErr: [41x43x4 double] 
skill: [41x43x4 double] 
dof: [41x43x4 double]
lam1: [41x43x4 double]
NPixels: [41x43x4 double]
NCalls: [41x43x4 double]
kSeed: [41x43x4 double]
aSeed: [41x43x4 double]
camUsed: [41x43x4 double]

fB

fB contains the actual frequencies selected at each location for each plane of analysis (final dimension of the 3D arrays).

k

k contains the magnitude of the wavenumber (2π divided by the wavelength)

a

a contains the angle of wave propagation in a “from” sense, in radians (for example, a = -­0.5 means that those waves are arriving from 0.5 radians CW from normal (28° from the right of normal, looking offshore, since negative angles correspond to CW from the beach normal).

htemp

hTemp is the depth computed for this frequency-­‐wavenumber pair using equation (1). These depths are not used in subsequent cBathy depth analysis but are included for diagnostic purposes.

error metrics

For each variable, an associated error is also computed and saved as maps of kErr,aErr and hTempErr. In addition, the skill and number of degrees of freedom of the fit are saved as skill and dof. The skill indicates the percentage of the variance explained by fitting the local phase data to a planar surface (equation (3) in HPH13). Skill is used as a threshold quality control condition (threshold level included in the settings file). Finally, lam1 (the normalized eigenvector described in section 2.1 of HPH13) is recorded and also serves as a quality control variable to distinguish useful signals from noise.

Five new sub-fields have been added in version 2.0.

NPixel

NPixels shows the number of pixels used in each tile, i.e. for each computation of k-alpha at any xm-ym. In contrast to version 1.0, version 2.0 uses variable size tiles depending on the expected wavelength of the waves being analyzed.

NCalls

NCalls simply counts the number of iterations for the nonlinear fitting at each analysis location and was used to guide efficiency.

kSeed and aSeed

Version 2.0 includes a much-improved algorithm for finding seed values of k and alpha for the nonlinear search. These values are records in the fields kSeed and aSeed to help understand the performance of this seed algorithm.

camUsed

camUsed shows which camera was used for each tile. This is mostly relevant at camera seams where more than one camera spans the tile and only the dominant camera is used.

plotting example

Any variable can be plotted using (for example)

imagesc(bathy.ym, bathy.xm, bathy.fDependent.hTemp(:,:,1).

Remember that this will not plot results from a single frequency (important for wave properties like wave angle). See debugging for support routines.