Using real-time AIS and machine learning models, the Next Port module by GateHouse Maritime computes predictions for vessels heading towards a specific destination as their next port call. Supplying a specific location, for instance Singapore (SGSIN) thus returns a list of vessels deemed as heading towards Singapore.
Please note that the Next Port module is currently in a proof-of-concept phase.
This article will cover the operations of Next Port predictions:
The base url for the mentioned endpoints throughout the article is:
https://demo.ghmaritime.com/api/shiptracker
This endpoint will return a list of vessels that is predicted to dock next at the specified port.
To use this endpoint, either the locode of a single port or the uuid of a cluster of ports, should be known.
To get the list, construct a GET request either via the /nextport/arrivals/{locode}
or /nextport/arrivals/{cluster}
endpoint, where the locode or the cluster value is the id of the port or cluster, respectively.
Visualization of this process is depicted below:
The vessel port calls is the essential feature of the Next Port module. For all IMO vessels—excluding local vessels such as fishing vessels, tugboats and pilot boats—the system will make continuous estimates of the most probable ports for the next port call.
To get information about a specific vessel, construct a GET request either via the /nextport/ship/{IMO}
endpoint, where the variable IMO is the IMO identifier of a ship, or the /nextport/shiplist/{ShipListID}, where the variable ShipListID is the id of a list of ships.
GET /nextport/ship/{IMO}
In both cases the API will respond with a record of the ships that is predicted to dock at the port, their probability and, if available, the ships’ ETA.
The following is a visualization of the process:
The port clusters is a way of grouping ports in a given area to make it easier to handle port call predictions. Thus, a cluster of ports can be made from any criteria where geographical location is one such option. The system provides a set of predefined port clusters based on geography (country and distance between ports).
To create a cluster, construct a POST
request via the /nextport/cluster
endpoint, where the request body is a description of the cluster, where the fields name and locodes is mandatory and the fields color, threshold, and filter is optional.
The web service will respond with a Json-object, with the name of the cluster and its’ id.
The following is a visualization of the process:
To get a list of all available clusters, construct a GET
request via the /nextport/cluster
endpoint.
The API will respond with a record of all cluster currently available to the user.
The following is a visualization of the process:
To create a cluster, construct a PUT
request via the /nextport/cluster
endpoint, where the request body is a description of the cluster, where the fields name and locodes is mandatory and the fields color, threshold, and filter is optional.
The following is a visualization of the process:
To delete a cluster, construct a DELETE
request via the /nextport/cluster/{name}
endpoint, where {name} is the name of the specific cluster.
The web service will respond with an empty Json-object.
The following is a visualization of the process