dBSea can serve as a great tool for learning acoustics. It is safer, faster, cheaper and easier than going out to sea to do actual measurements. (The field biologist in me hated that sentence). But truth is that for preparing to got out in the field, or for understanding what factors affect a sound field, dBSea can provide that link between formulated theory and output that greatly increases understanding for many of us.
(If you're not involved in teaching/facilitating read on anyway, as I present a couple of nifty tricks in dBSea).
For basic acoustics the complicated bathymetry, clines and currents of the real world can be too irregular for showing simpler correlations between e.g. speed of sound and salinity or pressure.
(If you're not involved in teaching/facilitating read on anyway, as I present a couple of nifty tricks in dBSea).
For basic acoustics the complicated bathymetry, clines and currents of the real world can be too irregular for showing simpler correlations between e.g. speed of sound and salinity or pressure.
First I want an open (uncomplicated) field for my testing, so I made a BIG open volume of water.
# Simple csv generator.
# Create matrix with value "10,000" at 1000 by 1000 places in matrix
# A big puddle of 10km*1km*1km
Depth_model=matrix(10000,1000,1000)
# file location e.g.: "C:/Users/Username/Documents/dBSea/Bathymetry/Model3x10000.csv"
write.table(Depth_model, file="file location", sep=",", row.names=FALSE, col.names=FALSE)
# using "write.table" instead of "write.csv" gives more control over titles.
# File will be ~5Mb, 1000*1000=1,000,000 positions in matrix
_____________________________________________
(Update 23/09/2015)
I've learned that for simple open spaces there's a simpler way than to create it in R.
Just create a ten by ten matrix of the desired depth in a spreadsheet and save it as .csv.
After importing this to dBSea, set the scale as desired, and dBSea will extrapolate.
You learn something new (from your programmer friend) every day...
In other words this'll be another one of my more techy posts...
The created csv file is "only" 1 x 1 km, not really big enough, but as a bigger csv will be slow, and take up a lot of space (10 km x 10 km would be ~500Mb), we'll make do.
Figure 1. Press "New" in upper left corner, and then "Load Bathymetry" in the right panel. |
Figure 2. Set the world scale via "Set From Diagonal". |
This data can be extracted using the "Table to Clipboard" button in the "Probe" menu shown in Figure 3. When plotted in e.g. excel one can see the result of the frequency-specific attenuation (Figure 4). It is immediately clear that the high-frequency part of the noise doesn't make it very far compared to the lower frequencies
The clever reader might notice that there's not a 6 dB decline in sound pressure level (SPL) per doubling of distance in the above figure. This is due to me using an approximate line source (see Figure 2) instead of a point source. For line sources SPL only decreases 3 dB per doubling of distance (in the actual plot we only see a decrease of 2 dB per doubling of distance, this is due to reflections from surface and bottom).
This was a very brief post, but notice that it included a bit of both programming (R), chemistry and physics. Doing this as an exercise for students forces them to understand the principles involved, but also introduces them to transferring data between platforms (R, dBSea and spreadsheet software), a genuinely very useful skill.
To be continued...
Comments
Post a Comment