DataDrivenAcoustics.BasicDataDrivenUnderwaterEnvironmentType
struct BasicDataDrivenUnderwaterEnvironment{T1<:(Matrix), T2, T3, T4, T5<:UnderwaterAcoustics.ReflectionModel, T6<:UnderwaterAcoustics.ReflectionModel, T7} <: DataDrivenUnderwaterEnvironment

Create an underwater environment for data-driven physics-based propagation models by providing locations, acoustic measnreuments and other known environmental and channel geomtry knowledge.

  • locations: location measurements (in the form of matrix with dimension [dimension of a single location data x number of data points])
  • measurements: acoustic field measurements (in the form of matrix with dimension [1 x number of data points])
  • soundspeed: medium sound speed (default: missing)
  • frequency: source frequency (default: missing)
  • waterdepth: water depth (default: missing)
  • salinity: water salinity (default: 35)
  • seasurface: surface property (dafault: Vacuum)
  • seabed: seabed property (default: SandySilt)
  • tx: source location (default: missing)
  • set dB to false if measurements are not in dB scale (default: true)
DataDrivenAcoustics.GPRType
struct GPR{T1, T2, T3, T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}

A Gaussian process regression model to model acoustic propagation.

DataDrivenAcoustics.RayBasis2DType
struct RayBasis2D{T1, T2, T3<:(AbstractVector), T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}

A 2D plane wave RBNN formualtion.

  • env: data driven underwater environment

  • calculatefield: function to estimate acoustic field (default: RayBasis2DCal)

  • nrays: number of rays (default: 60)

  • θ: azimuthal angle of arrival rays in radian (default: missing)

  • A: amplitude of arrival rays (default: missing)

  • ϕ: phase of a rays in radian (default: missing)

  • k: angular wavenumber in rad/m (default: missing)

  • trainable: trainable parameters (default: empty)

  • ini_lr: initial learning rate (default: 0.001)

  • trainloss: loss function used in training and model update (default: rmseloss)

  • dataloss: data loss function to calculate benchmarking validation error for early stopping (default: rmseloss)

  • ratioₜ: data split ratio = number of training data/(number of training data + number of validation data) (default: 0.7)

  • set seed to true to seed random data selection order (default: false)

  • maxepoch: maximum number of training epoches allowed (default: 10000000)

  • ncount: maximum number of tries before reducing learning rate (default: 5000)

  • model training ends once learning rate is smaller than minlearnrate (default: 1e-6)

  • learning rate is reduced by reducedlearnrate once ncount is reached (default: 10)

  • set showloss to true to display training and validation errors during the model training process, if the validation error is historically the best. (default: false)

DataDrivenAcoustics.RayBasis2DCurvType
struct RayBasis2DCurv{T1, T2, T3<:(AbstractVector), T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}

A 2D plane wave RBNN formualtion by modeling curvature of wavefornt.

  • env: data driven underwater environment

  • calculatefield: function to estimate acoustic field (default: RayBasis2DCurvCal)

  • nrays: number of rays (default: 60)

  • θ: azimuthal angle of arrival ray in radian (default: missing)

  • A: amplitude of arrival rays (default: missing)

  • ϕ: phase of a rays in radian (default: missing)

  • d: distance in meters to help in modeling curvature of wavefornt (default: missing)

  • k: angular wavenumber in rad/m (default: missing)

  • trainable: trainable parameters (default: empty)

  • ini_lr: initial learning rate (default: 0.001)

  • trainloss: loss function used in training and model update (default: rmseloss)

  • dataloss: data loss function to calculate benchmarking validation error for early stopping (default: rmseloss)

  • ratioₜ: data split ratio = number of training data/(number of training data + number of validation data) (default: 0.7)

  • set seed to true to seed random data selection order (default: false)

  • maxepoch: maximum number of training epoches allowed (default: 10000000)

  • ncount: maximum number of tries before reducing learning rate (default: 5000)

  • model training ends once learning rate is smaller than minlearnrate (default: 1e-6)

  • learning rate is reduced by reducedlearnrate once ncount is reached (default: 10)

  • set showloss to true to display training and validation errors during the model training process, if the validation error is historically the best. (default: false)

DataDrivenAcoustics.RayBasis3DType
struct RayBasis3D{T1, T2, T3<:(AbstractVector), T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}

A 3D spherical wave RBNN formualtion.

  • env: data driven underwater environment

  • calculatefield: function to estimate acoustic field (default: RayBasis3DCal)

  • nrays: number of rays (default: 60)

  • θ: nominal azimuthal angle of arrival rays in radian (default: missing)

  • ψ: nominal elevation angle of arrival rays in radian (default: missing)

  • d: nominal propagation distance of arrival rays in meters (default: missing)

  • : error to nominal azimuthal angle of arrival rays in radian (default: missing)

  • : error to nominal elevation angle of arrival rays in radian (default: missing)

  • ed: error to nominal propagation distance of arrival rays in meters (default: missing)

  • A: amplitude of arrival rays (default: missing)

  • ϕ: phase of a rays in radian (default: missing)

  • k: angular wavenumber in rad/m (default: missing)

  • trainable: trainable parameters (default: empty)

  • ini_lr: initial learning rate (default: 0.001)

  • trainloss: loss function used in training and model update (default: rmseloss)

  • dataloss: data loss function to calculate benchmarking validation error for early stopping (default: rmseloss)

  • ratioₜ: data split ratio = number of training data/(number of training data + number of validation data) (default: 0.7)

  • set seed to true to seed random data selection order (default: false)

  • maxepoch: maximum number of training epoches allowed (default: 10000000)

  • ncount: maximum number of tries before reducing learning rate (default: 5000)

  • model training ends once learning rate is smaller than minlearnrate (default: 1e-6)

  • learning rate is reduced by reducedlearnrate once ncount is reached (default: 10)

  • set showloss to true to display training and validation errors during the model training process, if the validation error is historically the best. (default: false)

