The documentation of the function _weill(...) should be rewritten, especially in the Returns section.
If we use the same input parameters ("thr": -70, "maxvgap": 5, "maxhgap": 1, "minvlen": 15, "minhlen": 3, "dask_chunking": {"ping_time": 100, "range_sample": 100) on an array that looks like this:
using EchoPy version and next-dev Echopype version of the shoal detection functions, the matching percentage is 61%.
However, it is not advisable to use the same parameters because the next-dev Echopype method should make compromises to force choosing all parameters different from 0, which makes it stricter, but more memory and runtime friendly, and much more efficient.
So, I took the real dataset tested in EchoPy (you can find their results here - in EchoPy the input params were (thr=-70, maxvgap=15, maxhgap=0, minhlen= 3, minvlen=15)(for 120 kHz channel) and, using the adjusted parameters for Echopype next-dev method (WEILL_DEFAULT_PARAMETERS = {"thr": -70, "maxvgap": 5, "maxhgap": 1, "minvlen": 15, "minhlen": 3, "dask_chunking": {"ping_time": 100, "range_sample": 100},}), I've obtained the below echograms:
For 38 kHz channel:
For 120 kHz channel:
For the 120 kHz channel, I've tested the function also with these input parameters (WEILL_DEFAULT_PARAMETERS = {"thr": -70, "maxvgap": 1, "maxhgap": 1, "minvlen": 15,"minhlen": 3, "dask_chunking": {"ping_time": 100, "range_sample": 100},}). We can see that in terms of maxvgap and maxhgap, we've reached the lower boundary.
Right now, I am pretty sure that the input parameters are very dependent on the dataset we use, and even more so on the specific channel data.
Some future improvements, not yet implemented in EchoPy, should be:
Remarks
Tests do not work.
The documentation of the function _weill(...) should be rewritten, especially in the Returns section.
If we use the same input parameters (
"thr": -70, "maxvgap": 5, "maxhgap": 1, "minvlen": 15, "minhlen": 3, "dask_chunking": {"ping_time": 100, "range_sample": 100
) on an array that looks like this:using EchoPy version and next-dev Echopype version of the shoal detection functions, the matching percentage is 61%.
However, it is not advisable to use the same parameters because the next-dev Echopype method should make compromises to force choosing all parameters different from 0, which makes it stricter, but more memory and runtime friendly, and much more efficient.
So, I took the real dataset tested in EchoPy (you can find their results here - in EchoPy the input params were (
thr=-70, maxvgap=15, maxhgap=0, minhlen= 3, minvlen=15
)(for 120 kHz channel) and, using the adjusted parameters for Echopype next-dev method (WEILL_DEFAULT_PARAMETERS = {"thr": -70, "maxvgap": 5, "maxhgap": 1, "minvlen": 15, "minhlen": 3, "dask_chunking": {"ping_time": 100, "range_sample": 100},}
), I've obtained the below echograms:For 38 kHz channel:
For 120 kHz channel:
For the 120 kHz channel, I've tested the function also with these input parameters (
WEILL_DEFAULT_PARAMETERS = {"thr": -70, "maxvgap": 1, "maxhgap": 1, "minvlen": 15,"minhlen": 3, "dask_chunking": {"ping_time": 100, "range_sample": 100},}
). We can see that in terms ofmaxvgap
andmaxhgap
, we've reached the lower boundary.Right now, I am pretty sure that the input parameters are very dependent on the dataset we use, and even more so on the specific channel data.
Some future improvements, not yet implemented in EchoPy, should be: