All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- PIPELINE-144: Fixes the identity assignment logic so that identity messages appearing after a batch of positional messages are not discarded.
- PIPELINE-139: Removes the receiver from the identity cache because that field is completely broken.
- GlobalFishingWatch/gfw-eng-tasks#47: Adds
guard code over
course
field when has None value when normalize message.
- Change to a metric based primarily on "discrepancy" which is how far the vessel is from where we expect it to be based on its course and speed.
- What we mean by expect is informed by the experiments in extracting probability clouds for AIS matching.
- Many heuristics are applied based on extensive experimentation, but more experimentation would still be helpful.
- GlobalFishingWatch/GFW-Tasks#1015
- Remove checks for name/callsign when assigning segments.
- Never check for transceiver type.
- Add type 3 messages to class A message types.
- Fix version of pyproj to avoid going to 2.X
- #61 Prefer segments with matching shipname and/or callsign
- #63 Treat a duplicate timestamp that is within noise distance from an existing segment as noise
- #66 When no shipname or callsign matches, prefer the segment with the most recent position
- #60 Prefer segments with the same message type
-
'#54' Ignore noise segments in Segmentizer.from_seg_states()
-
'#56' Performance improvement for the special case where all messages added to a segment are non-positional (have no lat/lon as is the case with type 5 AIS messages)
-
'#50' Emit noise messages in a new segment class
NoiseSegment
that works likeBadSegment
-
'#49' New option
collect_match_stats
for Segmentizer that captures all the stats used to determine which segment a message is added to. The stats are added to the message in a field calledsegment_matches
- New parameters that reduce the allowable speed at distance and handle noise better #42
- Documentation and reorganization
- Bugfix for no reported speed.
- Improved segmenting algorithm to handle high speed better . #32, #34
- Better handling bad locations to prevent subsequent positions from being added to
BadSegment()
. #29
- Handle an edge case where a non-posit is the first message encountered after clearing out all segments. #24
- Better handling for out-of-bounds locations. #17
- Shush logging. #19
- Added states for Segmentizer and Segments. #13
- Initial release.