This project predicts vessel movements from AIS data, even when MMSIs (Maritime Mobile Service Identity numbers) are unavailable. It aims to track individual vessels over time by assigning position reports to their corresponding vessels with reasonable accuracy.
-
Name:
predictVessel.py
Functions: -
predictWithK(num_vessels)
: Tracks vessel movements using AIS data when the number of vessels is known. -
predictWithoutK()
: Tracks vessel movements using AIS data without prior knowledge of the number of vessels.
Format: Each row represents a single vessel observation at a specific time point.
Columns:
- Object ID (OBJECT_ID): Unique identifier for each position report.
- Vessel ID (VID): Anonymized MMSI number, unique within a dataset but not across datasets.
- Timestamp (SEQUENCE_DTTM): Time of reporting in UTC format (hh:mm:ss). Date information is excluded.
- Latitude (LAT): Vessel position in decimal degrees.
- Longitude (LON): Vessel position in decimal degrees.
- Speed over Ground (SPEED_OVER_GROUND): Vessel speed in tenths of a knot (nautical mile per hour), up to 1022 (102.2 knots or higher).
- Course over Ground (COURSE_OVER_GROUND): Angle of vessel movement in tenths of a degree (0-3599). Reported even when speed is 0 due to currents and other factors.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise):
- Unsupervised learning algorithm for finding high-density clusters.
- Selected hyperparameters:
- Epsilon (eps): 0.7
- Min_samples: 5
For further tests done and my thought process, read through my report.