{ "cells": [ { "cell_type": "markdown", "id": "b75663c0", "metadata": {}, "source": [ "## Import Libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "78bc96d3", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import os\n", "import requests\n", "import json\n", "from datetime import datetime" ] }, { "cell_type": "markdown", "id": "cc42da03", "metadata": {}, "source": [ "## Load API Key" ] }, { "cell_type": "code", "execution_count": 2, "id": "3300679b", "metadata": {}, "outputs": [], "source": [ "api_key = os.environ['VORTEXA_API_KEY']" ] }, { "cell_type": "markdown", "id": "ff8a45b0", "metadata": {}, "source": [ "## 1. Access Signals API via VesselSummary\n", "\n", "This endpoint provides the Vessel Summary (location represented in lat long, draught, heading etc) for a given snapshot.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "7fa7fa1d", "metadata": {}, "outputs": [], "source": [ "list_of_vessels = ['9297319', '9398072']\n", "timestamp = datetime(2024,5,20)" ] }, { "cell_type": "code", "execution_count": 7, "id": "dfacf438", "metadata": {}, "outputs": [], "source": [ "def extract_vessel_summary(list_of_vessels, timestamp):\n", " URL = \"https://api.vortexa.com/v6/signals/vessel-summary\"\n", " timestamp_iso = timestamp.isoformat()\n", " \n", " ## Make API calls\n", " PARAMS = {\n", " 'apikey':api_key,\n", " 'timestamp':timestamp_iso,\n", " 'vessel_id': list_of_vessels\n", " }\n", " r = requests.get(url = URL, params = PARAMS)\n", " data = r.json()\n", " return data" ] }, { "cell_type": "code", "execution_count": 8, "id": "8ec33099", "metadata": {}, "outputs": [], "source": [ "data = extract_vessel_summary(list_of_vessels,timestamp)" ] }, { "cell_type": "code", "execution_count": 9, "id": "47a36707", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'total': 2,\n", " 'data': [{'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-20T00:45:12.000Z',\n", " 'lat': 18.03962367,\n", " 'lon': 118.08548064,\n", " 'speed': 13,\n", " 'heading': 221,\n", " 'declared_destination': 'SG SIN',\n", " 'declared_eta': '2024-05-24T12:00:00.000Z'},\n", " {'vessel_id': 'd3e9302f6a763df8',\n", " 'timestamp': '2024-05-20T00:00:04.000Z',\n", " 'lat': 22.46878958,\n", " 'lon': 120.28884751,\n", " 'speed': 0.1,\n", " 'heading': 152.7,\n", " 'draught': 15,\n", " 'declared_destination': 'TW SHL',\n", " 'declared_eta': '2024-05-16T02:00:00.000Z'}],\n", " 'metadata': []}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": 10, "id": "8a07fbe6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
vessel_idtimestamplatlonspeedheadingdeclared_destinationdeclared_etadraught
0357c920e329aaa912024-05-20T00:45:12.000Z18.039624118.08548113.0221.0SG SIN2024-05-24T12:00:00.000ZNaN
1d3e9302f6a763df82024-05-20T00:00:04.000Z22.468790120.2888480.1152.7TW SHL2024-05-16T02:00:00.000Z15.0
\n", "
" ], "text/plain": [ " vessel_id timestamp lat lon speed \\\n", "0 357c920e329aaa91 2024-05-20T00:45:12.000Z 18.039624 118.085481 13.0 \n", "1 d3e9302f6a763df8 2024-05-20T00:00:04.000Z 22.468790 120.288848 0.1 \n", "\n", " heading declared_destination declared_eta draught \n", "0 221.0 SG SIN 2024-05-24T12:00:00.000Z NaN \n", "1 152.7 TW SHL 2024-05-16T02:00:00.000Z 15.0 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "json_data = data['data']\n", "df = pd.DataFrame(json_data)\n", "df" ] }, { "cell_type": "markdown", "id": "ad560b6e", "metadata": {}, "source": [ "## 2. Access Signals API via VesselPosition\n", "\n", "This endpoint provides you the vessel trails." ] }, { "cell_type": "code", "execution_count": 11, "id": "8e596463", "metadata": {}, "outputs": [], "source": [ "list_of_vessels = ['9297319']\n", "start_timestamp = datetime(2024,5,15)\n", "end_timestamp = datetime(2024,5,20)\n", "interval = '1h' # \"5m\",\"10m\",\"15m\",\"1h\",\"3h\",\"6h\",\"1d\",\"3d\",\"7d\"" ] }, { "cell_type": "code", "execution_count": 12, "id": "46670914", "metadata": {}, "outputs": [], "source": [ "def extract_vessel_positions(list_of_vessels, start_timestamp, end_timestamp, interval):\n", " URL = \"https://api.vortexa.com/v6/signals/vessel-positions\"\n", " start_timestamp_iso = start_timestamp.isoformat()\n", " end_timestamp_iso = end_timestamp.isoformat()\n", " ## Make API calls\n", " PARAMS = {\n", " 'apikey':api_key,\n", " 'time_min':start_timestamp_iso,\n", " 'time_max': end_timestamp_iso,\n", " 'interval': interval,\n", " 'vessel_id': list_of_vessels\n", " }\n", " r = requests.get(url = URL, params = PARAMS)\n", " data = r.json()\n", " return data" ] }, { "cell_type": "code", "execution_count": 13, "id": "946f6098", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'total': 120,\n", " 'data': [{'lat': 29.79916772,\n", " 'lon': 122.15970835,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T00:00:00.000Z',\n", " 'heading': 142,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.16279513,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T01:00:00.000Z',\n", " 'heading': 322,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.15974905,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T02:00:00.000Z',\n", " 'heading': 178,\n", " 'speed': 0.1},\n", " {'lat': 29.79916772,\n", " 'lon': 122.1597694,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T03:00:00.000Z',\n", " 'heading': 182,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.1597287,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T04:00:00.000Z',\n", " 'heading': 136,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.15974905,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T05:00:00.000Z',\n", " 'heading': 140.3,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.15978975,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T06:00:00.000Z',\n", " 'heading': 230.3,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.1597694,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T07:00:00.000Z',\n", " 'heading': 147.5,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.15978975,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T08:00:00.000Z',\n", " 'heading': 194,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.1598101,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T09:00:00.000Z',\n", " 'heading': 275.4,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.1597287,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T10:00:00.000Z',\n", " 'heading': 348,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.15978975,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T11:00:00.000Z',\n", " 'heading': 122,\n", " 'speed': 0},\n", " {'lat': 29.79916772,\n", " 'lon': 122.15974905,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T12:00:00.000Z',\n", " 'heading': 113.8,\n", " 'speed': 0},\n", " {'lat': 29.79373982,\n", " 'lon': 122.1358775,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T13:00:00.000Z',\n", " 'heading': 342,\n", " 'speed': 3},\n", " {'lat': 29.82087932,\n", " 'lon': 122.11762322,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T14:00:00.000Z',\n", " 'heading': 327.6,\n", " 'speed': 1},\n", " {'lat': 29.82087932,\n", " 'lon': 122.11952971,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T15:00:00.000Z',\n", " 'heading': 326.9,\n", " 'speed': 0},\n", " {'lat': 29.82087932,\n", " 'lon': 122.12012018,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T16:00:00.000Z',\n", " 'heading': 335,\n", " 'speed': 0.1},\n", " {'lat': 29.82359327,\n", " 'lon': 122.11931326,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T17:00:00.000Z',\n", " 'heading': 247,\n", " 'speed': 0},\n", " {'lat': 29.82630722,\n", " 'lon': 122.11934139,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T18:00:00.000Z',\n", " 'heading': 165,\n", " 'speed': 0},\n", " {'lat': 29.82630722,\n", " 'lon': 122.12263261,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T19:00:00.000Z',\n", " 'heading': 114.7,\n", " 'speed': 0},\n", " {'lat': 29.82630722,\n", " 'lon': 122.12263261,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T20:00:00.000Z',\n", " 'heading': 336,\n", " 'speed': 0},\n", " {'lat': 29.82359327,\n", " 'lon': 122.12466117,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T21:00:00.000Z',\n", " 'heading': 4.1,\n", " 'speed': 0},\n", " {'lat': 29.82359327,\n", " 'lon': 122.12376513,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T22:00:00.000Z',\n", " 'heading': 312,\n", " 'speed': 0},\n", " {'lat': 29.82359327,\n", " 'lon': 122.12309311,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-15T23:00:00.000Z',\n", " 'heading': 73.1,\n", " 'speed': 0},\n", " {'lat': 29.82087932,\n", " 'lon': 122.12355377,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T00:00:00.000Z',\n", " 'heading': 221,\n", " 'speed': 0.2},\n", " {'lat': 29.82087932,\n", " 'lon': 122.1203238,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T01:00:00.000Z',\n", " 'heading': 183.9,\n", " 'speed': 0.2},\n", " {'lat': 29.82087932,\n", " 'lon': 122.12012018,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T02:00:00.000Z',\n", " 'heading': 56.7,\n", " 'speed': 0.3},\n", " {'lat': 29.82087932,\n", " 'lon': 122.11845805,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T03:00:00.000Z',\n", " 'heading': 142.7,\n", " 'speed': 0.1},\n", " {'lat': 29.82087932,\n", " 'lon': 122.11526877,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T04:00:00.000Z',\n", " 'heading': 212,\n", " 'speed': 0},\n", " {'lat': 29.83987697,\n", " 'lon': 122.1189856,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T05:00:00.000Z',\n", " 'heading': 236.9,\n", " 'speed': 5.8},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07689255,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T06:00:00.000Z',\n", " 'heading': 47,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07699428,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T07:00:00.000Z',\n", " 'heading': 319.5,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.0769129,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T08:00:00.000Z',\n", " 'heading': 73,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07681117,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T09:00:00.000Z',\n", " 'heading': 355.3,\n", " 'speed': 0.1},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07646529,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T10:00:00.000Z',\n", " 'heading': 125,\n", " 'speed': 0.2},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07634321,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T11:00:00.000Z',\n", " 'heading': 297.7,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07894206,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T12:00:00.000Z',\n", " 'heading': 142,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07822997,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T13:00:00.000Z',\n", " 'heading': 265.5,\n", " 'speed': 0},\n", " {'lat': 29.80459562,\n", " 'lon': 122.0730222,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T14:00:00.000Z',\n", " 'heading': 136,\n", " 'speed': 0},\n", " {'lat': 29.80730957,\n", " 'lon': 122.07422233,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T15:00:00.000Z',\n", " 'heading': 1,\n", " 'speed': 0},\n", " {'lat': 29.80730957,\n", " 'lon': 122.07196931,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T16:00:00.000Z',\n", " 'heading': 255.9,\n", " 'speed': 0},\n", " {'lat': 29.80730957,\n", " 'lon': 122.07192863,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T17:00:00.000Z',\n", " 'heading': 184.9,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07599734,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T18:00:00.000Z',\n", " 'heading': 73,\n", " 'speed': 0.1},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07628218,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T19:00:00.000Z',\n", " 'heading': 98,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.0763839,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T20:00:00.000Z',\n", " 'heading': 173,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.0792269,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T21:00:00.000Z',\n", " 'heading': 272.6,\n", " 'speed': 0},\n", " {'lat': 29.80730957,\n", " 'lon': 122.07709068,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T22:00:00.000Z',\n", " 'heading': 217,\n", " 'speed': 0},\n", " {'lat': 29.81002352,\n", " 'lon': 122.07875895,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-16T23:00:00.000Z',\n", " 'heading': 286,\n", " 'speed': 0.1},\n", " {'lat': 29.80459562,\n", " 'lon': 122.07653636,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T00:00:00.000Z',\n", " 'heading': 168,\n", " 'speed': 3.6},\n", " {'lat': 29.81816537,\n", " 'lon': 122.12172125,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T01:00:00.000Z',\n", " 'heading': 310,\n", " 'speed': 1.9},\n", " {'lat': 29.82359327,\n", " 'lon': 122.11754935,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T02:00:00.000Z',\n", " 'heading': 149.5,\n", " 'speed': 0.1},\n", " {'lat': 29.82359327,\n", " 'lon': 122.11716245,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T03:00:00.000Z',\n", " 'heading': 283.5,\n", " 'speed': 0},\n", " {'lat': 29.82359327,\n", " 'lon': 122.1176919,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T04:00:00.000Z',\n", " 'heading': 19.7,\n", " 'speed': 0.1},\n", " {'lat': 29.82630722,\n", " 'lon': 122.11714987,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T05:00:00.000Z',\n", " 'heading': 107.8,\n", " 'speed': 0},\n", " {'lat': 29.82630722,\n", " 'lon': 122.11561004,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T06:00:00.000Z',\n", " 'heading': 183.6,\n", " 'speed': 0},\n", " {'lat': 29.72860503,\n", " 'lon': 122.22474775,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T07:00:00.000Z',\n", " 'heading': 122,\n", " 'speed': 12.2},\n", " {'lat': 29.68246788,\n", " 'lon': 122.42566153,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T08:00:00.000Z',\n", " 'heading': 94.9,\n", " 'speed': 12.8},\n", " {'lat': 29.65804234,\n", " 'lon': 122.70430069,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T09:00:00.000Z',\n", " 'heading': 94,\n", " 'speed': 14.9},\n", " {'lat': 29.5359146,\n", " 'lon': 122.90611447,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T10:00:00.000Z',\n", " 'heading': 135.7,\n", " 'speed': 13},\n", " {'lat': 29.36222182,\n", " 'lon': 123.06894578,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T11:00:00.000Z',\n", " 'heading': 140,\n", " 'speed': 13.2},\n", " {'lat': 29.17767324,\n", " 'lon': 123.20546952,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T12:00:00.000Z',\n", " 'heading': 181,\n", " 'speed': 13},\n", " {'lat': 28.96327121,\n", " 'lon': 123.18214618,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T13:00:00.000Z',\n", " 'heading': 189,\n", " 'speed': 13.3},\n", " {'lat': 28.72987154,\n", " 'lon': 123.15235342,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T14:00:00.000Z',\n", " 'heading': 184,\n", " 'speed': 13.3},\n", " {'lat': 28.52361136,\n", " 'lon': 123.12777935,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T15:00:00.000Z',\n", " 'heading': 186,\n", " 'speed': 13.3},\n", " {'lat': 28.30649539,\n", " 'lon': 123.09874653,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T16:00:00.000Z',\n", " 'heading': 183,\n", " 'speed': 13},\n", " {'lat': 28.08937941,\n", " 'lon': 123.08738047,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T17:00:00.000Z',\n", " 'heading': 186,\n", " 'speed': 13.6},\n", " {'lat': 27.84783789,\n", " 'lon': 123.0545771,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T18:00:00.000Z',\n", " 'heading': 187,\n", " 'speed': 13},\n", " {'lat': 27.62529401,\n", " 'lon': 123.02198938,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T19:00:00.000Z',\n", " 'heading': 187,\n", " 'speed': 13},\n", " {'lat': 27.40546409,\n", " 'lon': 122.99761847,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T20:00:00.000Z',\n", " 'heading': 185,\n", " 'speed': 13.8},\n", " {'lat': 27.16663651,\n", " 'lon': 122.96866076,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T21:00:00.000Z',\n", " 'heading': 186,\n", " 'speed': 13.9},\n", " {'lat': 26.93052289,\n", " 'lon': 122.93858994,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T22:00:00.000Z',\n", " 'heading': 185,\n", " 'speed': 14},\n", " {'lat': 26.68898136,\n", " 'lon': 122.91194802,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-17T23:00:00.000Z',\n", " 'heading': 188,\n", " 'speed': 14},\n", " {'lat': 26.52614438,\n", " 'lon': 122.88968661,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T00:00:00.000Z',\n", " 'heading': 184,\n", " 'speed': 8.9},\n", " {'lat': 26.3578795,\n", " 'lon': 122.87482768,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T01:00:00.000Z',\n", " 'heading': 186,\n", " 'speed': 10},\n", " {'lat': 26.14890537,\n", " 'lon': 122.85031141,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T02:00:00.000Z',\n", " 'heading': 185,\n", " 'speed': 13},\n", " {'lat': 25.9317894,\n", " 'lon': 122.82415192,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T03:00:00.000Z',\n", " 'heading': 187,\n", " 'speed': 13},\n", " {'lat': 25.71195947,\n", " 'lon': 122.79155459,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T04:00:00.000Z',\n", " 'heading': 185,\n", " 'speed': 12.7},\n", " {'lat': 25.52469694,\n", " 'lon': 122.78071988,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T05:00:00.000Z',\n", " 'heading': 184,\n", " 'speed': 13},\n", " {'lat': 25.29129727,\n", " 'lon': 122.74754864,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T06:00:00.000Z',\n", " 'heading': 180,\n", " 'speed': 12},\n", " {'lat': 25.10674869,\n", " 'lon': 122.72903488,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T07:00:00.000Z',\n", " 'heading': 188,\n", " 'speed': 10},\n", " {'lat': 24.93305591,\n", " 'lon': 122.70850381,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T08:00:00.000Z',\n", " 'heading': 183,\n", " 'speed': 11},\n", " {'lat': 24.75936313,\n", " 'lon': 122.70244922,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T09:00:00.000Z',\n", " 'heading': 180,\n", " 'speed': 11},\n", " {'lat': 24.5232495,\n", " 'lon': 122.69531851,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T10:00:00.000Z',\n", " 'heading': 185,\n", " 'speed': 13.6},\n", " {'lat': 24.27899403,\n", " 'lon': 122.69727544,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T11:00:00.000Z',\n", " 'heading': 179,\n", " 'speed': 14.7},\n", " {'lat': 24.03745251,\n", " 'lon': 122.69568269,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T12:00:00.000Z',\n", " 'heading': 175,\n", " 'speed': 14.3},\n", " {'lat': 23.81490863,\n", " 'lon': 122.70197097,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T13:00:00.000Z',\n", " 'heading': 181,\n", " 'speed': 13},\n", " {'lat': 23.59236475,\n", " 'lon': 122.69510511,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T14:00:00.000Z',\n", " 'heading': 179,\n", " 'speed': 13},\n", " {'lat': 23.36710693,\n", " 'lon': 122.69588082,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T15:00:00.000Z',\n", " 'heading': 181,\n", " 'speed': 13},\n", " {'lat': 23.14999095,\n", " 'lon': 122.64266226,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T16:00:00.000Z',\n", " 'heading': 199,\n", " 'speed': 13},\n", " {'lat': 22.94644473,\n", " 'lon': 122.55942786,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T17:00:00.000Z',\n", " 'heading': 199,\n", " 'speed': 13.9},\n", " {'lat': 22.7374706,\n", " 'lon': 122.48207241,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T18:00:00.000Z',\n", " 'heading': 199,\n", " 'speed': 14},\n", " {'lat': 22.50135697,\n", " 'lon': 122.39776598,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T19:00:00.000Z',\n", " 'heading': 194,\n", " 'speed': 14},\n", " {'lat': 22.30866655,\n", " 'lon': 122.29900956,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T20:00:00.000Z',\n", " 'heading': 211,\n", " 'speed': 13.5},\n", " {'lat': 22.05898317,\n", " 'lon': 122.23433461,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T21:00:00.000Z',\n", " 'heading': 196,\n", " 'speed': 14},\n", " {'lat': 21.8310114,\n", " 'lon': 122.1449815,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T22:00:00.000Z',\n", " 'heading': 195,\n", " 'speed': 13.8},\n", " {'lat': 21.61389542,\n", " 'lon': 122.06618315,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-18T23:00:00.000Z',\n", " 'heading': 202,\n", " 'speed': 14},\n", " {'lat': 21.46191424,\n", " 'lon': 121.92683754,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T00:00:00.000Z',\n", " 'heading': 236,\n", " 'speed': 14.8},\n", " {'lat': 21.3940655,\n", " 'lon': 121.81309838,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T01:00:00.000Z',\n", " 'heading': 235,\n", " 'speed': 4},\n", " {'lat': 21.36963995,\n", " 'lon': 121.78063196,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T02:00:00.000Z',\n", " 'heading': 239,\n", " 'speed': 1},\n", " {'lat': 21.3614981,\n", " 'lon': 121.74456145,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T03:00:00.000Z',\n", " 'heading': 269,\n", " 'speed': 1},\n", " {'lat': 21.29364936,\n", " 'lon': 121.63254102,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T04:00:00.000Z',\n", " 'heading': 233,\n", " 'speed': 13},\n", " {'lat': 21.13624028,\n", " 'lon': 121.4103971,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T05:00:00.000Z',\n", " 'heading': 229,\n", " 'speed': 13},\n", " {'lat': 21.00868464,\n", " 'lon': 121.21689044,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T06:00:00.000Z',\n", " 'heading': 237,\n", " 'speed': 12},\n", " {'lat': 20.9028406,\n", " 'lon': 121.04199191,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T07:00:00.000Z',\n", " 'heading': 235,\n", " 'speed': 12},\n", " {'lat': 20.77528496,\n", " 'lon': 120.85310009,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T08:00:00.000Z',\n", " 'heading': 234,\n", " 'speed': 13},\n", " {'lat': 20.60973403,\n", " 'lon': 120.63182794,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T09:00:00.000Z',\n", " 'heading': 231,\n", " 'speed': 13},\n", " {'lat': 20.4658947,\n", " 'lon': 120.45957687,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T10:00:00.000Z',\n", " 'heading': 228,\n", " 'speed': 13},\n", " {'lat': 20.30034377,\n", " 'lon': 120.29443245,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T11:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 13},\n", " {'lat': 20.13750678,\n", " 'lon': 120.13504838,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T12:00:00.000Z',\n", " 'heading': 221,\n", " 'speed': 13.9},\n", " {'lat': 19.96110005,\n", " 'lon': 119.96408371,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T13:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 14.4},\n", " {'lat': 19.80911887,\n", " 'lon': 119.81594559,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T14:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 14},\n", " {'lat': 19.64899584,\n", " 'lon': 119.65279244,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T15:00:00.000Z',\n", " 'heading': 222,\n", " 'speed': 13},\n", " {'lat': 19.43459381,\n", " 'lon': 119.45447697,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T16:00:00.000Z',\n", " 'heading': 221,\n", " 'speed': 14},\n", " {'lat': 19.26090103,\n", " 'lon': 119.28165099,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T17:00:00.000Z',\n", " 'heading': 224,\n", " 'speed': 14},\n", " {'lat': 19.08178035,\n", " 'lon': 119.1026378,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T18:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 14.3},\n", " {'lat': 18.91622942,\n", " 'lon': 118.94735211,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T19:00:00.000Z',\n", " 'heading': 222,\n", " 'speed': 14.4},\n", " {'lat': 18.72625294,\n", " 'lon': 118.75505881,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T20:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 15.2},\n", " {'lat': 18.54713226,\n", " 'lon': 118.58117774,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T21:00:00.000Z',\n", " 'heading': 221,\n", " 'speed': 14},\n", " {'lat': 18.35986973,\n", " 'lon': 118.40035871,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T22:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 15.4},\n", " {'lat': 18.18074905,\n", " 'lon': 118.22451677,\n", " 'vessel_id': '357c920e329aaa91',\n", " 'timestamp': '2024-05-19T23:00:00.000Z',\n", " 'heading': 223,\n", " 'speed': 14.4}],\n", " 'metadata': [{'type': 'info', 'payload': 'Found 120 results'}]}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = extract_vessel_positions(list_of_vessels, start_timestamp, end_timestamp, interval)\n", "data" ] }, { "cell_type": "code", "execution_count": 14, "id": "a83477eb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
latlonvessel_idtimestampheadingspeed
029.799168122.159708357c920e329aaa912024-05-15T00:00:00.000Z142.00.0
129.799168122.162795357c920e329aaa912024-05-15T01:00:00.000Z322.00.0
229.799168122.159749357c920e329aaa912024-05-15T02:00:00.000Z178.00.1
329.799168122.159769357c920e329aaa912024-05-15T03:00:00.000Z182.00.0
429.799168122.159729357c920e329aaa912024-05-15T04:00:00.000Z136.00.0
.....................
11518.916229118.947352357c920e329aaa912024-05-19T19:00:00.000Z222.014.4
11618.726253118.755059357c920e329aaa912024-05-19T20:00:00.000Z223.015.2
11718.547132118.581178357c920e329aaa912024-05-19T21:00:00.000Z221.014.0
11818.359870118.400359357c920e329aaa912024-05-19T22:00:00.000Z223.015.4
11918.180749118.224517357c920e329aaa912024-05-19T23:00:00.000Z223.014.4
\n", "

120 rows × 6 columns

\n", "
" ], "text/plain": [ " lat lon vessel_id timestamp \\\n", "0 29.799168 122.159708 357c920e329aaa91 2024-05-15T00:00:00.000Z \n", "1 29.799168 122.162795 357c920e329aaa91 2024-05-15T01:00:00.000Z \n", "2 29.799168 122.159749 357c920e329aaa91 2024-05-15T02:00:00.000Z \n", "3 29.799168 122.159769 357c920e329aaa91 2024-05-15T03:00:00.000Z \n", "4 29.799168 122.159729 357c920e329aaa91 2024-05-15T04:00:00.000Z \n", ".. ... ... ... ... \n", "115 18.916229 118.947352 357c920e329aaa91 2024-05-19T19:00:00.000Z \n", "116 18.726253 118.755059 357c920e329aaa91 2024-05-19T20:00:00.000Z \n", "117 18.547132 118.581178 357c920e329aaa91 2024-05-19T21:00:00.000Z \n", "118 18.359870 118.400359 357c920e329aaa91 2024-05-19T22:00:00.000Z \n", "119 18.180749 118.224517 357c920e329aaa91 2024-05-19T23:00:00.000Z \n", "\n", " heading speed \n", "0 142.0 0.0 \n", "1 322.0 0.0 \n", "2 178.0 0.1 \n", "3 182.0 0.0 \n", "4 136.0 0.0 \n", ".. ... ... \n", "115 222.0 14.4 \n", "116 223.0 15.2 \n", "117 221.0 14.0 \n", "118 223.0 15.4 \n", "119 223.0 14.4 \n", "\n", "[120 rows x 6 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = pd.DataFrame(data['data'])\n", "df2" ] }, { "cell_type": "markdown", "id": "401465f5", "metadata": {}, "source": [ "## Comparison between VesselSummary and VesselPositions" ] }, { "cell_type": "markdown", "id": "6f4dfe50", "metadata": {}, "source": [ "|- |Vessel Summary|Vessel Positions|\n", "|----|----|-----|\n", "|Pros|Have More fields (declared dest, declared eta, draught)|1 API call to plot vessel trails|\n", "|Cons|Have to make more API calls for vessel trails|Lack of declared information|" ] }, { "cell_type": "code", "execution_count": null, "id": "3d868d5f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 5 }