Acoustics
My functions for acoustic modeling in MATLAB. These functions can read environmental hydrography from HYCOM, topography from GEBCO, and incorporate these variables directly into the acoustic models BELLHOP and KRAKEN to streamline the process of modeling propagations in a variety of realistic ocean environments.
Install / Use
/learn @MadelineSprague/AcousticsREADME
acoustics
My functions for acoustic modeling in MATLAB. These functions can read environmental hydrography from HYCOM, topography from GEBCO, and incorporate these variables directly into the acoustic models BELLHOP and KRAKEN to streamline the process of modeling propagations in a variety of realistic ocean environments.
The main user functions are hycom_bh (HYCOM-BELLHOP) and hycom_kr (HYCOM-KRAKEN). These functions are intended to be used initially over lat/lon bounds at a given time, which determines the regional hydrography loaded from a HYCOM THREDDS server. From there, the functions will prompt the user for various aspects of the propagation scenario: source depth, frequency, directionality, bottom parameters, and so on. From there the model will run and plot the relevant outputs (either ray paths, transmission loss, or arrivals at simulated receivers), additionally outputting a MATLAB struct of propagation parameters that can be edited and re-run for easy reproducibility.
necessary installations
These functions make use of several MATLAB packages:
- The acoustic toolbox, which contains BELLHOP, KRAKEN, and various other acoustic propagation models. The toolbox can be downloaded from http://oalib.hlsresearch.com/AcousticsToolbox/
- The Gibbs SeaWater (GSW) oceanographic toolbox, used for calculation of various seawater variables, which can be obtained from https://www.teos-10.org/pubs/gsw/html/gsw_contents.html
- cmocean, a package of beautiful and accessible colormaps for oceanography: https://matplotlib.org/cmocean/
- m_map, a MATLAB mapping package from which I pull a couple of functions: https://www.eoas.ubc.ca/~rich/map.html#download
Additionally there are three data files used within these functions:
- The General Bathymetric Chart of the Oceans (GEBCO) grid from which I access topography in the functions
gebco_bathyandgebco_bathy_3d. I've verified that these functions will work with the 2023 GEBCO sub-ice topo/bathy grid which can be downloaded from https://www.gebco.net/data_and_products/gridded_bathymetry_data/. hycom_secandhycom_sec_3d, the functions that load hydrography forhycom_krandhycom_bh, have the option to interpolate hydrography from self-constructed climatology files if the user inputs the time as'summer'or'winter'. These files were generally constructed for my own purposes to model idealized seasonal conditions, and they are generated by the scriptHYCOM_climatology.m. They may be useful for comparison between seasons and for bypassing the often sluggish step of pulling hydrography data from the HYCOM THREDDS server for a given date. If you wish to use them, download the two files HYCOM_summer.mat and HYCOM_winter.mat from https://drive.google.com/drive/folders/1KRive9wzkvciGOFBvmyYt7vjjYkDRW54?usp=sharing. (This is my own Google Drive; if there is a way I can upload files this large to my Github repository without paying for a subscription, please tell me, because I am not experienced with Github!)
