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 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')
Example #3
0
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 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 VesselHistoricalPosition(Model):
    """Get all vessel historical positions for a specific period of time."""

    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")

    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 \n"
                         "vessel's detail page when vessel speed is \n"
                         "near zero (0) knots.")

    speed = NumberField(index='SPEED',
                        desc="The speed (in knots x10) that the subject \n"
                        "vessel is reporting according to \n"
                        "AIS transmissions")

    longitude = RealNumberField(
        index='LON',
        desc="A geographic coordinate that specifies \n"
        "the east-west position of the vessel on \n"
        "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")

    course = NumberField(index='COURSE',
                         desc="The course (in degrees) that the subject \n"
                         "vessel is reporting according to \n"
                         "AIS transmissions")

    heading = NumberField(index='HEADING',
                          desc="The heading (in degrees) that the \n"
                          "subject vessel is reporting according \n"
                          "to AIS transmissions")

    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')

    ship_id = NumberField(index='SHIP_ID',
                          desc="A uniquely assigned ID by MarineTraffic \n"
                          "for the subject vessel")

    wind_angle = NumberField(index='WIND_ANGLE',
                             desc="The current angle of the wind in the \n"
                             "subject area (in degrees, compared \n"
                             "to True North)")

    wind_speed = NumberField(index='WIND_SPEED',
                             desc="The current wind speed in \n"
                             "the subject area (in knots)")

    wind_temp = NumberField(index='WIND_TEMP',
                            desc="The current temperature of the wind in \n"
                            "the subject area (in Celsius degrees)")
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")
Example #7
0
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")
Example #8
0
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")