DataDrivenAcoustics.RayBasis3DRCNNType
struct RayBasis3DRCNN{T1, T2, T3, T4<:(AbstractVector), T5, T6} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}

A 3D spherical wave RBNN formualtion with reflection coefficient neural network (RCNN) as part of the model.

  • env: data driven underwater environment

  • RCNN: neural network to model seabed reflection coefficient

  • calculatefield: function to estimate acoustic field (default: RayBasis3DRCNNCal)

  • nrays: number of rays (default: 60)

  • : error to nominal azimuthal angle of arrival rays in radian (default: missing)

  • : error to nominal elevation angle of arrival rays in radian (default: missing)

  • ed: error to nominal propagation distance of arrival rays in meters (default: missing)

  • k: angular wavenumber in rad/m (default: missing)

  • trainable: trainable parameters (default: empty)

  • ini_lr: initial learning rate (default: 0.001)

  • trainloss: loss function used in training and model update (default: rmseloss)

  • dataloss: data loss function to calculate benchmarking validation error for early stopping (default: rmseloss)

  • ratioₜ: data split ratio = number of training data/(number of training data + number of validation data) (default: 0.7)

  • set seed to true to seed random data selection order (default: false)

  • maxepoch: maximum number of training epoches allowed (default: 10000000)

  • ncount: maximum number of tries before reducing learning rate (default: 5000)

  • model training ends once learning rate is smaller than minlearnrate (default: 1e-6)

  • learning rate is reduced by reducedlearnrate once ncount is reached (default: 10)

  • set showloss to true to display training and validation errors during the model training process, if the validation error is historically the best. (default: false)

DataDrivenAcoustics.GPRCalMethod
GPRCal(r, xyz; std)

Generate mean or standard deviation of Gaussian process regression prediction at location xyz using GPR model. Set std to true for mean predictions.

DataDrivenAcoustics.ModelFit!Method
ModelFit!(
    r,
    inilearnrate,
    trainloss,
    dataloss,
    ratioₜ,
    seed,
    maxepoch,
    ncount,
    minlearnrate,
    reducedlearnrate,
    showloss
)

Train data-driven physics-based propagation model.

  • ini_lr: initial learning rate
  • trainloss: loss function used in training and model update
  • dataloss: data loss function to calculate benchmarking validation error for early stopping
  • ratioₜ: data split ratio = number of training data/(number of training data + number of validation data)
  • set seed to true to seed random data selection order
  • maxepoch: maximum number of training epoches allowed
  • ncount: maximum number of tries before reducing learning rate
  • model training ends once learning rate is smaller than minlearnrate
  • learning rate is reduced by reducedlearnrate once ncount is reached
  • set showloss to true to display training and validation errors during the model training process, if the validation error is historically the best
DataDrivenAcoustics.RayBasis2DCalMethod
RayBasis2DCal(r, xy; showarrivals)

Predict acoustic field at location xyz using RayBasis2D model. Set showarrivals to true to return an array of individual complex arrivals.

DataDrivenAcoustics.RayBasis2DCurvCalMethod
RayBasis2DCurvCal(r, xy; showarrivals, xₒ)

Predict acoustic field at location xyz using RayBasis2DCurv model. Set showarrivals to true to return an array of individual complex arrivals. xₒ is the reference location and can be an arbitrary location.

DataDrivenAcoustics.RayBasis3DCalMethod
RayBasis3DCal(r, xyz; showarrivals, xₒ)

Predict acoustic field at location xyz using RayBasis3D model. Set showarrivals to true to return an array of individual complex arrivals. xₒ is the reference location and can be an arbitrary location.

DataDrivenAcoustics.RayBasis3DRCNNCalMethod
RayBasis3DRCNNCal(r, xyz; showarrivals, xₒ)

Predict acoustic field at location xyz using RayBasis3DRCNN model. Set showarrivals to true to return an array of individual complex arrivals. xₒ is the reference location and can be an arbitrary location.

DataDrivenAcoustics.SplitDataMethod
SplitData(location, measurement, ratioₜ, seed)

Split location and acoustic measurement data into training and validation dataset.

  • location: measurement locations
  • measurement: coresponding acoustic measurements
  • ratioₜ: training data split ratio
  • set seed to true to seed the random order generation in data split
DataDrivenAcoustics.rmselossMethod
rmseloss(rx, tl, model)

Root mean sqaure error between ground truth acoustic fields tl at locations rx and predicted field by data-driven model.

UnderwaterAcoustics.arrivalsMethod
arrivals(model, tx, rx; threshold)

Show arrival rays at a location rx using a data-driven physics-based propagation model.

  • model: data-driven physics-based propagation model
  • tx: acoustic source. This is optional. Use missing or nothing for unknown source.
  • rx: an acoustic receiver
UnderwaterAcoustics.transfercoefMethod
transfercoef(model, tx, rx; mode)

Calculate transmission coefficient at location rx using a data-driven physics-based propagation model.

  • model: data-driven physics-based propagation model
  • tx: acoustic source. This is optional. Use missing or nothing for unknown source.
  • rx: acoustic receiver location(s)