.. Ocean Noise Explorer documentation master file, created by
sphinx-quickstart on Wed Dec 13 15:57:11 2023.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Ocean Noise Explorer Documentation
===================================
.. image:: ../../build/assets/images/logos/one.png
:width: 200
:alt: ONE Logo
:align: right
The `Ocean Data Lab `_ at the University of Washington has developed Ocean Noise Explorer (ONE),
a web-based interactive ocean soundscape that will enable users to visualize and explore
a wide variety of underwater noise metrics and other related data products.
The raw data used in this project is collected by the Regional Cabled Array and the
Coastal Endurance Array of the `Ocean Observatories Initiative (OOI) `_.
The raw data is processed by `OOIPY `_, a Python library developed by our team,
to calculate different data products that are required for a comprehensive ocean soundscape analysis.
Features
=============
The Ocean Noise Explorer interface consists of a geographical map of the Pacific Ocean off the coast of Oregon and displays the locations of the Hydrophones set up on the seafloors. There are 9 different hydrophone locations, each with different products:
1. Axial Base
2. Central Caldera
3. Eastern Caldera
4. Slope Base
5. Oregon Offshore
6. Oregon Shelf
7. Southern Hydrate
8. Axial Ashes
9. Axial International
The different types of hydrophone data products available are:
1. Low Frequency Hydrophones
2. Broadband Hydrophones
3. CTD Data
4. OBS Data
5. Meteorological Data
Data Visualization Options
===========================
1. Low Frequency Spectrogram
-----------------------------
Low frequency spectrograms are pre-computed and saved locally. This method is best for looking at long time frames (like months or years). The spectrograms are calculated using a 1 hour Welch-median PSD estimate. The Welch estimate uses a Hann window, 1024 FFT points and 50 % overlap.
Users can select the time interval of their choice (till the minute level) and a corresponding interactive plot is charted out. This plot can be zoomed in or zoomed out, focussing on specific axes, timeframes etc. depending on the user requirements.
2. Short Term Spectrogram
-----------------------------
Short Term Spectrograms are generated by pulling the specific time-series data from the OOI server and computing the spectrogram. This allows the user to specify the input parameters to the Welch PSD estimate, but is limited to smaller time frames (like days or hours).
Users can select the time interval of their choice (less than 24 hours), and some other paarmeters such as the averaging time (10-100 seconds is ideal), Overlap percentage (1-100) and N per segment param (1-1024 data points per segment). These parameter values have certain interdependencies that need to be adhered to as well, which can be seen on the screen. A corresponding interactive plot is charted out, at a much more granular level. This plot can be zoomed in or zoomed out, focussing on specific axes, timeframes etc. depending on the user requirements.
3. Broadband Spectrogram
-----------------------------
Broadband spectrograms are computed by downloading the data from the OOI server and computing the spectrogram locally. The data is downloaded using the python package OOIPY. The input parameters for the Welch PSD estimate can be provided by the user. Because the broadband hydrophone data takes up a lot of memory (1.8 GB per hour), this method is only suitable for short durations of data (like minutes and seconds).
Users can select the time interval of their choice (5-10 minutes is ideal), type of broadband hydrophone by depth (Seafloor/Shallow) and some other parameters such as the averaging time (1 second - 1hour), Overlap percentage (1-100) and N per segment param (4096 data points per segment by default). These parameter values have certain interdependencies that need to be adhered to as well, which can be seen on the screen. A corresponding interactive plot is charted out, at a much more granular level. This plot can be zoomed in or zoomed out, focussing on specific axes, timeframes etc. depending on the user requirements.
4. SPDF
---------
SPDFs are calculated from the long-term spectrograms by computing histograms for each frequency bin. Plotting the histogram values as a function of frequency and spectral level gives the desired SPDFs.
5. Octave Band
---------------
The boxes of the plot are generated by using the minimum, first quartile value(lower line), median, third quartile value(upper line), maximum. Outliers(values that are above the upper line and below the lower line are hidden).
6. OBS Charts
-------------
The OBS data is from the z-channel of the OBS. the spectrograms are pre-computed and saved locally. This allows for the longer term data to be visualized. The spectrograms are calculated using a 1 hour Welch-median PSD estimate. The Welch estimate uses a Hann window, 1024 FFT points and 50 % overlap. We can create Low Frequency Spectrograms, Octave Bands and SPDF from OBS Data.
7. Wind and Rain Graph
----------------------
Wind Graph (at zero degree, wind direction is eastward):
1. If "Wind Magnitude" is selected, the wind speed is calculated throught the following formula:
.. code-block :: bash
wind magnitude = np.sqrt((eastward_wind_velocity)**2 + (northward_wind_velocity)**2)
2. If "Wind Angle" is selected, the wind speed is calculated throught the following formula:
.. code-block :: bash
wind angle = np.arctan2(northward_wind_velocity, eastward_wind_velocity)
Rain Graph:
for the precipitation rate, two major operations are performed:
1. Time frames where sampling period changes are removed
2. Siphoning events are removed
8. CTD Chart
-------------
Speed of sound with depth vs time
How to Setup Ocean Noise Explorer
=================================
Ocean Noise Explorer can be accessed via the source Github repository.
The following steps can assist in properly setting up the application.
1. Clone the repository to your local system:
.. code-block :: bash
git clone https://github.com/Ocean-Data-Lab/Ocean-Noise-Explorer.git
2. Going into the cloned repository, create a virtual environment and activate it:
.. code-block :: bash
python3 -m venv venv
source ./venv/bin/activate
3. Download the required dependencies:
.. code-block :: bash
pip install -r requirements.txt
4. Download required data in order to run this repository: firstly,
create a folder called "require_data" inside the repository,
and then go to https://drive.google.com/drive/folders/1NzQRFaB9cfzlMJgZGWvBUMI-WSHEasrR?usp=sharing,
there are two folders ("CTD" and "WindRainGraph") in the drive,go ahead and download these two folders
and place them within the "require_data" folder inside this repository.
5. Finally, the precomputed OBS Spectrograms can be accessed from this drive link:
https://drive.google.com/file/d/16HK4SfR3vjd5rLfZQlzXijR-ETnkKcam/view?usp=sharing.
Please download and unzip this folder and add it to the root folder.
6. Run the Project:
.. code-block :: bash
python3 app.py
7. Open this URL in a web browser:
.. code-block :: bash
http://127.0.0.1:5000
Tech Stack
==========
1. Backend: Python Flask
2. Frontend: React(the build file produced from the Frontend code in https://github.com/Ocean-Data-Lab/Website-Frontend)
Video Gallery
=============
The Ocean Noise Explorer also has a video gallery showing snippets from some intersting acoustics events
such as airgun pulses, fin whale calls, ship noise, whale vocalizations & seafloor volcanic eruptions.
Feel free to check it out to see some interesting patterns!
Airgun Pulses:
--------------
.. rst-class :: center
Location: Axial Base Seafloor (Fs = 64 kHz)
Start Time: 2019-08-01 15:00:03
End Time: 2019-08-01 15:00:20
Hydrophone Type: Broadband
.. image:: https://img.youtube.com/vi/xp5jJUeLNRw/maxresdefault.jpg
:alt: IMAGE ALT TEXT HERE
:target: https://www.youtube.com/watch?v=xp5jJUeLNRw
Fin Whale Calls:
----------------
.. rst-class :: center
Location: Axial Base Seafloor (Fs = 200 Hz)
Start Time: 2019-02-03 12:00:00
End Time: 2019-02-03 12:15:00
Hydrophone Type: Low Frequency
.. image:: https://img.youtube.com/vi/kgeuBAxFB3E/maxresdefault.jpg
:alt: IMAGE ALT TEXT HERE
:target: https://www.youtube.com/watch?v=kgeuBAxFB3E
Ship Noise:
-----------
.. rst-class :: center
Location: Axial Base Seafloor (Fs = 200 Hz)
Start Time: 2016-01-08 21:54:00
End Time: 2016-01-08 23:54:00
Hydrophone Type: Low Frequency
.. image:: https://img.youtube.com/vi/qla5DjV2i_o/maxresdefault.jpg
:alt: IMAGE ALT TEXT HERE
:target: https://www.youtube.com/watch?v=qla5DjV2i_o
Seafloor Volcanic Eruptions:
----------------------------
.. rst-class :: center
Location: Axial Base Seaflor (Fs = 200 Hz)
Start Time: 2015-04-23 22:35:00
End Time: 2015-04-23 22:45:00
Hydrophone Type: Low Frequency
.. image:: https://img.youtube.com/vi/erTn9MIQYIE/maxresdefault.jpg
:alt: IMAGE ALT TEXT HERE
:target: https://www.youtube.com/watch?v=erTn9MIQYIE