Spaces:
Running
Running
| """ | |
| Module 4: Marine Bioacoustic Impact Module. | |
| Maps the predicted ship noise spectrum against the published audiogram | |
| sensitivity curves of five marine mammal functional hearing groups and | |
| quantifies the biological interference caused by the ship at each frequency band. | |
| The five groups follow the NOAA/NMFS (2018) marine mammal acoustic weighting | |
| function classification: low-frequency cetaceans (baleen whales), mid-frequency | |
| cetaceans (dolphins and most toothed whales), high-frequency cetaceans (porpoises | |
| and some small odontocetes), phocid pinnipeds in water, and otariid pinnipeds in | |
| water. | |
| The core method borrows two techniques from audio signal processing. First, | |
| Mel-Frequency Cepstral Coefficient (MFCC) decomposition is applied to the ship | |
| noise spectrum to extract a perceptually weighted frequency representation aligned | |
| with the non-linear frequency sensitivity of the mammal ear. Second, spectral | |
| masking analysis quantifies how much of the ship noise spectrum overlaps with and | |
| energetically masks the frequency bands where each species group communicates and | |
| echolocates. The combination of these two analyses produces the Biological | |
| Interference Score (BIS), a value from 0 to 100 for each species group, where | |
| 100 represents complete masking of the group's functional hearing range. The BIS | |
| is not a standardised regulatory metric; it is a SONARIS-defined index intended | |
| to rank relative biological harm across design alternatives and routing scenarios. | |
| Libraries: ``librosa`` for MFCC extraction, ``scipy.signal`` for spectral | |
| masking computation, ``numpy``, ``matplotlib`` and ``plotly`` for spectrogram | |
| overlay visualization. | |
| Pipeline position: Fourth stage, running in parallel with Module 3. Receives | |
| ``URNSpectrum`` from Module 2. Outputs a ``BISResult`` object consumed by | |
| Module 5. | |
| """ | |
| from modules.bioacoustic.audiogram_data import AUDIOGRAM_CURVES | |
| from modules.bioacoustic.bis_calculator import calculate_bis, BISResult | |
| __all__ = ["AUDIOGRAM_CURVES", "calculate_bis", "BISResult"] |