Issue 79: Parallel sections

When does it occur?

Take for example the study area below, which is divided into four sections: A, B, C and D. Note that these are sections, and not arrays (which are visible in the image as red lines). This study are has two parallel sections: B, and C. This means that a tag can go from A to D without needing to pass through all the sections in between.

drawing

Having multiple branches at the array level is something actel can easily handle nowadays. However, actel still expects the sections to encompass all the branches of the study area and progress linearly from start to end. This is a limitation that originated as a consequence of actel's very original intention: to track atlantic salmon smolts migrating through rivers towards the sea. While actel as a whole as grown greatly since then, this particular issue remained hidden. This causes a mismatch between reality and what actel sees:

drawing

This mismatch will lead to complications in understanding the number of tags that traversed either of the parallel sections. If an animal takes the course shown in example 1 below, then actel will think it also crossed and survived section B. This will artificially inflate the number of animals thought to have reached and successfully crossed section B. Similarly, if an animal takes the course shown in the example 2, actel will think it also crossed section C, leading to a similar, incorrect outcome.

drawing
drawing

How can you avoid it?

Currently, the only way to avoid this situation is to make sure sections come sequentially after eachother. For our example study area, that would imply combining sections B and C into one single section:

drawing

You can still obtain branch-by-branch information by exploring all the detailed outputs that actel offers you. Another possibility could be to run a second analysis where you combine all the receivers of one branch into one array, and then look at the detections by array to extract that information.

When will it be fixed?

While not everyone is aware of it, actel has been developed and maintained by one person only (me). At my previous job, part of my time was dedicated exclusively to updating, expanding, and fine-tuning actel. I've left that position in 2020, and my current work keeps me pretty busy. Even so, a lot of content/fixes have still been released to GitHub over the last years.

Issue 79 has been known for just over a year now. I've looked into it, but the amount of hours it will take to safely fix it is currently prohibitive. As such, I cannot provide an estimate of when it will be fixed at the moment. Stay tuned to the GitHub issue page and the News page here for more details as they come.

On the topic of bugs: did you know that actel's code is thoroughly tested by over 1500 unit tests covering 93% of its code? Whenever a change is made to the code, all those tests have to pass before the code is considered safe. Sadly, this is not 100% bug-proof (as seen above), but you can rest assured that such breakaway bugs will always remain scarce!

Thank you for your understanding,

Hugo