DataDrivenAcoustics.BasicDataDrivenUnderwaterEnvironment
— Typestruct 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
tofalse
ifmeasurements
are not in dB scale (default:true
)
DataDrivenAcoustics.GPR
— Typestruct GPR{T1, T2, T3, T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}
A Gaussian process regression model to model acoustic propagation.
DataDrivenAcoustics.RayBasis2D
— Typestruct RayBasis2D{T1, T2, T3<:(AbstractVector), T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}
A 2D plane wave RBNN formualtion.
env
: data driven underwater environmentcalculatefield
: 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
totrue
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
oncencount
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.RayBasis2DCurv
— Typestruct 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 environmentcalculatefield
: 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
totrue
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
oncencount
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.RayBasis3D
— Typestruct RayBasis3D{T1, T2, T3<:(AbstractVector), T4, T5} <: DataDrivenAcoustics.DataDrivenPropagationModel{T1}
A 3D spherical wave RBNN formualtion.
env
: data driven underwater environmentcalculatefield
: 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)eθ
: error to nominal azimuthal angle of arrival rays in radian (default: missing)eψ
: 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
totrue
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
oncencount
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.RayBasis3DRCNN
— Typestruct 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 environmentRCNN
: neural network to model seabed reflection coefficientcalculatefield
: function to estimate acoustic field (default:RayBasis3DRCNNCal
)nrays
: number of rays (default: 60)eθ
: error to nominal azimuthal angle of arrival rays in radian (default: missing)eψ
: 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
totrue
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
oncencount
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.GPRCal
— MethodGPRCal(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!
— MethodModelFit!(
r,
inilearnrate,
trainloss,
dataloss,
ratioₜ,
seed,
maxepoch,
ncount,
minlearnrate,
reducedlearnrate,
showloss
)
Train data-driven physics-based propagation model.
ini_lr
: initial learning ratetrainloss
: loss function used in training and model updatedataloss
: data loss function to calculate benchmarking validation error for early stoppingratioₜ
: data split ratio = number of training data/(number of training data + number of validation data)- set
seed
totrue
to seed random data selection order maxepoch
: maximum number of training epoches allowedncount
: maximum number of tries before reducing learning rate- model training ends once learning rate is smaller than
minlearnrate
- learning rate is reduced by
reducedlearnrate
oncencount
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.RayBasis2DCal
— MethodRayBasis2DCal(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.RayBasis2DCurvCal
— MethodRayBasis2DCurvCal(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.RayBasis3DCal
— MethodRayBasis3DCal(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.RayBasis3DRCNNCal
— MethodRayBasis3DRCNNCal(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.SplitData
— MethodSplitData(location, measurement, ratioₜ, seed)
Split location and acoustic measurement data into training and validation dataset.
location
: measurement locationsmeasurement
: coresponding acoustic measurementsratioₜ
: training data split ratio- set
seed
totrue
to seed the random order generation in data split
DataDrivenAcoustics.rmseloss
— Methodrmseloss(rx, tl, model)
Root mean sqaure error between ground truth acoustic fields tl
at locations rx
and predicted field by data-driven model
.
UnderwaterAcoustics.arrivals
— Methodarrivals(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 modeltx
: acoustic source. This is optional. Usemissing
ornothing
for unknown source.rx
: an acoustic receiver
UnderwaterAcoustics.transfercoef
— Methodtransfercoef(model, tx, rx; mode)
Calculate transmission coefficient at location rx
using a data-driven physics-based propagation model.
model
: data-driven physics-based propagation modeltx
: acoustic source. This is optional. Usemissing
ornothing
for unknown source.rx
: acoustic receiver location(s)