Fishing effort (in hours) shown in dynamic reports is generated through a two-step process that balances speed and precision. Understanding these steps can help interpret slight differences in reported totals.
Phase 1: Initial Grid-Based Estimate (Upon Report Load)
- When a dynamic report first loads, estimated fishing effort is calculated using heatmap data rendered as square grid cells.
- These cells aggregate fishing activity at various resolutions based on the selected activity layer (low, medium, high) and map zoom level.
- To determine effort within a user-defined area, the system intersects the boundary with underlying grid cells.
- However, since grid cells don’t exactly match most area boundaries, some cells may only partially intersect the area.
- The system calculates a range:
- Upper bound: assumes 100% of activity in overlapping cells occurred inside the area.
- Lower bound: assumes 0% activity in partially intersecting cells occurred inside the area.
- The displayed estimate is a midpoint between these bounds, and the error margin reflects this uncertainty.
- This approach enables fast, scalable summaries but may over- or under-estimate activity depending on cell alignment.
Phase 2: Vessel-Level Analysis (After Selecting ‘See Vessels’)
- When you click “See Vessels,” the system calls the activity API (data source) to retrieve actual fishing points.
- Each fishing point (with latitude, longitude, timestamp, and activity type) is checked against the area boundary using spatial analysis.
- Only fishing activity within the polygon is included in the updated estimate.
- This approach is slower but more accurate, as it eliminates assumptions from grid-based filtering.
Why Estimates May Differ
- The refined vessel-based method typically results in slightly lower or higher totals than the initial estimate due to more precise inclusion/exclusion.
- Differences are usually small (1–2%) but can vary depending on the complexity of the area boundary and the amount of intersecting grid cells.