OceanStreamIO / oceanstream

Oceanstream is a Python library which can be used as a CLI tool to process raw acoustic data from echosounders. It uses echopype as a backend. Developed at @pineviewlabs
https://oceanstream.io
MIT License
4 stars 3 forks source link

Background noise removal verification #131

Closed mihaiboldeanu closed 9 months ago

mihaiboldeanu commented 9 months ago

When applying background noise removal with the following parameters: "remove_background_noise": { "ping_num": 40, "range_sample_num": 10, "noise_max": -125, "SNR_threshold": 3, } We lose around 60-65% of data as noise. This should be investigated to make sure we arent eliminating to much useful data.

simedroniraluca commented 9 months ago

Parameters Analysis

The background noise detection implemented in oceanstream is based on the remove_noise function from the echopype library, which in turn is based on the techniques described in the article by De Robertis & Higginbottom (2007), titled 'A post-processing technique to estimate the signal-to-noise ratio and remove echosounder background noise,' published in the ICES Journal of Marine Sciences (64(6): 1282–1291).

The parameters for oceanstream's apply_remove_background_noise function, designed to address background noise issues, are as follows:

The default values for the parameters in oceanstream's apply_remove_background_noise were chosen based on the default values tested in the article for calibrated Simrad EK60 echosounders operating at 18, 38, 120, and 200 kHz:

Other important considerations highlighted in the article that should be taken into account when adjusting the input parameters for the apply_remove_background_noise include:

simedroniraluca commented 9 months ago

Analysis of EK80 Dataset with Background Noise Removal

Raw Dataset Details:

Background noise removal applied on processed dataset, after the interpolation step

Parameters:

process_parameters = {
        "remove_background_noise": {
        "ping_num": 40,
        "noise_max": -125,
        "SNR_threshold": 3,
    },

}

Proportion of Valid Samples Before Background Noise Removal:

Proportion of Valid Samples After Background Noise Removal:

Image

simedroniraluca commented 9 months ago

Analysis of EK80 Dataset with Background Noise Removal

Raw Dataset Details:

Background noise removal applied on processed dataset, after the interpolation step

Parameters:

process_parameters = {
        "remove_background_noise": {
        "ping_num": 40,
        "noise_max": -125,
        "SNR_threshold": 0,
    },

}

Proportion of Valid Samples Before Background Noise Removal:

Proportion of Valid Samples After Background Noise Removal:

Image

simedroniraluca commented 9 months ago

Analysis of EK80 Dataset with Background Noise Removal

Raw Dataset Details:

Background noise removal applied on processed dataset, after the interpolation step

Parameters:

process_parameters = {
        "remove_background_noise": {
        "ping_num": 40,
        "range_sample_num": 10,
        "noise_max": -125,
        "SNR_threshold": 3,
    },

}

Proportion of Valid Samples Before Background Noise Removal:

Proportion of Valid Samples After Background Noise Removal:

Image

simedroniraluca commented 9 months ago

Analysis of EK60 Dataset with Background Noise Removal

Raw Dataset Details:

Background noise removal applied on processed dataset, after the interpolation step

Parameters:

process_parameters = {
        "remove_background_noise": {
        "ping_num": 40,
        "noise_max": -125,
        "SNR_threshold": 3,
    },

}

Proportion of Valid Samples Before Background Noise Removal:

Proportion of Valid Samples After Background Noise Removal:

Image

simedroniraluca commented 9 months ago

Analysis of EK60 Dataset with Background Noise Removal

Raw Dataset Details:

Background noise removal applied on processed dataset, after the interpolation step

Parameters:

process_parameters = {
        "remove_background_noise": {
        "ping_num": 40,
        "noise_max": -125,
        "SNR_threshold": 0,
    },

}

Proportion of Valid Samples Before Background Noise Removal:

Proportion of Valid Samples After Background Noise Removal:

Image

simedroniraluca commented 9 months ago

Analysis of EK60 Dataset with Background Noise Removal

Raw Dataset Details:

Background noise removal applied on unprocessed dataset (raw data):

Parameters:

process_parameters = {
        "ping_num": 40,
        "noise_max": -125,
        "SNR_threshold": 3,
    },

}

Proportion of Valid Samples Before Background Noise Removal:

Proportion of Valid Samples After Background Noise Removal:

Image

simedroniraluca commented 9 months ago

Conclusion: