class VesselEvent(Model): """Get event based intelligence for a vessel.""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - \n" "a nine-digit number sent in digital \n" "form over a radio frequency that \n" "identifies the vessel's transmitter station") ship_name = TextField(index='SHIPNAME', desc="The Ship name of the subject vessel") timestamp = DatetimeField(index='TIMESTAMP', desc="The date and time (in UTC) that \n" "the subject Event was recorded by \n" "MarineTraffic", format='%Y-%m-%dT%H:%M:%S') event_id = NumberField(index='EVENT_ID', desc="The ID of the subject event - more") event_name = TextField(index='EVENT_NAME', desc="The Name of the subject Event") event_content = TextField(index='EVENT_CONTENT', desc="The description of the subject Event")
class PredictiveArrivals(Model): """Receive a prediction of the vessels likely to arrive to a specific port.""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - a \n" "nine-digit number sent in digital form \n" "over a radio frequency that identifies \n" "the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation number - a \n" "seven-digit number that uniquely \n" "identifies vessels") ship_id = NumberField(index='SHIP_ID', desc="A uniquely assigned ID by MarineTraffic \n" "for the subject vessel") ship_name = TextField(index='SHIPNAME', desc="The Shipname of the subject vessel") ship_class = TextField(index='SHIPCLASS', desc="The class of the subject vessel \n" "based on vessel type and size") market = TextField(index='MARKET', desc="The commercial market segment \n" "the subject vessel belongs to") from_port_id = NumberField(index='FROM_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the port that \n" "was used as origin to retrieve \n" "possible destinations") from_port = TextField(index='FROM_PORT', desc="The port that was used as origin \n" "to retrieve possible destinations") next_port_id = NumberField(index='NEXT_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Next Port") next_port = TextField(index='NEXT_PORT', desc="The target port used to \n" "predict arrivals of vessels") next_area = TextField(index='NEXT_AREA', desc="The area where the target port belongs to") next_port_prob = RealNumberField(index='NEXT_PORT_PROB', desc="The probability of visiting \n" "the target port") next_area_prob = RealNumberField(index='NEXT_AREA_PROB', desc="The probability of visiting the \n" "area where the target port is")
class SearchVessel(Model): """Search MarineTraffic database for a vessel.""" id = NumberField(index='SHIP_ID', desc="A uniquely assigned ID by MarineTraffic \n" "for the subject vessel") name = TextField(index='SHIPNAME', desc="The Shipname of the subject vessel") mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - \n" "a nine-digit number sent in digital \n" "form over a radio frequency that \n" "identifies the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation \n" "number - a seven-digit number that \n" "uniquely identifies vessels") build_year = NumberField(index='YEAR_BUILT', desc="The year that the subject vessel was built") dwt = NumberField(index='DWT', desc="Deadweight - a measure (in metric tons) \n" "of how much weight a vessel can safely carry \n" "(excluding the vessel's own weight)") call_sign = TextField(index='CALLSIGN', desc="A uniquely designated identifier for \n" "the vessel's transmitter station") flag = TextField(index='FLAG', desc="The flag of the subject vessel according \n" "to AIS transmissions") type_name = TextField(index='TYPE_NAME', desc="The Type of the subject vessel") details_page_url = TextField(index='MT_URL', desc="URL to the Details page of the \n" "subject vessel at MarineTraffic") country = TextField(index='COUNTRY', desc="The country of the subject vessel \n" "according to AIS transmissions")
class ExpectedArrival(Model): """Get a voyage forecast for a vessel or your MarineTraffic fleet""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - a \n" "nine-digit number sent in digital form \n" "over a radio frequency that identifies \n" "the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation number - a \n" "seven-digit number that uniquely \n" "identifies vessels") longitude = RealNumberField(index='LON', desc="A geographic coordinate that specifies \n" "the east-west position of the vessel \n" "on the Earth's surface") latitude = RealNumberField(index='LAT', desc="a geographic coordinate that specifies \n" "the north-south position of the vessel \n" "on the Earth's surface") status = NumberField(index='STATUS', desc="The AIS Navigational Status of the subject \n" "vessel as input by the vessel's crew - more. \n" "There might be discrepancies with the vessel's \n" "detail page when vessel speed is near zero \n" "(0) knots.") speed = NumberField(index='SPEED', desc="The speed (in knots x10) that the subject \n" "vessel is reporting according to AIS \n" "transmissions") course = NumberField(index='COURSE', desc="The course (in degrees) that the subject \n" "vessel is reporting according to AIS \n" "transmissions") port_unlocode = TextField(index='PORT_UNLOCODE', desc="A uniquely assigned ID by United \n" "Nations for the Current Port") current_port = TextField(index='CURRENT_PORT', desc="The name of the Port the subject vessel \n" "is currently in (NULL if the vessel \n" "is underway)") current_port_country = TextField(index='CURRENT_PORT_COUNTRY', desc="The Country that the Current \n" "Port is located at") next_port_unlocode = TextField(index='NEXT_PORT_UNLOCODE', desc="A uniquely assigned ID by United \n" "Nations for the Next Port") next_port_id = NumberField(index='NEXT_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Next Port") next_port_name = TextField(index='NEXT_PORT_NAME', desc="The Name of the Next Port as derived by \n" "MarineTraffic based on the subject \n" "vessel's reported Destination") next_port_country = TextField(index='NEXT_PORT_COUNTRY', desc="The Country that the Next \n" "Port is located at") eta = DatetimeField(index='ETA', desc="The Estimated Time of Arrival to Destination \n" "of the subject vessel according to the \n" "AIS transmissions", format='%Y-%m-%dT%H:%M:%S') eta_calc = DatetimeField(index='ETA_CALC', desc="The Estimated Time of Arrival to \n" "Destination of the subject vessel \n" "according to the MarineTraffic \n" "calculations", format='%Y-%m-%dT%H:%M:%S') eta_updated = DatetimeField(index='ETA_UPDATED', desc="The date and time (in UTC) that the \n" "ETA was calculated by MarineTraffic", format='%Y-%m-%dT%H:%M:%S') timestamp = DatetimeField(index='TIMESTAMP', desc="The date and time (in UTC) that the \n" "subject vessel's position was recorded \n" "by MarineTraffic", format='%Y-%m-%dT%H:%M:%S') port_id = NumberField(index='PORT_ID', desc="A uniquely assigned ID by MarineTraffic \n" "for the Current Port") ship_name = TextField(index='SHIPNAME', desc="The Shipname of the subject vessel") ship_type = NumberField(index='SHIPTYPE', desc="The Shiptype of the subject vessel \n" "according to AIS transmissions") type_name = TextField(index='TYPE_NAME', desc="The Type of the subject vessel") call_sign = TextField(index='CALLSIGN', desc="A uniquely designated identifier for \n" "the vessel's transmitter station") flag = TextField(index='FLAG', desc="The flag of the subject vessel according \n" "to AIS transmissions") length = RealNumberField(index='LENGTH', desc="The overall Length (in metres) \n" "of the subject vessel") width = RealNumberField(index='WIDTH', desc="The Breadth (in metres) of \n" "the subject vessel") grt = NumberField(index='GRT', desc="Gross Tonnage - unitless measure \n" "that calculates the moulded volume of \n" "all enclosed spaces of a ship") dwt = NumberField(index='DWT', desc="Deadweight - a measure (in metric tons) of \n" "how much weight a vessel can safely carry \n" "(excluding the vessel's own weight") draught = NumberField(index='DRAUGHT', desc="The Draught (in metres x10) of the \n" "subject vessel according to the \n" "AIS transmissions") year_built = NumberField(index='YEAR_BUILT', desc="The year that the subject vessel was built") last_port = TextField(index='LAST_PORT', desc="The Name of the Last Port \n" "the vessel has visited") last_port_time = DatetimeField(index='LAST_PORT_TIME', desc="The Date and Time (in UTC) that the \n" "subject vessel departed from the \n" "Last Port", format='%Y-%m-%dT%H:%M:%S') last_port_id = NumberField(index='LAST_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Last Port") last_port_unlocode = TextField(index='LAST_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Last Port") last_port_country = TextField(index='LAST_PORT_COUNTRY', desc="The Country that the Last \n" "Port is located at")
class SingleVesselPosition(Model): """Get positional information for a set of predefined vessels.""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - \n" "a nine-digit number sent in digital \n" "form over a radio frequency that \n" "identifies the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation \n" "number - a seven-digit number that \n" "uniquely identifies vessels") longitude = RealNumberField(index='LON', desc="A geographic coordinate that \n" "specifies the east-west position \n" "of the vessel on the Earth's surface") latitude = RealNumberField(index='LAT', desc="a geographic coordinate that specifies \n" "the north-south position of the \n" "vessel on the Earth's surface") speed = NumberField(index='SPEED', desc="The speed (in knots x10) that the \n" "subject vessel is reporting \n" "according to AIS transmissions") heading = NumberField(index='HEADING', desc="The heading (in degrees) that the \n" "subject vessel is reporting according \n" "to AIS transmissions") status = NumberField(index='STATUS', desc="The AIS Navigational Status of the \n" "subject vessel as input by the vessel's \n" "crew - more. There might be discrepancies \n" "with the vessel's detail page when vessel \n" "speed is near zero (0) knots.") course = NumberField(index='COURSE', desc="The course (in degrees) that \n" "the subject vessel is reporting \n" "according to AIS transmissions") timestamp = DatetimeField(index='TIMESTAMP', desc="The date and time (in UTC) that the \n" "subject vessel's position was \n" "recorded by MarineTraffic", format='%Y-%m-%dT%H:%M:%S') dsrc = TextField(index='DSRC', desc="Data Source - Defines whether the \n" "transmitted AIS data was received by a \n" "Terrestrial or a Satellite AIS Station") ship_name = TextField(index='SHIPNAME', desc="The Ship name of the subject vessel") ship_type = NumberField(index='SHIPTYPE', desc="The Ship type of the subject \n" "vessel according to AIS transmissions") call_sign = TextField(index='CALLSIGN', desc="A uniquely designated identifier \n" "for the vessel's transmitter station") flag = TextField(index='FLAG', desc="The flag of the subject vessel \n" "according to AIS transmissions") length = RealNumberField(index='LENGTH', desc="The overall Length (in metres) \n" "of the subject vessel") width = RealNumberField(index='WIDTH', desc="The Breadth (in metres) \n" "of the subject vessel") grt = NumberField(index='GRT', desc="Gross Tonnage - unitless measure \n" "that calculates the moulded volume \n" "of all enclosed spaces of a ship") dwt = NumberField(index='DWT', desc="Deadweight - a measure (in metric tons) \n" "of how much weight a vessel can safely \n" "carry (excluding the vessel's own weight") draught = NumberField(index='DRAUGHT', desc="The Draught (in metres x10) \n" "of the subject vessel according \n" "to the AIS transmissions") year_built = NumberField(index='YEAR_BUILT', desc="The year that the \n" "subject vessel was built") type_name = TextField(index='TYPE_NAME', desc="The Type of the subject vessel") ais_type_summary = TextField(index='AIS_TYPE_SUMMARY', desc="Further explanation of \n" "the SHIPTYPE ID") destination = TextField(index='DESTINATION', desc="The Destination of the \n" "subject vessel according \n" "to the AIS transmissions") eta = DatetimeField(index='ETA', desc="The Estimated Time of Arrival \n" "to Destination of the subject \n" "vessel according to the AIS transmissions", format='%Y-%m-%dT%H:%M:%S') current_port = TextField(index='CURRENT_PORT', desc="The name of the Port the subject \n" "vessel is currently in (NULL \n" "if the vessel is underway)") current_port_id = NumberField(index='PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Current Port") current_port_unlocode = TextField(index='PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Current Port") last_port = TextField(index='LAST_PORT', desc="The Name of the Last Port \n" "the vessel has visited") last_port_time = DatetimeField(index='LAST_PORT_TIME', desc="The Date and Time (in UTC) that \n" "the subject vessel departed from \n" "the Last Port", format='%Y-%m-%dT%H:%M:%S') last_port_id = NumberField(index='LAST_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Last Port") last_port_unlocode = TextField(index='LAST_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Last Port") next_port_id = NumberField(index='NEXT_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Next Port") next_port_unlocode = TextField(index='NEXT_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Next Port") next_port_name = TextField(index='NEXT_PORT_NAME', desc="The Name of the Next Port as \n" "derived by MarineTraffic based on \n" "the subject vessel's reported Destination") next_port_country = TextField(index='NEXT_PORT_COUNTRY', desc="The Country that the Next \n" "Port is located at") eta_calc = DatetimeField(index='ETA_CALC', desc="The Estimated Time of Arrival to \n" "Destination of the subject vessel \n" "according to the MarineTraffic calculations", format='%Y-%m-%dT%H:%M:%S')
class VesselParticural(Model): """Get vessel particulars (including type, dimensions, ownership etc).""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - \n" "a nine-digit number sent in digital form \n" "over a radio frequency that identifies \n" "the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation number - a \n" "seven-digit number that uniquely identifies vessels") name = TextField(index='NAME', desc="The Name of the subject vessel") build_place = TextField(index='PLACE_OF_BUILD', desc="The place the subject vessel was built at") build_year = NumberField(index='BUILD', desc="The year that the subject vessel was built") breadth_extreme = RealNumberField(index='BREADTH_EXTREME', desc="The extreme breadth (in metres) \n" "of the subject vessel") summer_dwt = NumberField(index='SUMMER_DWT', desc="Deadweight - a measure (in metric tons) \n" "of how much weight a vessel can safely carry \n" "(excluding the vessel's own weight)") displacement_summer = NumberField(index='DISPLACEMENT_SUMMER', desc="Displacement - a measure of \n" "the vessel's weight") call_sign = TextField(index='CALLSIGN', desc="A uniquely designated identifier for \n" "the vessel's transmitter station") flag = TextField(index='FLAG', desc="The flag of the subject vessel according \n" "to AIS transmissions") draught = RealNumberField( index='DRAUGHT', desc="The Draught (in metres x10) of the subject \n" "vessel according to the AIS transmissions") overall_length = RealNumberField(index='LENGTH_OVERALL', desc="The Overall Length (in metres) \n" "of the subject vessel") fuel_consumption = TextField( index='FUEL_CONSUMPTION', desc="The Fuel Consumption of the subject vessel") max_speed = RealNumberField(index='SPEED_MAX', desc="The Maximum Operational Speed \n" "of the subject vessel") condition_speed = RealNumberField(index='SPEED_SERVICE', desc="The Speed that the vessel is \n" "designed to sail under certain \n" "conditions") wet_cargo_capacity = NumberField(index='LIQUID_OIL', desc="The Capacity (in cubic metres) \n" "of the wet cargo the vessel can carry") owner = TextField(index='OWNER', desc="The Owning Company of the subject vessel \n" "(null if the Owner and the Manager are the same)") manager = TextField(index='MANAGER', desc="The Managing Company of the subject vessel \n" "(null if the Owner and the Manager are the same)") vessel_type = TextField(index='VESSEL_TYPE', desc="The specific type of the subject vessel") manager_owner = TextField(index='MANAGER_OWNER', desc="The Owning/Managing Company (null \n" "if the Owner is different than the Manager)")
class EtaToPort(Model): """Get ETA and voyage information for a vessel of your choice, to any port you define""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - \n" "a nine-digit number sent in digital \n" "form over a radio frequency that identifies \n" "the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation \n" "number - a seven-digit number that \n" "uniquely identifies vessels") ship_id = NumberField(index='SHIP_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the subject vessel") last_port = TextField(index='LAST_PORT', desc="The Name of the Last Port \n" "the vessel has visited") last_port_time = DatetimeField(index='LAST_PORT_TIME', desc="The Date and Time (in UTC) that \n" "the subject vessel departed from \n" "the Last Port", format='%Y-%m-%d %H:%M:%S') last_port_id = NumberField(index='LAST_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Last Port") last_port_unlocode = TextField(index='LAST_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Last Port") next_port_unlocode = TextField(index='NEXT_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Next Port") next_port_name = TextField(index='NEXT_PORT_NAME', desc="The Name of the Next Port as \n" "derived by MarineTraffic based on \n" "the subject vessel's reported Destination") eta_calc = DatetimeField(index='ETA_CALC', desc="The Estimated Time of Arrival to \n" "Destination of the subject vessel \n" "according to the MarineTraffic calculations", format='%Y-%m-%d %H:%M:%S') distance_to_go = NumberField(index='DISTANCE_TO_GO', desc="The Remaining Distance (in NM) \n" "for the subject vessel to reach \n" "the reported Destination") distance_travelled = NumberField(index='DISTANCE_TRAVELLED', desc="The Distance (in NM) that the \n" "subject vessel has travelled \n" "since departing from Last Port") speed = NumberField(index='SPEED_CALC', desc="The Speed of the vessel that MarineTraffic \n" "used to produce the ETA_CALC value") draught = NumberField(index='DRAUGHT', desc="The Draught (in metres x10) of the \n" "subject vessel according to the \n" "AIS transmissions") draught_max = NumberField(index='DRAUGHT_MAX', desc="The Maximum Draught that has been \n" "recorded for the subject vessel") load_status_name = TextField( index='LOAD_STATUS_NAME', desc="The Load Condition of the subject vessel \n" "(In Ballast, Partially Loaded, Loaded)") route = TextField(index='ROUTE', desc="The estimated route of the subject \n" "vessel to destination in WKT format") etd_calc = DatetimeField(index='ETD_CALC', desc="The Estimated Time of Departure from a \n" "Destination of the subject vessel according \n" "to the MarineTraffic calculations based on \n" "calculated eta, time at \n" "anchorage & time at port", format='%Y-%m-%d %H:%M:%S') time_anch = RealNumberField(index='TIME_ANCH', desc="The median number of days spent \n" "at anchorage the previous week") time_port = RealNumberField(index='TIME_PORT', desc="The median number of days spent at \n" "port by the selected market/shipclass")
class BerthCall(Model): """Get berth arrival and departure information for a specific vessel, berth, terminal or port.""" ship_id = NumberField(index='SHIP_ID', desc="Api Rspfield Shipid.") mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - \n" "a nine-digit number sent in digital \n" "form over a radio frequency that \n" "identifies the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation number - \n" "a seven-digit number that uniquely \n" "identifies vessels") dock_local_time = DatetimeField( index='DOCK_TIMESTAMP_LT', desc="The Date and Time (in Local Time) \n" "the subject vessel was Docked at the Berth", format='%Y-%m-%d %H:%M:%S') dock_utc_time = DatetimeField( index='DOCK_TIMESTAMP_UTC', desc="The Date and Time (in UTC) the subject \n" "vessel was Docked at the Berth", format='%Y-%m-%d %H:%M:%S') dock_offset_time = RealNumberField(index='DOCK_TIMESTAMP_OFFSET', desc="The time zone offset at the \n" "time of arrival/docking") undock_local_time = DatetimeField( index='UNDOCK_TIMESTAMP_LT', desc="The Date and Time (in Local Time) \n" "the subject vessel was Undocked \n" "from the Berth", format='%Y-%m-%d %H:%M:%S') undock_utc_time = DatetimeField(index='UNDOCK_TIMESTAMP_UTC', desc="The Date and Time (in UTC) the \n" "subject vessel was Undocked \n" "from the Berth", format='%Y-%m-%d %H:%M:%S') undock_offset_time = RealNumberField(index='UNDOCK_TIMESTAMP_OFFSET', desc="The time zone offset at the \n" "time of undocking/departure") ship_name = TextField(index='SHIPNAME', desc="The Ship name of the subject vessel") type_name = TextField(index='TYPE_NAME', desc="The Type of the subject vessel") grt = NumberField(index='GRT', desc="Gross Tonnage - unitless measure that \n" "calculates the moulded volume of all \n" "enclosed spaces of a ship") dwt = NumberField(index='DWT', desc="Deadweight - a measure (in metric tons) \n" "of how much weight a vessel can safely \n" "carry (excluding the vessel's own weight") flag = TextField(index='FLAG', desc="The flag of the subject vessel \n" "according to AIS transmissions") year_built = NumberField(index='YEAR_BUILT', desc="The year that the subject vessel was built") berth_id = NumberField(index='BERTH_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Current Berth") berth_name = TextField(index='BERTH_NAME', desc="The Name of the subject Berth") terminal_id = NumberField(index='TERMINAL_ID', desc="A uniquely assigned ID by MarineTraffic \n" "for the Terminal where the Berth belongs \n" "(if available)") terminal_name = TextField(index='TERMINAL_NAME', desc="The Name of the Terminal where \n" "the Berth belongs (if available)") port_name = TextField(index='PORT_NAME', desc="The Name of the subject Port") port_id = NumberField(index='PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Current Port") unlocode = TextField(index='UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the subject Port") country_code = TextField(index='COUNTRY_CODE', desc="The Country of the subject Port") destination_id = NumberField(index='DESTINATION_ID', desc="Api Rspfield Destination Id") destination = TextField(index='DESTINATION', desc="The Destination of the subject \n" "vessel according to the AIS transmissions") arrival_local_time = DatetimeField( index='ARR_TIMESTAMP_LT', desc="The Date and Time (in Local Time) the \n" "subject vessel arrived at the port, \n" "before the docking", format='%Y-%m-%d %H:%M:%S') arrival_utc_time = DatetimeField( index='ARR_TIMESTAMP_UTC', desc="The Date and Time (in UTC) the subject \n" "vessel arrived at the port, before \n" "the docking", format='%Y-%m-%d %H:%M:%S') arrival_draught = NumberField( index='ARR_DRAUGHT', desc="The Draught (in metres x10) of the subject \n" "vessel, at the time of arrival, \n" "according to the AIS transmissions") arrival_load_status = NumberField( index='ARR_LOAD_STATUS', desc="The load status of the subject vessel \n" "(0 : N/A, 1 : In Ballast, 2 : Partially Laden, \n" "3 : Fully Laden) at the time of arrival") distance_travelled = NumberField( index='DISTANCE_TRAVELLED', desc="The Distance (in NM) that the subject \n" "vessel has travelled since departing \n" "from Last Port") voyage_average_speed = NumberField( index='VOYAGE_SPEED_AVG', desc="Average Maintained Speed (in knots x10) \n" "since the last Port Call while steaming \n" "at speed > 5 knots - Updated upon Arrival") voyage_max_speed = NumberField( index='VOYAGE_SPEED_MAX', desc="Maximum Recorded Speed (in knots x10) \n" "since the last Port Call - \n" "Updated upon Arrival") voyage_idle_time = NumberField( index='VOYAGE_IDLE_TIME_MINS', desc="Total time in minutes since the previous \n" "Port Call while the vessel stopped or \n" "moving at speed < 3 knots - \n" "Updated upon Arrival") origin_name = TextField(index='PREVIOUS_NOANCH_NAME', desc="The name of the port of origin") origin_port_id = NumberField(index='PREVIOUS_NOANCH_ID', desc="The ID of the port of origin") origin_departure_time = DatetimeField( index='PREVIOUS_NOANCH_TIMESTAMP', desc="The time of Departure form the \n" "port of origin (UTC)", format='%Y-%m-%d %H:%M:%S') total_voyage_time = NumberField( index='ELAPSED_NOANCH', desc="Total time of Voyage since the previous \n" "Port Call except Anchorages and Canals - \n" "Updated upon Arrival") departure_local_time = DatetimeField( index='DEP_TIMESTAMP_LT', desc="The Date and Time (in Local Time) \n" "the subject vessel departed from the \n" "port, after the undocking", format='%Y-%m-%d %H:%M:%S') departure_utc_time = DatetimeField( index='DEP_TIMESTAMP_UTC', desc="The Date and Time (in UTC) the subject \n" "vessel departed from the port, \n" "after the undocking", format='%Y-%m-%d %H:%M:%S') departure_draught = NumberField( index='DEP_DRAUGHT', desc="The Draught (in metres x10) of the \n" "subject vessel, at the time of departure, \n" "according to the AIS transmission") departure_load_status = NumberField( index='DEP_LOAD_STATUS', desc="The load status of the subject vessel \n" "(0 : N/A, 1 : In Ballast, 2 : Partially Laden, \n" "3 : Fully Laden) at the time of departure") port_operation = NumberField( index='PORT_OPERATION', desc="Indicates LOAD/DISCHARGE operations in \n" "the subject Port Call event (0 : N/A, \n" "1 : load, 2 : discharge, 3 : both, 4 : none)") time_at_berth = NumberField(index='TIME_AT_BERTH', desc="The total time in minutes that \n" "the vessel stayed at berth") time_at_port = NumberField(index='TIME_AT_PORT', desc="The total time in minutes that \n" "the vessel stayed at port")
class VoyageForecast(Model): """Get a voyage forecast for a vessel or your MarineTraffic fleet""" mmsi = NumberField( index='MMSI', desc="Maritime Mobile Service Identity - a nine-digit \n" "number sent in digital form over a radio \n" "frequency that identifies the vessel's \n" "transmitter station") speed = NumberField(index='SPEED_CALC', desc="The Speed of the vessel that MarineTraffic \n" "used to produce the ETA_CALC value") destination = TextField(index='DESTINATION', desc="The Destination of the subject vessel \n" "according to the AIS transmissions") last_port_id = NumberField(index='LAST_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Last Port") last_port = TextField( index='LAST_PORT', desc="The Name of the Last Port the vessel has visited") last_port_unlocode = TextField(index='LAST_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Last Port") last_port_time = DatetimeField( index='LAST_PORT_TIME', desc="The Date and Time (in UTC) that the \n" "subject vessel departed from the Last Port", format='%Y-%m-%dT%H:%M:%S') next_port_id = NumberField(index='NEXT_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Next Port") next_port_name = TextField( index='NEXT_PORT_NAME', desc="The Name of the Next Port as derived by \n" "MarineTraffic based on the subject \n" "vessel's reported Destination") next_port_unlocode = TextField(index='NEXT_PORT_UNLOCODE', desc="A uniquely assigned ID by \n" "United Nations for the Next Port") eta = DatetimeField(index='ETA', desc="The Estimated Time of Arrival to \n" "Destination of the subject vessel \n" "according to the AIS transmissions", format='%Y-%m-%dT%H:%M:%S') eta_calc = DatetimeField(index='ETA_CALC', desc="The Estimated Time of Arrival to \n" "Destination of the subject vessel \n" "according to the MarineTraffic calculations", format='%Y-%m-%dT%H:%M:%S') distance_travelled = NumberField( index='DISTANCE_TRAVELLED', desc="The Distance (in NM) that the subject \n" "vessel has travelled since departing \n" "from Last Port") distance_to_go = NumberField(index='DISTANCE_TO_GO', desc="The Remaining Distance (in NM) for \n" "the subject vessel to reach the \n" "reported Destination") draught = NumberField(index='DRAUGHT', desc="The Draught (in metres x10) of the \n" "subject vessel according to the AIS \n" "transmissions") draught_max = NumberField(index='DRAUGHT_MAX', desc="The Maximum Draught that has been \n" "recorded for the subject vessel") load_status_name = TextField( index='LOAD_STATUS_NAME', desc="The Load Condition of the subject vessel \n" "(In Ballast, Partially Loaded, Loaded)") route = LinestringField(index='ROUTE', desc="The estimated route of the subject \n" "vessel to destination in WKT format")
class PortCongestion(Model): """Receive the Port Congestion for a specific period of time""" port_id = NumberField(index='PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Current Port") year = NumberField(index='YEAR', desc="Year of week the data are referring to") week = NumberField(index='WEEK', desc="Week of year the data are referring to") market = TextField(index='MARKET', desc="The commercial market segment \n" "the subject vessel belongs to") ship_class = TextField(index='SHIPCLASS', desc="The class of the subject vessel \n" "based on vessel type and size") time_anch = RealNumberField(index='TIME_ANCH', desc="The median number of days spent \n" "at anchorage the previous week") time_port = RealNumberField(index='TIME_PORT', desc="The median number of days spent at \n" "port by the selected market/shipclass") vessels = NumberField(index='VESSELS', desc="Number of vessels that were \n" "used in the median calculations") calls = NumberField(index='CALLS', desc="Number of individual calls that \n" "were used in the median calculations \n" "(e.g. if the same vessel has called \n" "twice within the same week, it will \n" "count twice in CALLS and once in VESSELS") time_anch_stdev = RealNumberField( index='TIME_ANCH_STDEV', desc="The week-to-week standard deviation \n" "in days spent at anchorage") time_anch_diff = RealNumberField(index='TIME_ANCH_DIFF', desc="The week-to-week difference of \n" "number of days spent at anchorage") time_anch_diff_perc = RealNumberField( index='TIME_ANCH_DIFF_PERC', desc="The week-to-week difference of \n" "number of days spent at \n" "anchorage as a percentage") time_port_stdev = RealNumberField(index='TIME_PORT_STDEV', desc="The week-to-week standard \n" "deviation in days spent at port") time_port_diff = RealNumberField(index='TIME_PORT_DIFF', desc="The week-to-week difference \n" "of number of days spent at port") time_port_diff_perc = RealNumberField(index='TIME_PORT_DIFF_PERC', desc="The week-to-week difference \n" "of number of days spent at \n" "port as a percentage")
class PredictiveDestinations(Model): """Receive a prediction of the likely destination of a vessel or fleet of vessels.""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - a \n" "nine-digit number sent in digital form \n" "over a radio frequency that identifies \n" "the vessel's transmitter station") imo = NumberField(index='IMO', desc="International Maritime Organisation number - a \n" "seven-digit number that uniquely \n" "identifies vessels") ship_id = NumberField(index='SHIP_ID', desc="A uniquely assigned ID by MarineTraffic \n" "for the subject vessel") ship_name = TextField(index='SHIPNAME', desc="The Shipname of the subject vessel") ship_class = TextField(index='SHIPCLASS', desc="The class of the subject vessel \n" "based on vessel type and size") market = TextField(index='MARKET', desc="The commercial market segment \n" "the subject vessel belongs to") manager = TextField(index='MANAGER', desc="The Managing Company of the subject vessel \n" "(null if the Owner and the Manager are the same)") owner = TextField(index='OWNER', desc="The Owning Company of the subject vessel \n" "(null if the Owner and the Manager are the same)") from_port_id = NumberField(index='FROM_PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the port that \n" "was used as origin to retrieve \n" "possible destinations") from_port = TextField(index='FROM_PORT', desc="The port that was used as origin \n" "to retrieve possible destinations") next_port_1_id = NumberField(index='NEXT_PORT_1_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the most \n" "probable destination port from \n" "the given port of origin") next_port_1 = TextField(index='NEXT_PORT_1', desc="Most probable destination port \n" "from the given port of origin") next_port_1_prob = RealNumberField( index='NEXT_PORT_1_PROB', desc="The probability of visiting the \n" "most likely destination port") next_area_1 = TextField(index='NEXT_AREA_1', desc="The area where the most probable port is") next_area_1_prob = RealNumberField( index='NEXT_AREA_1_PROB', desc="The probability of visiting the \n" "area where the predicted port is") next_port_2_id = NumberField(index='NEXT_PORT_2_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the most \n" "probable destination port from \n" "the given port of origin") next_port_2 = TextField(index='NEXT_PORT_2', desc="Most probable destination port \n" "from the given port of origin") next_port_2_prob = RealNumberField( index='NEXT_PORT_2_PROB', desc="The probability of visiting the \n" "most likely destination port") next_area_2 = TextField(index='NEXT_AREA_2', desc="The area where the most probable port is") next_area_2_prob = RealNumberField( index='NEXT_AREA_2_PROB', desc="The probability of visiting the \n" "area where the predicted port is") next_port_3_id = NumberField(index='NEXT_PORT_3_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the most \n" "probable destination port from \n" "the given port of origin") next_port_3 = TextField(index='NEXT_PORT_3', desc="Most probable destination port \n" "from the given port of origin") next_port_3_prob = RealNumberField( index='NEXT_PORT_3_PROB', desc="The probability of visiting the \n" "most likely destination port") next_area_3 = TextField(index='NEXT_AREA_3', desc="The area where the most probable port is") next_area_3_prob = RealNumberField( index='NEXT_AREA_3_PROB', desc="The probability of visiting the \n" "area where the predicted port is") next_port_4_id = NumberField(index='NEXT_PORT_4_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the most \n" "probable destination port from \n" "the given port of origin") next_port_4 = TextField(index='NEXT_PORT_4', desc="Most probable destination port \n" "from the given port of origin") next_port_4_prob = RealNumberField( index='NEXT_PORT_4_PROB', desc="The probability of visiting the \n" "most likely destination port") next_area_4 = TextField(index='NEXT_AREA_4', desc="The area where the most probable port is") next_area_4_prob = RealNumberField( index='NEXT_AREA_4_PROB', desc="The probability of visiting the \n" "area where the predicted port is") next_port_5_id = NumberField(index='NEXT_PORT_5_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the most \n" "probable destination port from \n" "the given port of origin") next_port_5 = TextField(index='NEXT_PORT_5', desc="Most probable destination port \n" "from the given port of origin") next_port_5_prob = RealNumberField( index='NEXT_PORT_5_PROB', desc="The probability of visiting the \n" "most likely destination port") next_area_5 = TextField(index='NEXT_AREA_5', desc="The area where the most probable port is") next_area_5_prob = RealNumberField( index='NEXT_AREA_5_PROB', desc="The probability of visiting the \n" "area where the predicted port is")
class PortCall(Model): """Get all vessel historical positions for a specific period of time.""" mmsi = NumberField(index='MMSI', desc="Maritime Mobile Service Identity - a \n" "ine-digit number sent in digital form \n" "over a radio frequency that identifies \n" "the vessel's transmitter station") ship_name = TextField(index='SHIPNAME', desc="The Ship name of the subject vessel") load_status = NumberField(index='LOAD_STATUS', desc="The load status of the subject vessel \n" "(0 : N/A, 1 : In Ballast, \n" "2 : Partially Laden, 3 : Fully Laden)") voyage_avg_speed = NumberField(index='VOYAGE_SPEED_AVG', desc="Average Maintained Speed (in knots x10) \n" "since the last Port Call while steaming \n" "at speed > 5 knots - Updated upon Arriva") voyage_max_speed = NumberField(index='VOYAGE_SPEED_MAX', desc="Maximum Recorded Speed (in knots x10) \n" "since the last Port Call - \n" "Updated upon Arrival") local_timestamp = DatetimeField(index='TIMESTAMP_LT', desc="The Date and Time (in Local Time) \n" "of the Port Call", format='%Y-%m-%dT%H:%M:%S') utc_timestamp = DatetimeField(index='TIMESTAMP_UTC', desc="The Date and Time (in UTC) \n" "of the Port Call", format='%Y-%m-%dT%H:%M:%S') ship_id = NumberField(index='SHIP_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the subject vessel") move_type = BooleanField(index='MOVE_TYPE', desc="0 or 1 - specifies the Port Call \n" "type (0 = Arrival, 1 = Departure)") type_name = TextField(index='TYPE_NAME', desc="The Type of the subject vessel") port_id = NumberField(index='PORT_ID', desc="A uniquely assigned ID by \n" "MarineTraffic for the Current Port") port_name = TextField(index='PORT_NAME', desc="The Type of the subject vessel") unlocode = TextField(index='UNLOCODE', desc="A uniquely assigned ID by United \n" "Nations for the subject Port") draught = NumberField(index='DRAUGHT', desc="The Draught (in metres x10) of the \n" "subject vessel according to the \n" "AIS transmissions") port_operation = NumberField(index='PORT_OPERATION', desc="Indicates LOAD/DISCHARGE operations in \n" "the subject Port Call event \n" "(0 : N/A, 1 : load, 2 : discharge, \n" "3 : both, 4 : none)") in_transit = BooleanField(index='INTRANSIT', desc="0 or 1 - specifies whether the vessel \n" "anchored in the Port or was In Transit \n" "(1 = In Transit)") distance_travelled = NumberField(index='DISTANCE_TRAVELLED', desc="The Distance (in NM) that the subject \n" "vessel has travelled since departing \n" "from Last Port") voyage_idle_time = NumberField(index='VOYAGE_IDLE_TIME_MINS', desc="Total time in minutes since the previous \n" "Port Call while the vessel stopped or \n" "moving at speed < 3 knots - \n" "Updated upon Arrival") elapsed_noanch = NumberField(index='ELAPSED_NOANCH', desc="Total time of Voyage since the \n" "previous Port Call except Anchorages \n" "and Canals - Updated upon Arrival") distance_leg = NumberField(index='DISTANCE_LEG', desc="The distance (in NM) between the last \n" "two calls regardless of Port Type") comfleet_grouped_type = TextField(index='COMFLEET_GROUPEDTYPE', desc="The commercial market segment \n" "the subject vessel belongs to") ship_class = TextField(index='SHIPCLASS', desc="The class of the subject vessel \n" "based on vessel type and size")
class VesselPhoto(Model): """Retrieve the most popular photo of a vessel.""" url = TextField(index='URL', desc="The URL of the photo")