Skip to content

Instantly share code, notes, and snippets.

@bergie
Last active April 5, 2024 03:11
Show Gist options
  • Save bergie/aa501636cfd93c02dc5a9022f871e09c to your computer and use it in GitHub Desktop.
Save bergie/aa501636cfd93c02dc5a9022f871e09c to your computer and use it in GitHub Desktop.
2023 polars.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "cbaddb8b",
"metadata": {},
"source": [
"# Polars for Amigo 40\n",
"\n",
"There are no [polar diagrams](https://en.wikipedia.org/wiki/Polar_diagram_(sailing\\)) available for the Amigo 40. Until now we've been doing weather routing with slightly modified OE 32 polars. Since we have a full time series for the [2022](https://lille-oe.de/2022/) and [2023](https://lille-oe.de/2023/) cruises, we can try to produce our own polars from that."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "31416130",
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"from influxdb import DataFrameClient\n",
"import pandas as pd\n",
"import numpy as np\n",
"from datetime import datetime, timedelta"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "34f4b959",
"metadata": {},
"outputs": [],
"source": [
"client = DataFrameClient(host='192.168.1.105', port=8086, database='lille-oe')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7167e076",
"metadata": {},
"outputs": [],
"source": [
"trips = []\n",
"trips.append({\n",
" 'start': '2022-04-14T06:00:00Z',\n",
" 'end': '2022-09-16T18:00:00Z',\n",
"})\n",
"trips.append({\n",
" 'start': '2023-04-12T06:00:00Z',\n",
" 'end': '2023-09-14T18:00:00Z',\n",
"})\n",
"\n",
"date_window='1m'\n",
"angles = [52, 60, 75, 90, 110, 120, 135, 150, 160]\n",
"speeds = [6, 8, 10, 12, 14, 16, 20]\n",
"rate_limit = 0.003"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ee5e7caa",
"metadata": {},
"outputs": [],
"source": [
"winds = []\n",
"for trip in trips: \n",
" wind_speed_query = \"\"\"select mean(value) as \"ms\"\n",
" from \"environment.wind.speedTrue\"\n",
" where time >= '{start}' and time <= '{end}'\n",
" group by time({window})\"\"\".format(start=trip['start'], end=trip['end'], window=date_window)\n",
" winds.append(client.query(query=wind_speed_query)['environment.wind.speedTrue'])\n",
"wind_speed = pd.concat(winds)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "668ffaeb",
"metadata": {},
"outputs": [],
"source": [
"winds = []\n",
"for trip in trips: \n",
" wind_angle_query = \"\"\"select mean(value) as \"radians\"\n",
" from \"environment.wind.angleTrueGround\"\n",
" where time >= '{start}' and time <= '{end}'\n",
" group by time({window})\"\"\".format(start=trip['start'], end=trip['end'], window=date_window)\n",
" winds.append(client.query(query=wind_angle_query)['environment.wind.angleTrueGround'])\n",
"wind_angle = pd.concat(winds)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3dd835e4",
"metadata": {},
"outputs": [],
"source": [
"turns = []\n",
"for trip in trips:\n",
" turn_query = \"\"\"select mean(value) as \"rate\"\n",
" from \"navigation.rateOfTurn\"\n",
" where time >= '{start}' and time <= '{end}'\n",
" group by time({window})\"\"\".format(start=trip['start'], end=trip['end'], window=date_window)\n",
" turns.append(client.query(query=turn_query)['navigation.rateOfTurn'])\n",
"turn = pd.concat(turns)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "c50c7173",
"metadata": {},
"outputs": [],
"source": [
"states = []\n",
"for trip in trips:\n",
" state_query = \"\"\"select first(stringValue) as \"state\"\n",
" from \"navigation.state\"\n",
" where time >= '{start}' and time <= '{end}'\n",
" group by time({window})\"\"\".format(start=trip['start'], end=trip['end'], window=date_window)\n",
" states.append(client.query(query=state_query)['navigation.state'])\n",
"vessel_state = pd.concat(states)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1fce981d",
"metadata": {},
"outputs": [],
"source": [
"wind_angle['degrees'] = wind_angle['radians'].apply(lambda x: x * 180 / np.pi)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "023f58b7",
"metadata": {},
"outputs": [],
"source": [
"wind_speed['knots'] = wind_speed['ms'].apply(lambda x: x*1.943844)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "1416d54e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ms</th>\n",
" <th>knots</th>\n",
" <th>radians</th>\n",
" <th>degrees</th>\n",
" <th>rate</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-04-24 14:16:00+00:00</th>\n",
" <td>10.456667</td>\n",
" <td>20.326129</td>\n",
" <td>1.626017</td>\n",
" <td>93.163892</td>\n",
" <td>0.001411</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-24 14:17:00+00:00</th>\n",
" <td>9.718889</td>\n",
" <td>18.892004</td>\n",
" <td>1.468933</td>\n",
" <td>84.163680</td>\n",
" <td>0.002160</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-24 14:18:00+00:00</th>\n",
" <td>10.884444</td>\n",
" <td>21.157662</td>\n",
" <td>1.553283</td>\n",
" <td>88.996579</td>\n",
" <td>0.001123</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-24 14:19:00+00:00</th>\n",
" <td>11.672222</td>\n",
" <td>22.688979</td>\n",
" <td>1.652200</td>\n",
" <td>94.664087</td>\n",
" <td>-0.002998</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-24 14:20:00+00:00</th>\n",
" <td>12.748889</td>\n",
" <td>24.781851</td>\n",
" <td>1.556200</td>\n",
" <td>89.163692</td>\n",
" <td>0.000683</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:19:00+00:00</th>\n",
" <td>9.060797</td>\n",
" <td>17.612777</td>\n",
" <td>2.340229</td>\n",
" <td>134.085255</td>\n",
" <td>0.002765</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:24:00+00:00</th>\n",
" <td>8.250471</td>\n",
" <td>16.037629</td>\n",
" <td>2.000041</td>\n",
" <td>114.593936</td>\n",
" <td>-0.001271</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:31:00+00:00</th>\n",
" <td>8.918829</td>\n",
" <td>17.336812</td>\n",
" <td>1.953156</td>\n",
" <td>111.907608</td>\n",
" <td>-0.000824</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:33:00+00:00</th>\n",
" <td>8.917308</td>\n",
" <td>17.333856</td>\n",
" <td>1.871883</td>\n",
" <td>107.251006</td>\n",
" <td>0.000967</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:34:00+00:00</th>\n",
" <td>8.846380</td>\n",
" <td>17.195983</td>\n",
" <td>1.831417</td>\n",
" <td>104.932479</td>\n",
" <td>-0.000989</td>\n",
" <td>sailing</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>27929 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" ms knots radians degrees \\\n",
"2022-04-24 14:16:00+00:00 10.456667 20.326129 1.626017 93.163892 \n",
"2022-04-24 14:17:00+00:00 9.718889 18.892004 1.468933 84.163680 \n",
"2022-04-24 14:18:00+00:00 10.884444 21.157662 1.553283 88.996579 \n",
"2022-04-24 14:19:00+00:00 11.672222 22.688979 1.652200 94.664087 \n",
"2022-04-24 14:20:00+00:00 12.748889 24.781851 1.556200 89.163692 \n",
"... ... ... ... ... \n",
"2023-09-14 02:19:00+00:00 9.060797 17.612777 2.340229 134.085255 \n",
"2023-09-14 02:24:00+00:00 8.250471 16.037629 2.000041 114.593936 \n",
"2023-09-14 02:31:00+00:00 8.918829 17.336812 1.953156 111.907608 \n",
"2023-09-14 02:33:00+00:00 8.917308 17.333856 1.871883 107.251006 \n",
"2023-09-14 02:34:00+00:00 8.846380 17.195983 1.831417 104.932479 \n",
"\n",
" rate state \n",
"2022-04-24 14:16:00+00:00 0.001411 sailing \n",
"2022-04-24 14:17:00+00:00 0.002160 sailing \n",
"2022-04-24 14:18:00+00:00 0.001123 sailing \n",
"2022-04-24 14:19:00+00:00 -0.002998 sailing \n",
"2022-04-24 14:20:00+00:00 0.000683 sailing \n",
"... ... ... \n",
"2023-09-14 02:19:00+00:00 0.002765 sailing \n",
"2023-09-14 02:24:00+00:00 -0.001271 sailing \n",
"2023-09-14 02:31:00+00:00 -0.000824 sailing \n",
"2023-09-14 02:33:00+00:00 0.000967 sailing \n",
"2023-09-14 02:34:00+00:00 -0.000989 sailing \n",
"\n",
"[27929 rows x 6 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wind = wind_speed.join(wind_angle).join(turn).join(vessel_state)\n",
"wind.loc[:,['state']] = wind.loc[:,'state'].ffill()\n",
"wind.query('state == \"sailing\" and knots > 0 and rate < {rate} and rate > -{rate}'.format(rate=rate_limit))"
]
},
{
"cell_type": "markdown",
"id": "482d3060",
"metadata": {},
"source": [
"How much data are we discarding?"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "60d07f44",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Full dataset consists of 7464h, of which 1006h is sailing, and 465h is actually used for the evaluation.\n"
]
}
],
"source": [
"full_dataset = len(wind)\n",
"sailing_dataset = len(wind.query('state == \"sailing\" and knots > 0'))\n",
"sailing_no_turning_dataset = len(wind.query('state == \"sailing\" and knots > 0 and rate < {rate} and rate > -{rate}'.format(rate=rate_limit)))\n",
"print('Full dataset consists of {full}h, of which {sailing}h is sailing, and {no_turning}h is actually used for the evaluation.'.format(full=round(full_dataset/60), sailing=round(sailing_dataset/60), no_turning=round(sailing_no_turning_dataset/60)))"
]
},
{
"cell_type": "markdown",
"id": "3337e845",
"metadata": {},
"source": [
"See the split of our sailing wind speeds:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "08fdf794",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:ylabel='Frequency'>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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osjISJWWltptKisrtWvXLmVmZkqSMjIy5PF49NFHH9ltPvzwQ3k8HrsNAAAwW0h/Mquvr9fnn39uv66oqFB5ebni4uIUFxenuXPn6he/+IUSExO1f/9+/f73v1evXr00ceJESZLT6dS0adOUl5ennj17Ki4uTvn5+Ro0aJB91dlVV12lMWPGaPr06Vq8eLEk6d5779W4ceO4wgwAAEgKcSDaunWrRowYYb8+s2YnJydHixYt0s6dO7VixQp9++23SkxM1IgRI/TKK68oJibGfs/ChQsVERGh2267TSdOnNDIkSO1bNkydenSxW6zcuVKzZw5074abcKECee99xEAADCLw7IsK9RFdAa1tbVyOp3yeDysJwoT/WavDXUJCKH9hWNDXQKATqCt39+dag0RAABAMBCIAACA8QhEAADAeAQiAABgPAIRAAAwHoEIAAAYj0AEAACMRyACAADGIxABAADjEYgAAIDxCEQAAMB4BCIAAGA8AhEAADAegQgAABiPQAQAAIxHIAIAAMYjEAEAAOMRiAAAgPEIRAAAwHh+BaKKiopA1wEAABAyfgWiK6+8UiNGjNCLL76okydPBromAACADuVXIPrkk0/0k5/8RHl5eXK5XLrvvvv00UcfBbo2AACADuFXIEpLS1NRUZG++uorLV26VFVVVbruuus0cOBAFRUV6ejRo4GuEwAAIGgualF1RESEJk6cqFdffVVPPvmkvvjiC+Xn56tPnz668847VVlZGag6AQAAguaiAtHWrVv1wAMPKDExUUVFRcrPz9cXX3yh9evX66uvvtItt9wSqDoBAACCJsKfNxUVFWnp0qXau3evbr75Zq1YsUI333yzLrvsdL5KSUnR4sWL9aMf/SigxQIAAASDX4Fo0aJFuueee3T33XfL5XK12qZv375asmTJRRUHAADQEfwKRPv27btgm6ioKOXk5Pjz8QAAAB3KrzVES5cu1WuvvdZi/2uvvably5dfdFEAAAAdya9AVFhYqF69erXYHx8fr3nz5l10UQAAAB3Jr0B04MABpaSktNifnJysgwcPXnRRAAAAHcmvQBQfH68dO3a02P/JJ5+oZ8+eF10UAABAR/JrUfXtt9+umTNnKiYmRtdff70kqaysTA8//LBuv/32gBYIM/SbvTbUJQAADOZXIHriiSd04MABjRw5UhERpz+iublZd955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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"wind.query('state == \"sailing\" and knots > 0 and rate < {rate} and rate > -{rate}'.format(rate=rate_limit))['knots'].plot(kind = 'hist', bins=35)"
]
},
{
"cell_type": "markdown",
"id": "d3f36a97",
"metadata": {},
"source": [
"Let's check how the sailing winds have been port vs starboard."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "1564074b",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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8HAfjgQAAlNHf2hnMPFmnRJ8I6BPmV0IQx9//LG2b9+u2NhYj/2pqakKDQ31WHxdXFysw4cPm4Fo0KBBcrvd2rt3r1nz/vvvy+12mzUAgJZjXUzb8WadEnzDrzNElZWV+uSTT8z3RUVFOnjwoGJiYuR0OvXv//7vys/P1//8z/+ovr7eXPMTExOjsLAw2e12zZgxQ5mZmYqNjVVMTIzmz5+vvn37mledXXfddRozZozuu+8+rVy5UtL5y+7T0tK4wgwAAEjycyDav3+/hg0bZr6/sGZn+vTpWrhwod58801J0g033OBx3I4dOzR06FBJ0pIlSxQSEqKJEyeqqqpKw4cPV05OjnkPIkl65ZVXNHfuXPNqtPT0dC1fvrwNRwYEKZdLKmvl//zj4qQenDoBENz8GoiGDh0qwzCa3X+pfRdERERo2bJlWrZsWbM1MTExWr9+vVc9ApbhcknJyVJ1K6frIyKkwkJCEYCgFtBriAC0o7Ky1och6fwxrZ1VAoAAQyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWF+LvBuAll6vlTxgvKGjbXgAACHIEomDkcknJyVJ1tb87AQCgQ+CUWTAqKyMMAQDgQwQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeTzcFejIXK7zz75riYKCtu0FAAIYgQjoqFwuKTmZBwEDQAtwygzoqMrKCEMA0ELMEAEALMnldqnsbAtPKUsqKOO0ckfm10D03nvv6fnnn1deXp6Ki4u1adMm3XHHHeZ+wzD05JNPatWqVSovL9eAAQP0+9//Xn369DFrampqNH/+fL366quqqqrS8OHD9cILL6h79+5mTXl5uebOnas333xTkpSenq5ly5bp6quvbq+hAgACiMvtUvLyZFWfYxYV5/n1lNmZM2fUr18/LV++vMn9ixcvVnZ2tpYvX659+/bJ4XBo5MiROn36tFmTkZGhTZs2aePGjdq1a5cqKyuVlpam+vp6s2by5Mk6ePCgtmzZoi1btujgwYOaOnVqm48PABCYys6WEYbgwasZoqKiIiUlJV3xTz527FiNHTu2yX2GYWjp0qV67LHHNGHCBEnS2rVrlZCQoA0bNmjmzJlyu91avXq11q1bpxEjRkiS1q9fr8TERG3fvl2jR49WQUGBtmzZoj179mjAgAGSpJdeekmDBg1SYWGhkpOTr3gcAAAguHk1Q/Sd73xHw4YN0/r161XdRos2i4qKVFJSolGjRpnbwsPDNWTIEOXm5kqS8vLyVFdX51HjdDqVkpJi1uzevVt2u90MQ5I0cOBA2e12s6YpNTU1qqio8HgBAICOyatA9MEHH+h73/ueMjMz5XA4NHPmTO3du9enjZWUlEiSEhISPLYnJCSY+0pKShQWFqauXbtesiY+Pr7R58fHx5s1TcnKypLdbjdfiYmJVzQeAAAQuLwKRCkpKcrOztaJEye0Zs0alZSU6Oabb1afPn2UnZ2tL774wmcN2mw2j/eGYTTadrGLa5qqv9znLFiwQG6323wdO3aslZ0DAIBgcUWLqkNCQnTnnXfqj3/8o5577jl9+umnmj9/vrp3765p06apuLjY6892OByS1GgWp7S01Jw1cjgcqq2tVXl5+SVrTp061ejzv/jii0azT18XHh6uLl26eLwAAEDHdEWBaP/+/Zo1a5a6deum7OxszZ8/X59++qneeecdnThxQrfffrvXn52UlCSHw6Ft27aZ22pra7Vz504NHjxYkpSamqrQ0FCPmuLiYh0+fNisGTRokNxut8cpvffff19ut9usAQAA1ubVVWbZ2dlas2aNCgsLddttt+nll1/WbbfdpquuOp+vkpKStHLlSl177bWX/JzKykp98skn5vuioiIdPHhQMTEx6tGjhzIyMrRo0SL16tVLvXr10qJFi9S5c2dNnjxZkmS32zVjxgxlZmYqNjZWMTExmj9/vvr27WtedXbddddpzJgxuu+++7Ry5UpJ0v3336+0tDSuMAMAAJK8DEQvvvii7r33Xt1zzz3mqa2L9ejRQ6tXr77k5+zfv1/Dhg0z38+bN0+SNH36dOXk5OiRRx5RVVWVZs2aZd6YcevWrYqOjjaPWbJkiUJCQjRx4kTzxow5OTnq1KmTWfPKK69o7ty55tVo6enpzd77CAAAWI9Xgejjjz++bE1YWJimT59+yZqhQ4fKMIxm99tsNi1cuFALFy5stiYiIkLLli3TsmXLmq2JiYnR+vXrL9szAACwJq/WEK1Zs0Z/+tOfGm3/05/+pLVr115xUwAAAO3Jq0D07LPPKi4urtH2+Ph4LVq06IqbAgAAaE9enTI7evRok4/u6Nmzp1wu1xU3BQBAR1FQVtAmtfAtrwJRfHy8PvzwQ11zzTUe2z/44APFxsb6oi8AADqEKa9P8XcLaAGvAtGkSZM0d+5cRUdH69Zbb5Uk7dy5Uw8++KAmTZrk0wYBAGgJl9ulsrNlLaplJgYX8yoQPf300zp69KiGDx+ukJDzH9HQ0KBp06axhggA0O5cbpeSlyer+lzbPHAcHZ9XgSgsLEyvvfaafvWrX+mDDz5QZGSk+vbtq549e/q6PwAALqvsbBlhCFfEq0B0Qe/evdW7d29f9QIAAOAXXgWi+vp65eTk6O9//7tKS0vV0NDgsf+dd97xSXMAAADtwatA9OCDDyonJ0fjxo1TSkqKbDabr/sCAABoN14Foo0bN+qPf/yjbrvtNl/3AwAA0O68ulN1WFiYvvOd7/i6FwAAAL/wKhBlZmbqt7/97SUfzAoAABAsvDpltmvXLu3YsUNvv/22+vTpo9DQUI/9r7/+uk+aAwAAaA9eBaKrr75ad955p697AQAA8AuvAtGaNWt83QcAAIDfeLWGSJLOnTun7du3a+XKlTp9+rQk6eTJk6qsrPRZcwAAAO3Bqxmio0ePasyYMXK5XKqpqdHIkSMVHR2txYsXq7q6WitWrPB1nwAAAG3GqxmiBx98UDfeeKPKy8sVGRlpbr/zzjv197//3WfNAQAAtAevrzL75z//qbCwMI/tPXv21IkTJ3zSGAAAQHvxaoaooaFB9fX1jbYfP35c0dHRV9wUAABAe/IqEI0cOVJLly4139tsNlVWVuqJJ57gcR4AACDoeHXKbMmSJRo2bJiuv/56VVdXa/Lkyfr4448VFxenV1991dc9AgAAtCmvApHT6dTBgwf16quvKj8/Xw0NDZoxY4buvvtuj0XWAAAAwcCrQCRJkZGRuvfee3Xvvff6sh8AAIB251Ugevnlly+5f9q0aV41A1yWyyWVlbXumLg4qUePtukHANAheBWIHnzwQY/3dXV1Onv2rMLCwtS5c2cCEdqGyyUlJ0vV1a07LiJCKiwkFAEAmuXVVWbl5eUer8rKShUWFurmm29mUTXaTllZ68OQdP6Y1s4qAQAsxetnmV2sV69eevbZZxvNHgEAAAQ6nwUiSerUqZNOnjzpy48EAABoc16tIXrzzTc93huGoeLiYi1fvlw/+MEPfNIYAABAe/EqEN1xxx0e7202m775zW/qhz/8oX7zm9/4oi8AAIB24/WzzL7+qq+vV0lJiTZs2KBu3br5rLlz587pl7/8pZKSkhQZGalvf/vbeuqpp9TQ0GDWGIahhQsXyul0KjIyUkOHDtWRI0c8PqempkZz5sxRXFycoqKilJ6eruPHj/usTwAAENy8vjFje3juuee0YsUKrV27Vn369NH+/ft1zz33yG63m4u3Fy9erOzsbOXk5Kh37956+umnNXLkSBUWFpoPms3IyNDmzZu1ceNGxcbGKjMzU2lpacrLy1OnTp38OcSOp6CgdfXcIwgAEAC8CkTz5s1rcW12drY3P4Ukaffu3br99ts1btw4SdI111yjV199Vfv375d0fnZo6dKleuyxxzRhwgRJ0tq1a5WQkKANGzZo5syZcrvdWr16tdatW6cRI0ZIktavX6/ExERt375do0eP9ro/NGHKlNbVc48gICgVlLX8Pz9xnePUw86fcQQ2rwLRgQMHlJ+fr3Pnzik5OVmS9NFHH6lTp07q37+/WWez2a6ouZtvvlkrVqzQRx99pN69e+uDDz7Qrl27tHTpUklSUVGRSkpKNGrUKPOY8PBwDRkyRLm5uZo5c6by8vJUV1fnUeN0OpWSkqLc3NxmA1FNTY1qamrM9xUVFVc0FjTjwj2CCERAUJnyesv/8xMREqHC2YWEIgQ0rwLR+PHjFR0drbVr16pr166Szt+s8Z577tEtt9yizMxMnzT3i1/8Qm63W9dee606deqk+vp6PfPMM/rJT34iSSopKZEkJSQkeByXkJCgo0ePmjVhYWFmn1+vuXB8U7KysvTkk0/6ZBwAYGXV56pVdraMQISA5tWi6t/85jfKysryCBldu3bV008/7dOrzF577TWtX79eGzZsUH5+vtauXatf//rXWrt2rUfdxTNRhmFcdnbqcjULFiyQ2+02X8eOHfN+IAAAIKB5NUNUUVGhU6dOqU+fPh7bS0tLdfr0aZ80JkkPP/ywHn30UU2aNEmS1LdvXx09elRZWVmaPn26HA6HpPOzQF+/uq20tNScNXI4HKqtrVV5eblHgCstLdXgwYOb/bnDw8MVHh7us7EAAIDA5dUM0Z133ql77rlHf/7zn3X8+HEdP35cf/7znzVjxgxzcbMvnD17Vldd5dlip06dzMvuk5KS5HA4tG3bNnN/bW2tdu7caYad1NRUhYaGetQUFxfr8OHDlwxEAADAOryaIVqxYoXmz5+vKVOmqK6u7vwHhYRoxowZev75533W3Pjx4/XMM8+oR48e6tOnjw4cOKDs7Gzde++9ks6fKsvIyNCiRYvUq1cv9erVS4sWLVLnzp01efJkSZLdbteMGTOUmZmp2NhYxcTEaP78+erbt6951RkAALA2rwJR586d9cILL+j555/Xp59+KsMw9J3vfEdRUVE+bW7ZsmV6/PHHNWvWLJWWlsrpdGrmzJn6r//6L7PmkUceUVVVlWbNmqXy8nINGDBAW7duNe9BJElLlixRSEiIJk6cqKqqKg0fPlw5OTncgwgAAEi6whszFhcXq7i4WLfeeqsiIyNbtJi5NaKjo7V06VLzMvum2Gw2LVy4UAsXLmy2JiIiQsuWLdOyZct81hsAAOg4vFpD9OWXX2r48OHq3bu3brvtNhUXF0uSfvazn/nsknsAAID24lUgeuihhxQaGiqXy6XOnTub2++66y5t2bLFZ80BAAC0B69OmW3dulV/+9vf1L17d4/tvXr1Mm+ICAAAECy8miE6c+aMx8zQBWVlZdy7BwAABB2vAtGtt96ql19+2Xxvs9nU0NCg559/XsOGDfNZcwAAAO3Bq1Nmzz//vIYOHar9+/ertrZWjzzyiI4cOaJ//etf+uc//+nrHgEAANqUVzNE119/vT788EN9//vf18iRI3XmzBlNmDBBBw4c0L/927/5ukcAAIA21eoZorq6Oo0aNUorV67kafAAAKBDaPUMUWhoqA4fPuzTGzACAAD4k1enzKZNm6bVq1f7uhcAAAC/8GpRdW1trf7whz9o27ZtuvHGGxs9wyw7O9snzQEAALSHVgWizz77TNdcc40OHz6s/v37S5I++ugjjxpOpQEAgGDTqkDUq1cvFRcXa8eOHZLOP6rjd7/7nRISEtqkOQAAgPbQqjVEhmF4vH/77bd15swZnzYEAADQ3rxaVH3BxQEJAAAgGLUqENlstkZrhFgzBAAAgl2r1hAZhqGf/vSn5gNcq6ur9cADDzS6yuz111/3XYeALxQUtK4+Lk7q0aNtegEABJxWBaLp06d7vJ8yZYpPmwHaTGt/r0ZESIWFhCIAsIhWBaI1a9a0VR9AYKmulsrKCEQAYBFXtKgaAACgIyAQAQAAyyMQAQAAy/PqWWYAALQll9ulsrNlLa4vKGvllaTARQhEAICA4nK7lLw8WdXnqv3dCiyEU2YAgIBSdraMMIR2RyACAACWRyACAACWxxoiIFi4XOdvFtlSrX1cCQBYGIEICAYul5ScfP4O2gAAn+OUGRAMysoIQwDQhghEAADA8ghEAADA8gI+EJ04cUJTpkxRbGysOnfurBtuuEF5eXnmfsMwtHDhQjmdTkVGRmro0KE6cuSIx2fU1NRozpw5iouLU1RUlNLT03X8+PH2HgqaU1Ag5edf/sUiYQBAGwnoRdXl5eX6wQ9+oGHDhuntt99WfHy8Pv30U1199dVmzeLFi5Wdna2cnBz17t1bTz/9tEaOHKnCwkJFR0dLkjIyMrR582Zt3LhRsbGxyszMVFpamvLy8tSpUyc/jQ6mKVP83QEAwOICOhA999xzSkxM1Jo1a8xt11xzjfljwzC0dOlSPfbYY5owYYIkae3atUpISNCGDRs0c+ZMud1urV69WuvWrdOIESMkSevXr1diYqK2b9+u0aNHt+uYAABA4AnoQPTmm29q9OjR+vGPf6ydO3fqW9/6lmbNmqX77rtPklRUVKSSkhKNGjXKPCY8PFxDhgxRbm6uZs6cqby8PNXV1XnUOJ1OpaSkKDc3t9lAVFNTo5qaGvN9RUVFG41S3F8GQIfXmoev8qBW+ENAB6LPPvtML774oubNm6f//M//1N69ezV37lyFh4dr2rRpKikpkSQlJCR4HJeQkKCjR49KkkpKShQWFqauXbs2qrlwfFOysrL05JNP+nhETeD+MgAsYMrrnBpHYAvoQNTQ0KAbb7xRixYtkiR973vf05EjR/Tiiy9q2rRpZp3NZvM4zjCMRtsudrmaBQsWaN68eeb7iooKJSYmejOMS+P+MgCADqo1s31xnePUw96jDbu5tIAORN26ddP111/vse26667TX/7yF0mSw+GQdH4WqFu3bmZNaWmpOWvkcDhUW1ur8vJyj1mi0tJSDR48uNmfOzw8XOHh4T4bCwAAVtOamcGIkAgVzi70WygK6Mvuf/CDH6iwsNBj20cffaSePXtKkpKSkuRwOLRt2zZzf21trXbu3GmGndTUVIWGhnrUFBcX6/Dhw5cMRAAAoP1Un6tW2dlWrKf1sYCeIXrooYc0ePBgLVq0SBMnTtTevXu1atUqrVq1StL5U2UZGRlatGiRevXqpV69emnRokXq3LmzJk+eLEmy2+2aMWOGMjMzFRsbq5iYGM2fP199+/Y1rzoDAADWFtCB6KabbtKmTZu0YMECPfXUU0pKStLSpUt19913mzWPPPKIqqqqNGvWLJWXl2vAgAHaunWreQ8iSVqyZIlCQkI0ceJEVVVVafjw4crJyeEeRAAAQJJkMwzD8HcTwaCiokJ2u11ut1tdunTx3Qfn50upqb77PPhOXp7Uv7+/uzgv0H+fBNJ3ZWH5xflKXRXAv0+Ay8i7P0/9u/n275KW/vsd0GuIAAAA2gOBCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWF5A35gR8KuClj+UUHFxUg//PZQQAHBlCERAc6a0/KGEioiQCgsJRQAQpDhlBvhCdbVU5r+HEgIArgyBCAAAWB6nzABcOdZbAQhyBCIAV471VgCCHKfMALQv1lsBCEDMEAG+0prTRhKnjgAggBCIAF9pzWkjiVNHABBAOGUG+AunjgAgYBCIAACA5XHKDPCnlq47au36JABAqxCIAH9q7bojAECb4JQZAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwvKAKRFlZWbLZbMrIyDC3GYahhQsXyul0KjIyUkOHDtWRI0c8jqupqdGcOXMUFxenqKgopaen6/jx4+3cPQAACFRBE4j27dunVatW6bvf/a7H9sWLFys7O1vLly/Xvn375HA4NHLkSJ0+fdqsycjI0KZNm7Rx40bt2rVLlZWVSktLU319fXsPAwAABKAQfzfQEpWVlbr77rv10ksv6emnnza3G4ahpUuX6rHHHtOECRMkSWvXrlVCQoI2bNigmTNnyu12a/Xq1Vq3bp1GjBghSVq/fr0SExO1fft2jR492i9jAoDLcbldKjtb1uL6grKCNuwG6NiCIhD9/Oc/17hx4zRixAiPQFRUVKSSkhKNGjXK3BYeHq4hQ4YoNzdXM2fOVF5enurq6jxqnE6nUlJSlJub22wgqqmpUU1Njfm+oqKiDUYGAE1zuV1KXp6s6nPV/m4FsISAD0QbN25Ufn6+9u3b12hfSUmJJCkhIcFje0JCgo4ePWrWhIWFqWvXro1qLhzflKysLD355JNX2j4AeKXsbBlhCGhHAb2G6NixY3rwwQe1fv16RURENFtns9k83huG0WjbxS5Xs2DBArndbvN17Nix1jUPAACCRkAHory8PJWWlio1NVUhISEKCQnRzp079bvf/U4hISHmzNDFMz2lpaXmPofDodraWpWXlzdb05Tw8HB16dLF4wUAADqmgA5Ew4cP16FDh3Tw4EHzdeONN+ruu+/WwYMH9e1vf1sOh0Pbtm0zj6mtrdXOnTs1ePBgSVJqaqpCQ0M9aoqLi3X48GGzBgAAWFtAryGKjo5WSkqKx7aoqCjFxsaa2zMyMrRo0SL16tVLvXr10qJFi9S5c2dNnjxZkmS32zVjxgxlZmYqNjZWMTExmj9/vvr27WtedQYAAKwtoANRSzzyyCOqqqrSrFmzVF5ergEDBmjr1q2Kjo42a5YsWaKQkBBNnDhRVVVVGj58uHJyctSpUyc/dg4AAAKFzTAMw99NBIOKigrZ7Xa53W7frifKz5dSU333eUAwyMuT+vf3dxcBLb84X6mr+LsB1pJ3f576d/Pt3w0t/fc7oNcQAQAAtAcCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsLyADkRZWVm66aabFB0drfj4eN1xxx0qLCz0qDEMQwsXLpTT6VRkZKSGDh2qI0eOeNTU1NRozpw5iouLU1RUlNLT03X8+PH2HAoAAAhgAR2Idu7cqZ///Ofas2ePtm3bpnPnzmnUqFE6c+aMWbN48WJlZ2dr+fLl2rdvnxwOh0aOHKnTp0+bNRkZGdq0aZM2btyoXbt2qbKyUmlpaaqvr/fHsAAAQIAJ8XcDl7JlyxaP92vWrFF8fLzy8vJ06623yjAMLV26VI899pgmTJggSVq7dq0SEhK0YcMGzZw5U263W6tXr9a6des0YsQISdL69euVmJio7du3a/To0e0+LgAAEFgCeoboYm63W5IUExMjSSoqKlJJSYlGjRpl1oSHh2vIkCHKzc2VJOXl5amurs6jxul0KiUlxaxpSk1NjSoqKjxeAACgYwqaQGQYhubNm6ebb75ZKSkpkqSSkhJJUkJCgkdtQkKCua+kpERhYWHq2rVrszVNycrKkt1uN1+JiYm+HA4AAAggQROIZs+erQ8//FCvvvpqo302m83jvWEYjbZd7HI1CxYskNvtNl/Hjh3zrnEAABDwgiIQzZkzR2+++aZ27Nih7t27m9sdDockNZrpKS0tNWeNHA6HamtrVV5e3mxNU8LDw9WlSxePFwAA6JgCOhAZhqHZs2fr9ddf1zvvvKOkpCSP/UlJSXI4HNq2bZu5rba2Vjt37tTgwYMlSampqQoNDfWoKS4u1uHDh80aAABgbQF9ldnPf/5zbdiwQf/93/+t6OhocybIbrcrMjJSNptNGRkZWrRokXr16qVevXpp0aJF6ty5syZPnmzWzpgxQ5mZmYqNjVVMTIzmz5+vvn37mledAQAAawvoQPTiiy9KkoYOHeqxfc2aNfrpT38qSXrkkUdUVVWlWbNmqby8XAMGDNDWrVsVHR1t1i9ZskQhISGaOHGiqqqqNHz4cOXk5KhTp07tNRQAABDAbIZhGP5uIhhUVFTIbrfL7Xb7dj1Rfr6Umuq7zwOCQV6e1L+/v7sIaPnF+Updxd8NsJa8+/PUv5tv/25o6b/fAb2GCAAAoD0E9CkzAGgvLrdLZWfLWlwf1zlOPew92rAjAO2JQATA8lxul5KXJ6v6XHWLj4kIiVDh7EJCEdBBcMoMgOWVnS1rVRiSpOpz1a2aUQIQ2AhEAADA8ghEAADA8lhDBKDjcbmkslaczvqqoO16ARAUCEQAOhaXS0pOlqpbsSaom6SZbdYRgCDAKTMAHUtZWevCEACIQAQAAEAgAgAAIBABAADLIxABAADLIxABAADLIxABAADLIxABAADL48aMANpfQSvvDB0XJ/XgqfIA2g6BCED7mzKldfUREVJhIaEIQJvhlBmAwFdd3bpnkwFAKzFDBADtxOV2qexsy4JdQRkPnAXaE4EIANqBy+1S8vJkVZ/jOWtAIOKUGQC0g7KzZYQhIIARiAAAgOURiAAAgOURiAAAgOURiAAAgOVxlRmA4NDSu1u39i7YV6A1l8ZzGT0Q2AhEAIJDa+9u3Q6mvB54PQHwDqfMAACA5RGIAACA5RGIAACA5RGIAACA5VkqEL3wwgtKSkpSRESEUlNT9Y9//MPfLQEAgABgmUD02muvKSMjQ4899pgOHDigW265RWPHjpXL5fJ3awAAwM8sE4iys7M1Y8YM/exnP9N1112npUuXKjExUS+++KK/WwMAAH5mifsQ1dbWKi8vT48++qjH9lGjRik3N7fJY2pqalRTU2O+d7vdkqSKigrfNldZ6dvPA9BqlQ2SeBA94HeVpytVEeXbf2cv/LttGMYl6ywRiMrKylRfX6+EhASP7QkJCSopKWnymKysLD355JONticmJrZJjwD86JSkZ/3dBIAhzw5ps88+ffq07HZ7s/stEYgusNlsHu8Nw2i07YIFCxZo3rx55vuGhgb961//UmxsbLPHdAQVFRVKTEzUsWPH1KVLF3+3066sPHbJ2uNn7IydsXdchmHo9OnTcjqdl6yzRCCKi4tTp06dGs0GlZaWNpo1uiA8PFzh4eEe266++uq2ajHgdOnSpcP/IWmOlccuWXv8jJ2xW41Vxn6pmaELLLGoOiwsTKmpqdq2bZvH9m3btmnw4MF+6goAAAQKS8wQSdK8efM0depU3XjjjRo0aJBWrVoll8ulBx54wN+tAQAAP7NMILrrrrv05Zdf6qmnnlJxcbFSUlL01ltvqWfPnv5uLaCEh4friSeeaHS60AqsPHbJ2uNn7Izdaqw89ubYjMtdhwYAANDBWWINEQAAwKUQiAAAgOURiAAAgOURiAAAgOURiCzsmWee0eDBg9W5c+dmbzpps9kavVasWOFRc+jQIQ0ZMkSRkZH61re+paeeeuqyz4zxt5aM3eVyafz48YqKilJcXJzmzp2r2tpaj5pgHPvFrrnmmka/xhc/968l30WweuGFF5SUlKSIiAilpqbqH//4h79b8rmFCxc2+jV2OBzmfsMwtHDhQjmdTkVGRmro0KE6cuSIHzu+Mu+9957Gjx8vp9Mpm82mN954w2N/S8ZbU1OjOXPmKC4uTlFRUUpPT9fx48fbcRTeudzYf/rTnzb6vTBw4ECPmmAd+5UiEFlYbW2tfvzjH+s//uM/Llm3Zs0aFRcXm6/p06eb+yoqKjRy5Eg5nU7t27dPy5Yt069//WtlZ2e3dftX5HJjr6+v17hx43TmzBnt2rVLGzdu1F/+8hdlZmaaNcE69qZcuB3Fhdcvf/lLc19Lvotg9dprrykjI0OPPfaYDhw4oFtuuUVjx46Vy+Xyd2s+16dPH49f40OHDpn7Fi9erOzsbC1fvlz79u2Tw+HQyJEjdfr0aT927L0zZ86oX79+Wr58eZP7WzLejIwMbdq0SRs3btSuXbtUWVmptLQ01dfXt9cwvHK5sUvSmDFjPH4vvPXWWx77g3XsV8yA5a1Zs8aw2+1N7pNkbNq0qdljX3jhBcNutxvV1dXmtqysLMPpdBoNDQ0+7tT3mhv7W2+9ZVx11VXGiRMnzG2vvvqqER4ebrjdbsMwgn/sF/Ts2dNYsmRJs/tb8l0Eq+9///vGAw884LHt2muvNR599FE/ddQ2nnjiCaNfv35N7mtoaDAcDofx7LPPmtuqq6sNu91urFixop06bDsX/x3WkvF+9dVXRmhoqLFx40az5sSJE8ZVV11lbNmypd16v1JN/f09ffp04/bbb2/2mI4ydm8wQ4TLmj17tuLi4nTTTTdpxYoVamhoMPft3r1bQ4YM8bi51+jRo3Xy5El9/vnnfujWN3bv3q2UlBSPhwGOHj1aNTU1ysvLM2s6ytife+45xcbG6oYbbtAzzzzjcTqsJd9FMKqtrVVeXp5GjRrlsX3UqFHKzc31U1dt5+OPP5bT6VRSUpImTZqkzz77TJJUVFSkkpISj+8hPDxcQ4YM6ZDfQ0vGm5eXp7q6Oo8ap9OplJSUDvGdvPvuu4qPj1fv3r113333qbS01NzX0cd+KZa5UzW886tf/UrDhw9XZGSk/v73vyszM1NlZWXmKZWSkhJdc801HsdceGBuSUmJkpKS2rtlnygpKWn04N+uXbsqLCzMfEhwRxn7gw8+qP79+6tr167au3evFixYoKKiIv3hD3+Q1LLvIhiVlZWpvr6+0dgSEhKCelxNGTBggF5++WX17t1bp06d0tNPP63BgwfryJEj5lib+h6OHj3qj3bbVEvGW1JSorCwMHXt2rVRTbD/3hg7dqx+/OMfq2fPnioqKtLjjz+uH/7wh8rLy1N4eHiHHvvlMEPUwTS1ePLi1/79+1v8eb/85S81aNAg3XDDDcrMzNRTTz2l559/3qPGZrN5vDf+/6Lii7e3NV+Pvan+DcPw2B4oY79Ya76Lhx56SEOGDNF3v/td/exnP9OKFSu0evVqffnll+bnteS7CFZN/Rp2hHF93dixY/WjH/1Iffv21YgRI/TXv/5VkrR27Vqzxgrfw9d5M96O8J3cddddGjdunFJSUjR+/Hi9/fbb+uijj8zfE83pCGO/HGaIOpjZs2dr0qRJl6y5eFajNQYOHKiKigqdOnVKCQkJcjgcjf7XcGH69eL/gbU1X47d4XDo/fff99hWXl6uuro6c1yBNPaLXcl3ceGKk08++USxsbEt+i6CUVxcnDp16tTkr2Ewj6sloqKi1LdvX3388ce64447JJ2fFenWrZtZ01G/hwtX111qvA6HQ7W1tSovL/eYKSktLdXgwYPbt+E21q1bN/Xs2VMff/yxJGuN/WLMEHUwcXFxuvbaay/5ioiI8PrzDxw4oIiICPNS9UGDBum9997zWHOydetWOZ3OKwpe3vDl2AcNGqTDhw+ruLjY3LZ161aFh4crNTXVrAmUsV/sSr6LAwcOSJL5j0VLvotgFBYWptTUVG3bts1j+7Zt2zr8X/w1NTUqKChQt27dlJSUJIfD4fE91NbWaufOnR3ye2jJeFNTUxUaGupRU1xcrMOHD3e47+TLL7/UsWPHzD/vVhp7I35bzg2/O3r0qHHgwAHjySefNL7xjW8YBw4cMA4cOGCcPn3aMAzDePPNN41Vq1YZhw4dMj755BPjpZdeMrp06WLMnTvX/IyvvvrKSEhIMH7yk58Yhw4dMl5//XWjS5cuxq9//Wt/DatFLjf2c+fOGSkpKcbw4cON/Px8Y/v27Ub37t2N2bNnm58RrGP/utzcXCM7O9s4cOCA8dlnnxmvvfaa4XQ6jfT0dLOmJd9FsNq4caMRGhpqrF692vjf//1fIyMjw4iKijI+//xzf7fmU5mZmca7775rfPbZZ8aePXuMtLQ0Izo62hzns88+a9jtduP11183Dh06ZPzkJz8xunXrZlRUVPi5c++cPn3a/DMtyfw9fvToUcMwWjbeBx54wOjevbuxfft2Iz8/3/jhD39o9OvXzzh37py/htUilxr76dOnjczMTCM3N9coKioyduzYYQwaNMj41re+1SHGfqUIRBY2ffp0Q1Kj144dOwzDMIy3337buOGGG4xvfOMbRufOnY2UlBRj6dKlRl1dncfnfPjhh8Ytt9xihIeHGw6Hw1i4cGHAX3Z+ubEbxvnQNG7cOCMyMtKIiYkxZs+e7XGJvWEE59i/Li8vzxgwYIBht9uNiIgIIzk52XjiiSeMM2fOeNS15LsIVr///e+Nnj17GmFhYUb//v2NnTt3+rsln7vrrruMbt26GaGhoYbT6TQmTJhgHDlyxNzf0NBgPPHEE4bD4TDCw8ONW2+91Th06JAfO74yO3bsaPLP9/Tp0w3DaNl4q6qqjNmzZxsxMTFGZGSkkZaWZrhcLj+MpnUuNfazZ88ao0aNMr75zW8aoaGhRo8ePYzp06c3Glewjv1K2QwjyG6rCwAA4GOsIQIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJb3/wDuGt5RWmOHpAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = wind.query('state == \"sailing\" and rate < {rate} and rate > -{rate}'.format(rate=rate_limit))['degrees'].plot(kind = 'hist', bins=36)\n",
"for rect in ax.patches:\n",
" if rect.get_x() >= -0.4:\n",
" rect.set_color('green')\n",
" else:\n",
" rect.set_color('red')"
]
},
{
"cell_type": "markdown",
"id": "818aadff",
"metadata": {},
"source": [
"We also want to know the vessel speed."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "88b0848d",
"metadata": {},
"outputs": [],
"source": [
"vessel_speeds = []\n",
"for trip in trips: \n",
" speed_query = \"\"\"select mean(value) as \"ms\"\n",
" from \"navigation.speedThroughWater\"\n",
" where time >= '{start}' and time <= '{end}'\n",
" group by time({window})\"\"\".format(start=trip['start'], end=trip['end'], window=date_window)\n",
" vessel_speeds.append(client.query(query=speed_query)['navigation.speedThroughWater'])\n",
"vessel_speed = pd.concat(vessel_speeds)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "e7d9e1b6",
"metadata": {},
"outputs": [],
"source": [
"vessel_speed['knots'] = vessel_speed['ms'].apply(lambda x: x*1.943844)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "d2deada8",
"metadata": {},
"outputs": [],
"source": [
"wind_and_vessel = wind.join(vessel_speed, lsuffix='_wind', rsuffix='_vessel')"
]
},
{
"cell_type": "markdown",
"id": "ee055aa0",
"metadata": {},
"source": [
"Then we look at the boat speeds used in evaluation:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "0484d68b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:ylabel='Frequency'>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGdCAYAAADzOWwgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAn40lEQVR4nO3da3RU9b3/8c+YG0lOMiWBZDqHALFGBIIeDS0GUbBARMBUXS14ooFKqnBAIAbkUs9ZYi8Jl2VATw4I1gVeG2sXWE/VSBROWorcgpGLCNbGAJIQbOMkQUgg2f8HLubfIchlmMxO+L1fa82D2fPLzHfLcnizs/eMw7IsSwAAAAa7yu4BAAAA7EYQAQAA4xFEAADAeAQRAAAwHkEEAACMRxABAADjEUQAAMB4BBEAADBeqN0DdBatra06cuSIYmJi5HA47B4HAABcBMuy1NDQILfbrauu+vbjQATRRTpy5IiSkpLsHgMAAPjh0KFD6tGjx7c+ThBdpJiYGEnf/AeNjY21eRoAAHAx6uvrlZSU5P17/NsQRBfpzK/JYmNjCSIAADqZC53uwknVAADAeAQRAAAwHkEEAACMRxABAADjEUQAAMB4BBEAADAeQQQAAIxHEAEAAOMRRAAAwHgEEQAAMB5BBAAAjEcQAQAA4xFEAADAeAQRAAAwXqjdAwBoP73nvRWQ5/l84ZiAPA8AdFQcIQIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxuMqM6CDCdSVYQCAi8cRIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPIIIAAAYjyACAADGI4gAAIDxCCIAAGA8gggAABiPIAIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPIIIAAAYjyACAADGI4gAAIDxCCIAAGA8gggAABiPIAIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPIIIAAAYjyACAADGI4gAAIDxCCIAAGA8gggAABiPIAIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPIIIAAAYjyACAADGI4gAAIDxOkwQFRQUyOFwKDc317vNsiwtWLBAbrdbkZGRGjZsmPbu3evzc01NTZo+fbq6deum6OhoZWZm6vDhwz5r6urqlJ2dLafTKafTqezsbH311VdB2CsAANAZdIgg2r59u1atWqXrr7/eZ/vixYtVWFiooqIibd++XS6XSyNHjlRDQ4N3TW5urtatW6fi4mJt2rRJjY2NGjt2rFpaWrxrsrKyVFFRoZKSEpWUlKiiokLZ2dlB2z8AANCx2R5EjY2Nuv/++/Xcc8+pa9eu3u2WZWnZsmV6/PHHde+99yo1NVUvvPCCvv76a7366quSJI/Ho+eff15PPfWURowYoRtvvFEvv/yydu/erffee0+StG/fPpWUlOg3v/mN0tPTlZ6erueee05//OMftX//flv2GQAAdCy2B9G0adM0ZswYjRgxwmd7ZWWlampqlJGR4d0WERGhoUOHavPmzZKk8vJynTp1ymeN2+1Wamqqd80HH3wgp9OpQYMGedfcfPPNcjqd3jUAAMBsoXa+eHFxsXbu3Knt27e3eaympkaSlJiY6LM9MTFRVVVV3jXh4eE+R5bOrDnz8zU1NUpISGjz/AkJCd4159LU1KSmpibv/fr6+ovcKwAA0NnYdoTo0KFDmjlzpl5++WV16dLlW9c5HA6f+5Zltdl2trPXnGv9hZ6noKDAexK20+lUUlLSeV8TAAB0XrYFUXl5uWpra5WWlqbQ0FCFhoaqrKxMzzzzjEJDQ71Hhs4+ilNbW+t9zOVyqbm5WXV1deddc/To0Tavf+zYsTZHn/7Z/Pnz5fF4vLdDhw5d1v4CAICOy7YgGj58uHbv3q2KigrvbeDAgbr//vtVUVGhq6++Wi6XS6Wlpd6faW5uVllZmQYPHixJSktLU1hYmM+a6upq7dmzx7smPT1dHo9H27Zt867ZunWrPB6Pd825REREKDY21ucGAACuTLadQxQTE6PU1FSfbdHR0YqPj/duz83NVX5+vlJSUpSSkqL8/HxFRUUpKytLkuR0OpWTk6NZs2YpPj5ecXFxmj17tgYMGOA9Sbtv374aNWqUHnroIa1cuVKS9PDDD2vs2LHq06dPEPcYAAB0VLaeVH0hc+bM0YkTJzR16lTV1dVp0KBBWr9+vWJiYrxrli5dqtDQUI0bN04nTpzQ8OHDtWbNGoWEhHjXvPLKK5oxY4b3arTMzEwVFRUFfX8AAEDH5LAsy7J7iM6gvr5eTqdTHo+HX5+hXfWe95bdI7Tx+cIxdo8AAH652L+/bf8cIgAAALsRRAAAwHgd+hwioLPoiL/mAgBcPI4QAQAA4xFEAADAeAQRAAAwHkEEAACMRxABAADjEUQAAMB4BBEAADAeQQQAAIxHEAEAAOMRRAAAwHgEEQAAMB5BBAAAjEcQAQAA4xFEAADAeAQRAAAwHkEEAACMRxABAADjEUQAAMB4BBEAADAeQQQAAIxHEAEAAOMRRAAAwHgEEQAAMB5BBAAAjEcQAQAA4xFEAADAeAQRAAAwHkEEAACMRxABAADjEUQAAMB4BBEAADAeQQQAAIxHEAEAAOMRRAAAwHgEEQAAMB5BBAAAjEcQAQAA4xFEAADAeAQRAAAwHkEEAACMRxABAADjhdo9AGCX3vPesnsEAEAHwREiAABgPIIIAAAYjyACAADGI4gAAIDxCCIAAGA8gggAABiPIAIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPIIIAAAYjyACAADGI4gAAIDxCCIAAGA8gggAABiPIAIAAMazNYhWrFih66+/XrGxsYqNjVV6erreeecd7+OWZWnBggVyu92KjIzUsGHDtHfvXp/naGpq0vTp09WtWzdFR0crMzNThw8f9llTV1en7OxsOZ1OOZ1OZWdn66uvvgrGLgIAgE7A1iDq0aOHFi5cqB07dmjHjh364Q9/qB/96Efe6Fm8eLEKCwtVVFSk7du3y+VyaeTIkWpoaPA+R25urtatW6fi4mJt2rRJjY2NGjt2rFpaWrxrsrKyVFFRoZKSEpWUlKiiokLZ2dlB318AANAxOSzLsuwe4p/FxcVpyZIlmjRpktxut3JzczV37lxJ3xwNSkxM1KJFizR58mR5PB51795dL730ksaPHy9JOnLkiJKSkvT222/rjjvu0L59+9SvXz9t2bJFgwYNkiRt2bJF6enp+uSTT9SnT5+Lmqu+vl5Op1Mej0exsbHts/MIqt7z3rJ7BCN9vnCM3SMAMMjF/v3dYc4hamlpUXFxsY4fP6709HRVVlaqpqZGGRkZ3jUREREaOnSoNm/eLEkqLy/XqVOnfNa43W6lpqZ613zwwQdyOp3eGJKkm2++WU6n07vmXJqamlRfX+9zAwAAVybbg2j37t36l3/5F0VERGjKlClat26d+vXrp5qaGklSYmKiz/rExETvYzU1NQoPD1fXrl3PuyYhIaHN6yYkJHjXnEtBQYH3nCOn06mkpKTL2k8AANBx2R5Effr0UUVFhbZs2aL/+I//0MSJE/Xxxx97H3c4HD7rLctqs+1sZ6851/oLPc/8+fPl8Xi8t0OHDl3sLgEAgE7G9iAKDw/XNddco4EDB6qgoEA33HCDnn76ablcLklqcxSntrbWe9TI5XKpublZdXV1511z9OjRNq977NixNkef/llERIT36rczNwAAcGWyPYjOZlmWmpqalJycLJfLpdLSUu9jzc3NKisr0+DBgyVJaWlpCgsL81lTXV2tPXv2eNekp6fL4/Fo27Zt3jVbt26Vx+PxrgEAAGYLtfPFf/7zn+vOO+9UUlKSGhoaVFxcrP/7v/9TSUmJHA6HcnNzlZ+fr5SUFKWkpCg/P19RUVHKysqSJDmdTuXk5GjWrFmKj49XXFycZs+erQEDBmjEiBGSpL59+2rUqFF66KGHtHLlSknSww8/rLFjx170FWYAAODK5lcQVVZWKjk5+bJf/OjRo8rOzlZ1dbWcTqeuv/56lZSUaOTIkZKkOXPm6MSJE5o6darq6uo0aNAgrV+/XjExMd7nWLp0qUJDQzVu3DidOHFCw4cP15o1axQSEuJd88orr2jGjBneq9EyMzNVVFR02fMDAIArg1+fQxQSEqLbbrtNOTk5+vGPf6wuXbq0x2wdCp9DdOXhc4jswecQAQimdv0coo8++kg33nijZs2aJZfLpcmTJ/ucowMAANCZ+BVEqampKiws1BdffKHVq1erpqZGQ4YMUf/+/VVYWKhjx44Fek4AAIB2c1lXmYWGhuqee+7R7373Oy1atEifffaZZs+erR49emjChAmqrq4O1JwAAADt5rKCaMeOHZo6daq++93vqrCwULNnz9Znn32mDRs26IsvvtCPfvSjQM0JAADQbvy6yqywsFCrV6/W/v37NXr0aL344osaPXq0rrrqm75KTk7WypUrdd111wV0WAAAgPbgVxCtWLFCkyZN0oMPPuj9ROmz9ezZU88///xlDQcAABAMfgXRp59+esE14eHhmjhxoj9PDwAAEFR+nUO0evVqvf766222v/7663rhhRcueygAAIBg8iuIFi5cqG7durXZnpCQoPz8/MseCgAAIJj8CqKqqqpzfnVHr169dPDgwcseCgAAIJj8CqKEhATt2rWrzfaPPvpI8fHxlz0UAABAMPkVRPfdd59mzJihjRs3qqWlRS0tLdqwYYNmzpyp++67L9Az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RxABAADjEUQAAMB4BBEAADAeQQQAAIxHEAEAAOMRRAAAwHgEEQAAMB5BBAAAjEcQAQAA4xFEAADAeAQRAAAwHkEEAACMRxABAADjEUQAAMB4BBEAADAeQQQAAIxHEAEAAOMRRAAAwHihdg8AwCy9570VsOf6fOGYgD0XALNxhAgAABiPIAIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPIIIAAAYjyACAADGI4gAAIDxCCIAAGA8gggAABiPIAIAAMYjiAAAgPEIIgAAYDyCCAAAGI8gAgAAxiOIAACA8QgiAABgPFuD6E9/+pPuuusuud1uORwOvfHGGz6PW5alBQsWyO12KzIyUsOGDdPevXt91jQ1NWn69Onq1q2boqOjlZmZqcOHD/usqaurU3Z2tpxOp5xOp7Kzs/XVV1+1894BAIDOwtYgOn78uG644QYVFRWd8/HFixersLBQRUVF2r59u1wul0aOHKmGhgbvmtzcXK1bt07FxcXatGmTGhsbNXbsWLW0tHjXZGVlqaKiQiUlJSopKVFFRYWys7Pbff8AAEDn4LAsy7J7CElyOBxat26d7r77bknfHB1yu93Kzc3V3LlzJX1zNCgxMVGLFi3S5MmT5fF41L17d7300ksaP368JOnIkSNKSkrS22+/rTvuuEP79u1Tv379tGXLFg0aNEiStGXLFqWnp+uTTz5Rnz59Lmq++vp6OZ1OeTwexcbGBv4/QAfUe95bdo8AnNfnC8fYPQKADu5i//7usOcQVVZWqqamRhkZGd5tERERGjp0qDZv3ixJKi8v16lTp3zWuN1upaametd88MEHcjqd3hiSpJtvvllOp9O75lyamppUX1/vcwMAAFemDhtENTU1kqTExESf7YmJid7HampqFB4erq5du553TUJCQpvnT0hI8K45l4KCAu85R06nU0lJSZe1PwAAoOPqsEF0hsPh8LlvWVabbWc7e8251l/oeebPny+Px+O9HTp06BInBwAAnUWHDSKXyyVJbY7i1NbWeo8auVwuNTc3q66u7rxrjh492ub5jx071ubo0z+LiIhQbGyszw0AAFyZOmwQJScny+VyqbS01LutublZZWVlGjx4sCQpLS1NYWFhPmuqq6u1Z88e75r09HR5PB5t27bNu2br1q3yeDzeNQAAwGyhdr54Y2Oj/vrX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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"wind_and_vessel.query('state == \"sailing\" and knots_vessel > 0 and rate < {rate} and rate > -{rate}'.format(rate=rate_limit))['knots_vessel'].plot(kind = 'hist', bins=24)"
]
},
{
"cell_type": "markdown",
"id": "340afef9",
"metadata": {},
"source": [
"Let's look at the instances where we were running above hull speed:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "ba3091c8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>wind_speed</th>\n",
" <th>vessel_speed</th>\n",
" <th>degrees</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-04-29 01:45:00+00:00</th>\n",
" <td>10.993957</td>\n",
" <td>7.184447</td>\n",
" <td>90.461738</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-29 03:27:00+00:00</th>\n",
" <td>11.791442</td>\n",
" <td>7.438443</td>\n",
" <td>71.612996</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-29 14:23:00+00:00</th>\n",
" <td>6.562224</td>\n",
" <td>7.120949</td>\n",
" <td>143.102647</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-29 15:26:00+00:00</th>\n",
" <td>10.928450</td>\n",
" <td>11.154425</td>\n",
" <td>116.220851</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-29 15:32:00+00:00</th>\n",
" <td>9.941708</td>\n",
" <td>11.510796</td>\n",
" <td>123.072534</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-09-10 23:01:00+00:00</th>\n",
" <td>15.426126</td>\n",
" <td>6.903886</td>\n",
" <td>132.632752</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-09-11 00:12:00+00:00</th>\n",
" <td>10.870636</td>\n",
" <td>7.415765</td>\n",
" <td>154.558264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-09-11 04:11:00+00:00</th>\n",
" <td>12.514381</td>\n",
" <td>7.276456</td>\n",
" <td>115.372132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-09-11 04:28:00+00:00</th>\n",
" <td>13.362925</td>\n",
" <td>7.282936</td>\n",
" <td>109.223473</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-07-05 15:10:00+00:00</th>\n",
" <td>29.426641</td>\n",
" <td>6.969811</td>\n",
" <td>141.305958</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>361 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" wind_speed vessel_speed degrees\n",
"2022-04-29 01:45:00+00:00 10.993957 7.184447 90.461738\n",
"2022-04-29 03:27:00+00:00 11.791442 7.438443 71.612996\n",
"2022-04-29 14:23:00+00:00 6.562224 7.120949 143.102647\n",
"2022-04-29 15:26:00+00:00 10.928450 11.154425 116.220851\n",
"2022-04-29 15:32:00+00:00 9.941708 11.510796 123.072534\n",
"... ... ... ...\n",
"2022-09-10 23:01:00+00:00 15.426126 6.903886 132.632752\n",
"2022-09-11 00:12:00+00:00 10.870636 7.415765 154.558264\n",
"2022-09-11 04:11:00+00:00 12.514381 7.276456 115.372132\n",
"2022-09-11 04:28:00+00:00 13.362925 7.282936 109.223473\n",
"2023-07-05 15:10:00+00:00 29.426641 6.969811 141.305958\n",
"\n",
"[361 rows x 3 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"above_hull_speed = wind_and_vessel.query('state == \"sailing\" and knots_vessel > 6.9 and ms_wind > 0 and rate < {rate} and rate > -{rate}'.format(rate=rate_limit)).filter(['knots_wind', 'knots_vessel', 'degrees'])\n",
"above_hull_speed['degrees'] = above_hull_speed['degrees'].apply(lambda x: abs(x))\n",
"above_hull_speed.rename(columns={ 'knots_wind': 'wind_speed', 'knots_vessel': 'vessel_speed' })"
]
},
{
"cell_type": "markdown",
"id": "6d828920",
"metadata": {},
"source": [
"## Actual polar data\n",
"\n",
"Filter the dataset to only what we're going to use for the calculations."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "5060cc72",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>knots_wind</th>\n",
" <th>knots_vessel</th>\n",
" <th>degrees</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-04-24 14:18:00+00:00</th>\n",
" <td>21.157662</td>\n",
" <td>1.830453</td>\n",
" <td>88.996579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-24 14:29:00+00:00</th>\n",
" <td>24.010793</td>\n",
" <td>0.664147</td>\n",
" <td>91.163315</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-24 14:32:00+00:00</th>\n",
" <td>19.190060</td>\n",
" <td>2.831533</td>\n",
" <td>90.163503</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-28 18:18:00+00:00</th>\n",
" <td>4.526923</td>\n",
" <td>1.422246</td>\n",
" <td>140.681606</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-04-28 18:21:00+00:00</th>\n",
" <td>4.240520</td>\n",
" <td>1.461123</td>\n",
" <td>145.625847</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:19:00+00:00</th>\n",
" <td>17.612777</td>\n",
" <td>5.923073</td>\n",
" <td>134.085255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:24:00+00:00</th>\n",
" <td>16.037629</td>\n",
" <td>5.891430</td>\n",
" <td>114.593936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:31:00+00:00</th>\n",
" <td>17.336812</td>\n",
" <td>5.180570</td>\n",
" <td>111.907608</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:33:00+00:00</th>\n",
" <td>17.333856</td>\n",
" <td>5.118412</td>\n",
" <td>107.251006</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-09-14 02:34:00+00:00</th>\n",
" <td>17.195983</td>\n",
" <td>5.174920</td>\n",
" <td>104.932479</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>27352 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" knots_wind knots_vessel degrees\n",
"2022-04-24 14:18:00+00:00 21.157662 1.830453 88.996579\n",
"2022-04-24 14:29:00+00:00 24.010793 0.664147 91.163315\n",
"2022-04-24 14:32:00+00:00 19.190060 2.831533 90.163503\n",
"2022-04-28 18:18:00+00:00 4.526923 1.422246 140.681606\n",
"2022-04-28 18:21:00+00:00 4.240520 1.461123 145.625847\n",
"... ... ... ...\n",
"2023-09-14 02:19:00+00:00 17.612777 5.923073 134.085255\n",
"2023-09-14 02:24:00+00:00 16.037629 5.891430 114.593936\n",
"2023-09-14 02:31:00+00:00 17.336812 5.180570 111.907608\n",
"2023-09-14 02:33:00+00:00 17.333856 5.118412 107.251006\n",
"2023-09-14 02:34:00+00:00 17.195983 5.174920 104.932479\n",
"\n",
"[27352 rows x 3 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"polar_data = wind_and_vessel.query('state == \"sailing\" and ms_wind > 0 and knots_vessel > 0 and rate < {rate} and rate > -{rate}'.format(rate=rate_limit)).filter(['knots_wind', 'knots_vessel', 'degrees'])\n",
"polar_data"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "50ffcf4f",
"metadata": {},
"outputs": [],
"source": [
"degrees = {}\n",
"def find_nearest(arr, value):\n",
" nearest = arr[np.abs(arr-value).argmin()]\n",
" return nearest\n",
"def aggregate_for_degrees(dataset):\n",
" radians = {}\n",
" for index, row in dataset.iterrows():\n",
" if np.isnan(row.degrees):\n",
" continue\n",
" deg = find_nearest(angles, abs(row.degrees))\n",
" rad = np.radians(deg)\n",
" wind_speed = find_nearest(speeds, row.knots_wind)\n",
" vessel_speed = round(row.knots_vessel, 3)\n",
" if abs(wind_speed - row.knots_wind) > 5:\n",
" # Discard winds too far from the target\n",
" continue\n",
" #print('{date} wind speed {real_wind} matches {matched_wind}, {real_deg}deg matches {matched_deg}, boat speed {speed}' \\\n",
" # .format(date=index, \\\n",
" # real_wind=row.knots_wind, \\\n",
" # matched_wind=wind_speed, \\\n",
" # real_deg=row.degrees, \\\n",
" # matched_deg=deg, \\\n",
" # speed=vessel_speed \\\n",
" # ) \\\n",
" # ) \n",
" if deg not in degrees:\n",
" degrees[deg] = {}\n",
" if rad not in radians:\n",
" radians[rad] = {}\n",
" if wind_speed not in degrees[deg]:\n",
" degrees[deg][wind_speed] = []\n",
" if wind_speed not in radians[rad]:\n",
" radians[rad][wind_speed] = []\n",
" degrees[deg][wind_speed].append(vessel_speed)\n",
" radians[rad][wind_speed].append(vessel_speed)\n",
" for radian in radians:\n",
" for knots in radians[radian]:\n",
" series = pd.Series(radians[radian][knots])\n",
" radians[radian][knots] = series.describe()['75%']\n",
" return pd.DataFrame(radians).sort_index()#.interpolate(axis=1, downcast='infer')"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "62a9a4ef",
"metadata": {},
"outputs": [],
"source": [
"polar_collected = aggregate_for_degrees(polar_data).sort_index(level=0)"
]
},
{
"cell_type": "markdown",
"id": "1198868d-865b-45da-a410-8dbf934346c4",
"metadata": {},
"source": [
"## Beat and run angles\n",
"\n",
"We also need to solve the best beat and run angles for each wind speed."
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "ef4adf66-a5bb-4778-a4ca-2fc454e59eec",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>6</th>\n",
" <th>8</th>\n",
" <th>10</th>\n",
" <th>12</th>\n",
" <th>14</th>\n",
" <th>16</th>\n",
" <th>20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5.316</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>3.308</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>5.406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>0.000</td>\n",
" <td>4.008</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>4.74</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 6 8 10 12 14 16 20\n",
"38 0.000 0.000 0.00 0.0 0.0 5.316 0.000\n",
"39 3.308 0.000 0.00 0.0 0.0 0.000 0.000\n",
"40 0.000 0.000 0.00 0.0 0.0 0.000 5.406\n",
"42 0.000 4.008 0.00 0.0 0.0 0.000 0.000\n",
"44 0.000 0.000 4.74 0.0 0.0 0.000 0.000"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"beats = {}\n",
"runs = {}\n",
"for index, row in polar_data.iterrows():\n",
" deg = abs(row.degrees)\n",
" wind_speed = find_nearest(speeds, row.knots_wind)\n",
" if abs(wind_speed - row.knots_wind) > 5:\n",
" # Discard winds too far from the target\n",
" continue\n",
" vessel_speed = round(row.knots_vessel, 3)\n",
" if deg < 38:\n",
" continue\n",
" if deg < 90:\n",
" rad = np.radians(90 - deg)\n",
" if not wind_speed in beats:\n",
" beats[wind_speed] = {}\n",
" if not round(deg) in beats[wind_speed]:\n",
" beats[wind_speed][round(deg)] = []\n",
" vmg = round(vessel_speed * np.sin(rad), 3)\n",
" beats[wind_speed][round(deg)].append(vmg)\n",
" #print('At {deg}deg TWA, {wind_speed} TWS we get {vmg} VMG from {vessel_speed} STW'.format(deg=round(deg), wind_speed=wind_speed, vmg=vmg, vessel_speed=vessel_speed))\n",
" if deg > 90:\n",
" rad = np.radians(deg - 90)\n",
" if not wind_speed in runs:\n",
" runs[wind_speed] = {}\n",
" if not round(deg) in runs[wind_speed]:\n",
" runs[wind_speed][round(deg)] = []\n",
" vmg = round(vessel_speed * np.sin(rad), 3)\n",
" runs[wind_speed][round(deg)].append(vmg)\n",
"beat_angles = {}\n",
"for knots in beats:\n",
" if not knots in beat_angles:\n",
" beat_angles[knots] = {\n",
" 'vmg': 0,\n",
" 'deg': 0,\n",
" }\n",
" for angle in beats[knots]:\n",
" series = pd.Series(beats[knots][angle])\n",
" beats[knots][angle] = series.describe()['75%']\n",
" if beats[knots][angle] > beat_angles[knots]['vmg']:\n",
" beat_angles[knots]['vmg'] = beats[knots][angle]\n",
" beat_angles[knots]['deg'] = angle\n",
"run_angles = {}\n",
"for knots in runs:\n",
" if not knots in run_angles:\n",
" run_angles[knots] = {\n",
" 'vmg': 0,\n",
" 'deg': 0,\n",
" }\n",
" for angle in runs[knots]:\n",
" series = pd.Series(runs[knots][angle])\n",
" runs[knots][angle] = series.describe()['75%']\n",
" if runs[knots][angle] > run_angles[knots]['vmg']:\n",
" run_angles[knots]['vmg'] = runs[knots][angle]\n",
" run_angles[knots]['deg'] = angle\n",
"beats = {}\n",
"for knot in beat_angles:\n",
" if not beat_angles[knot]['deg'] in beats:\n",
" beats[beat_angles[knot]['deg']] = {}\n",
" for kt in speeds:\n",
" if kt == knot:\n",
" beats[beat_angles[knot]['deg']][kt] = round(beat_angles[knot]['vmg'] / np.cos(np.radians(beat_angles[knot]['deg'])), 3)\n",
" else:\n",
" beats[beat_angles[knot]['deg']][kt] = 0\n",
"\n",
"runs = {}\n",
"for knot in run_angles:\n",
" if not run_angles[knot]['deg'] in runs:\n",
" runs[run_angles[knot]['deg']] = {}\n",
" for kt in speeds:\n",
" if kt == knot:\n",
" runs[run_angles[knot]['deg']][kt] = round(run_angles[knot]['vmg'] / np.cos(np.radians(180 - run_angles[knot]['deg'])), 3)\n",
" else:\n",
" runs[run_angles[knot]['deg']][kt] = 0\n",
"\n",
"beat_degrees = pd.DataFrame(beats).sort_index()\n",
"filtered_beat_degrees = beat_degrees.query('index == @speeds').transpose().sort_index()\n",
"\n",
"run_degrees = pd.DataFrame(runs).sort_index()\n",
"filtered_run_degrees = run_degrees.query('index == @speeds').transpose().sort_index()\n",
"\n",
"filtered_beat_degrees"
]
},
{
"cell_type": "markdown",
"id": "d55c867d",
"metadata": {},
"source": [
"## Polar diagram"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "cecb2831",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fb68957aac0>"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAckAAAG6CAYAAABjib0eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3hUZfq/7+npvfdCQgKE0EKvCiIooKzdxbq6rljAurZdlrV/XVd/a9l1ddUVFXVFdG2IS28hoYaQkN57L9Nnzu+PYUZCCimTSeHc15WLMHPOed8zmXM+53nep0gEQRAQERERERER6YR0qCcgIiIiIiIyXBFFUkREREREpBtEkRQREREREekGUSRFRERERES6QRRJERERERGRbhBFUkREREREpBtEkRQREREREekGUSRFRERERES6QRRJERERERGRbhBFUkREREREpBtEkRQRGQLeeustoqOjcXJyYurUqezdu9f2XlVVFcuWLSMkJIR7770Xs9k8hDMVEbm4EUVSRMTBfPbZZ6xbt46nnnqKY8eOMW/ePJYtW0ZJSQkATz/9NCkpKfzwww8UFRXx6aefDvGMRUQuXkSRFBFxMK+++ip33nknv/nNb0hMTOS1114jPDyct99+G4CmpibGjx9PUlIS0dHRNDc3D/GMRUQuXkSRFBFxIHq9niNHjnDZZZd1eP2yyy7jwIEDAPz+97/ngQceQKVScezYMW655ZahmKqIiAggH+oJiIhcTNTV1WEymQgMDOzwemBgIFVVVQBMmzaN8vJy6urqCAoKGoppioiInEW0JEVEhgCJRNLh/4IgdHhNLpeLAikiMgwQRVJExIH4+fkhk8lsVqOVmpqaTtaliIjI0COKpIiIA1EqlUydOpXt27d3eH379u3Mnj17iGYlIiLSHeKapIiIg3nooYdYs2YN06ZNY9asWbzzzjuUlJRwzz33DPXUREREzkMUSRERB3P99ddTX1/Pxo0bqaysZMKECXz//fdERkYO9dRERETOQyIIgjDUkxARERERERmOiGuSIiIiIiIi3SCKpIiIiIiISDeIIikiIiIiItINokiKiIiIiIh0gyiSIiIiIiIi3SCKpIiIiIiISDeIIikiIiIiItINokiKiIiIiIh0gyiSIiIiIiIi3SCKpIiIiIiISDeIIikiIiIiItINokiKiIiIiIh0gyiSIiIi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8pe/EB8fzz//+U/JDCvRL1gsFn744QemTJnCJZdcwtixY8nLy+OVV17Bx2dg5NhKDF4kkZToFm5ubjz22GMUFhbyzDPP8N577xETE8MLL7xAY2Njfy9P4hzAbDbz6aefkpKSwm233cbixYspLi7mzTffJDQ0tL+XJzFEkERSoke4uLhw++23c/z4cd566y1Wr15NTEwMjz76KDU1Nf29PIkhiF6v54033iA+Pp4///nP3HrrrZSWlvLiiy/2e3NxiaGHJJISvYJCoeCqq67i4MGDrFq1ir179xIbG8tNN93EoUOH+nt5EkOAiooKnnzySYYPH867777L008/TWFhIY899li/lVKUGPpIIinRq8hkMhYvXsz27dtZt24dBoOBSZMmMXPmTFatWiUF+Uh0me3bt3P55ZcTGxvLzp07eeeddzh+/Dh33HEHLi4u/b08iSGOJJISfca0adP4+uuvKSoqYsGCBTzyyCNER0fzxBNPUFJS0t/LkxjAaDQa/vnPf5KamsqiRYsICAhgz549bNu2jWXLlkmpHBKiIYmkRJ8TGhrKCy+8QGlpKW+++Sb79+8nLi6ORYsW8f3332Mymfp7iRIDhJ07d3LTTTcRHh7OypUruf322ykvL+ejjz4iOTm5v5cncQ4iiaSEaDg5OXHFFVewadMmMjMzGTNmDHfffTdhYWHceuutbN++3d4ZQ+LcITc3lz/96U8kJCQwf/58TCYTv/32G1lZWTzwwAP4+vr29xIlzmEkkZToF+Lj4/nHP/5BRUUFn332GQaDgUWLFhEfH89jjz3GsWPH+nuJEn1ITU0Nr776KhMnTmTUqFEcOHCAZ599lurqalatWsXMmTOl0nESAwKpcrREv6JUKlm8eDGLFy9Go9Hw008/8fnnn5OcnExKSgrLli3jxhtvJDIysr+XKtFD1Go13333HV999RXbt29n1KhR3Hzzzfz666+EhIT09/IkJNpE6icpMSCprq7mm2++4fPPPycjI4PRo0ezcOFCrrzySiZNmoRcPrSMIEO1n+SJEyf45ptvWLNmDXv37iUsLIzrrruOG264gaSkpP5enoREp0giKTHgqaio4LfffuOnn35iw4YNBAQEMHfuXC677DIuuuiiIZEGMFRE0mKxkJaWxv/+9z82btxITk4OkydP5tJLL2XJkiUkJiZKZlSJQYUkkhKDipaW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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})\n",
"ax.set_theta_zero_location('N')\n",
"for index, row in polar_collected.interpolate(axis=0).query('index == @speeds').iterrows():\n",
" ax.plot(row.sort_index(), label=\"{speed}kt\".format(speed=index))\n",
"ax.set_rticks([3, 4, 5, 6, 7])\n",
"ax.legend(loc=\"upper right\",title='Wind speed')"
]
},
{
"cell_type": "markdown",
"id": "d1135681",
"metadata": {},
"source": [
"Weather routing software deals in degrees instead of radians."
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "ee1927a6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>6</th>\n",
" <th>8</th>\n",
" <th>10</th>\n",
" <th>12</th>\n",
" <th>14</th>\n",
" <th>16</th>\n",
" <th>20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>3.30</td>\n",
" <td>4.06</td>\n",
" <td>4.60</td>\n",
" <td>4.84</td>\n",
" <td>5.19</td>\n",
" <td>5.41</td>\n",
" <td>5.33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>3.20</td>\n",
" <td>4.40</td>\n",
" <td>4.85</td>\n",
" <td>5.32</td>\n",
" <td>5.60</td>\n",
" <td>5.80</td>\n",
" <td>5.89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75</th>\n",
" <td>3.59</td>\n",
" <td>4.54</td>\n",
" <td>5.20</td>\n",
" <td>5.52</td>\n",
" <td>5.81</td>\n",
" <td>6.18</td>\n",
" <td>6.16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>3.51</td>\n",
" <td>4.55</td>\n",
" <td>5.19</td>\n",
" <td>5.69</td>\n",
" <td>5.85</td>\n",
" <td>6.18</td>\n",
" <td>6.28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110</th>\n",
" <td>3.38</td>\n",
" <td>4.48</td>\n",
" <td>5.07</td>\n",
" <td>5.46</td>\n",
" <td>5.84</td>\n",
" <td>6.03</td>\n",
" <td>6.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>120</th>\n",
" <td>2.95</td>\n",
" <td>4.15</td>\n",
" <td>4.76</td>\n",
" <td>5.22</td>\n",
" <td>5.62</td>\n",
" <td>6.02</td>\n",
" <td>6.43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>135</th>\n",
" <td>2.93</td>\n",
" <td>3.64</td>\n",
" <td>4.50</td>\n",
" <td>4.93</td>\n",
" <td>5.44</td>\n",
" <td>5.87</td>\n",
" <td>6.36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>150</th>\n",
" <td>2.56</td>\n",
" <td>3.62</td>\n",
" <td>4.11</td>\n",
" <td>4.82</td>\n",
" <td>5.32</td>\n",
" <td>5.62</td>\n",
" <td>6.21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>160</th>\n",
" <td>2.65</td>\n",
" <td>3.61</td>\n",
" <td>4.37</td>\n",
" <td>4.98</td>\n",
" <td>5.35</td>\n",
" <td>5.70</td>\n",
" <td>6.42</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 6 8 10 12 14 16 20\n",
"52 3.30 4.06 4.60 4.84 5.19 5.41 5.33\n",
"60 3.20 4.40 4.85 5.32 5.60 5.80 5.89\n",
"75 3.59 4.54 5.20 5.52 5.81 6.18 6.16\n",
"90 3.51 4.55 5.19 5.69 5.85 6.18 6.28\n",
"110 3.38 4.48 5.07 5.46 5.84 6.03 6.40\n",
"120 2.95 4.15 4.76 5.22 5.62 6.02 6.43\n",
"135 2.93 3.64 4.50 4.93 5.44 5.87 6.36\n",
"150 2.56 3.62 4.11 4.82 5.32 5.62 6.21\n",
"160 2.65 3.61 4.37 4.98 5.35 5.70 6.42"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for degree in degrees:\n",
" for knots in degrees[degree]:\n",
" series = pd.Series(degrees[degree][knots])\n",
" degrees[degree][knots] = round(series.describe()['75%'], 2)\n",
"polar_degrees = pd.DataFrame(degrees).sort_index()\n",
"filtered_polar_degrees = polar_degrees.query('index == @speeds').transpose().sort_index()\n",
"filtered_polar_degrees"
]
},
{
"cell_type": "markdown",
"id": "4dc381e6-6128-400d-91ee-4a978beed625",
"metadata": {},
"source": [
"Then we add the beat and run angles:"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "d3c05537-d880-49d1-9792-79c9c43e6920",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>6</th>\n",
" <th>8</th>\n",
" <th>10</th>\n",
" <th>12</th>\n",
" <th>14</th>\n",
" <th>16</th>\n",
" <th>20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>5.316</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>3.308</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>5.406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>0.000</td>\n",
" <td>4.008</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>4.740</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>3.300</td>\n",
" <td>4.060</td>\n",
" <td>4.600</td>\n",
" <td>4.840</td>\n",
" <td>5.19</td>\n",
" <td>5.410</td>\n",
" <td>5.330</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>3.200</td>\n",
" <td>4.400</td>\n",
" <td>4.850</td>\n",
" <td>5.320</td>\n",
" <td>5.60</td>\n",
" <td>5.800</td>\n",
" <td>5.890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75</th>\n",
" <td>3.590</td>\n",
" <td>4.540</td>\n",
" <td>5.200</td>\n",
" <td>5.520</td>\n",
" <td>5.81</td>\n",
" <td>6.180</td>\n",
" <td>6.160</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>3.510</td>\n",
" <td>4.550</td>\n",
" <td>5.190</td>\n",
" <td>5.690</td>\n",
" <td>5.85</td>\n",
" <td>6.180</td>\n",
" <td>6.280</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110</th>\n",
" <td>3.380</td>\n",
" <td>4.480</td>\n",
" <td>5.070</td>\n",
" <td>5.460</td>\n",
" <td>5.84</td>\n",
" <td>6.030</td>\n",
" <td>6.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>120</th>\n",
" <td>2.950</td>\n",
" <td>4.150</td>\n",
" <td>4.760</td>\n",
" <td>5.220</td>\n",
" <td>5.62</td>\n",
" <td>6.020</td>\n",
" <td>6.430</td>\n",
" </tr>\n",
" <tr>\n",
" <th>135</th>\n",
" <td>2.930</td>\n",
" <td>3.640</td>\n",
" <td>4.500</td>\n",
" <td>4.930</td>\n",
" <td>5.44</td>\n",
" <td>5.870</td>\n",
" <td>6.360</td>\n",
" </tr>\n",
" <tr>\n",
" <th>150</th>\n",
" <td>2.560</td>\n",
" <td>3.620</td>\n",
" <td>4.110</td>\n",
" <td>4.820</td>\n",
" <td>5.32</td>\n",
" <td>5.620</td>\n",
" <td>6.210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>160</th>\n",
" <td>2.650</td>\n",
" <td>3.610</td>\n",
" <td>4.370</td>\n",
" <td>4.980</td>\n",
" <td>5.35</td>\n",
" <td>5.700</td>\n",
" <td>6.420</td>\n",
" </tr>\n",
" <tr>\n",
" <th>167</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>7.019</td>\n",
" </tr>\n",
" <tr>\n",
" <th>168</th>\n",
" <td>0.000</td>\n",
" <td>4.171</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>170</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>4.722</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>174</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>5.909</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>175</th>\n",
" <td>4.435</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>177</th>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>5.177</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 6 8 10 12 14 16 20\n",
"38 0.000 0.000 0.000 0.000 0.00 5.316 0.000\n",
"39 3.308 0.000 0.000 0.000 0.00 0.000 0.000\n",
"40 0.000 0.000 0.000 0.000 0.00 0.000 5.406\n",
"42 0.000 4.008 0.000 0.000 0.00 0.000 0.000\n",
"44 0.000 0.000 4.740 0.000 0.00 0.000 0.000\n",
"52 3.300 4.060 4.600 4.840 5.19 5.410 5.330\n",
"60 3.200 4.400 4.850 5.320 5.60 5.800 5.890\n",
"75 3.590 4.540 5.200 5.520 5.81 6.180 6.160\n",
"90 3.510 4.550 5.190 5.690 5.85 6.180 6.280\n",
"110 3.380 4.480 5.070 5.460 5.84 6.030 6.400\n",
"120 2.950 4.150 4.760 5.220 5.62 6.020 6.430\n",
"135 2.930 3.640 4.500 4.930 5.44 5.870 6.360\n",
"150 2.560 3.620 4.110 4.820 5.32 5.620 6.210\n",
"160 2.650 3.610 4.370 4.980 5.35 5.700 6.420\n",
"167 0.000 0.000 0.000 0.000 0.00 0.000 7.019\n",
"168 0.000 4.171 0.000 0.000 0.00 0.000 0.000\n",
"170 0.000 0.000 4.722 0.000 0.00 0.000 0.000\n",
"174 0.000 0.000 0.000 0.000 0.00 5.909 0.000\n",
"175 4.435 0.000 0.000 0.000 0.00 0.000 0.000\n",
"177 0.000 0.000 0.000 5.177 0.00 0.000 0.000"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combined_polars = pd.concat([filtered_beat_degrees, filtered_polar_degrees, filtered_run_degrees])\n",
"combined_polars"
]
},
{
"cell_type": "markdown",
"id": "97516fe8",
"metadata": {},
"source": [
"## Polar data CSV\n",
"\n",
"Format the data in the [ORC CSV structure](https://jieter.github.io/orc-data/site/#customplot). This can be fed into Signal K, Weather Routing apps, etc."
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "c1027a33",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"twa/tws;6;8;10;12;14;16;20\n",
"38;0.0;0.0;0.0;0.0;0.0;5.316;0.0\n",
"39;3.308;0.0;0.0;0.0;0.0;0.0;0.0\n",
"40;0.0;0.0;0.0;0.0;0.0;0.0;5.406\n",
"42;0.0;4.008;0.0;0.0;0.0;0.0;0.0\n",
"44;0.0;0.0;4.74;0.0;0.0;0.0;0.0\n",
"52;3.3;4.06;4.6;4.84;5.19;5.41;5.33\n",
"60;3.2;4.4;4.85;5.32;5.6;5.8;5.89\n",
"75;3.59;4.54;5.2;5.52;5.81;6.18;6.16\n",
"90;3.51;4.55;5.19;5.69;5.85;6.18;6.28\n",
"110;3.38;4.48;5.07;5.46;5.84;6.03;6.4\n",
"120;2.95;4.15;4.76;5.22;5.62;6.02;6.43\n",
"135;2.93;3.64;4.5;4.93;5.44;5.87;6.36\n",
"150;2.56;3.62;4.11;4.82;5.32;5.62;6.21\n",
"160;2.65;3.61;4.37;4.98;5.35;5.7;6.42\n",
"167;0.0;0.0;0.0;0.0;0.0;0.0;7.019\n",
"168;0.0;4.171;0.0;0.0;0.0;0.0;0.0\n",
"170;0.0;0.0;4.722;0.0;0.0;0.0;0.0\n",
"174;0.0;0.0;0.0;0.0;0.0;5.909;0.0\n",
"175;4.435;0.0;0.0;0.0;0.0;0.0;0.0\n",
"177;0.0;0.0;0.0;5.177;0.0;0.0;0.0\n",
"\n"
]
}
],
"source": [
"print(combined_polars.to_csv(index_label='twa/tws', sep=';'))\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5e435821-9960-43e1-b4a7-33bb1993bf43",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "e368c7e6-ee9e-4c96-8b2a-1e1c674f068f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f4ed3d46-5d5d-4a5b-b1fc-d17034d6c90c",
"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.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
We can make this file beautiful and searchable if this error is corrected: No commas found in this CSV file in line 0.
twa/tws;6;8;10;12;14;16;20
38;0.0;0.0;0.0;0.0;0.0;5.316;0.0
39;3.308;0.0;0.0;0.0;0.0;0.0;0.0
40;0.0;0.0;0.0;0.0;0.0;0.0;5.406
42;0.0;4.008;0.0;0.0;0.0;0.0;0.0
44;0.0;0.0;4.74;0.0;0.0;0.0;0.0
52;3.3;4.06;4.6;4.84;5.19;5.41;5.33
60;3.2;4.4;4.85;5.32;5.6;5.8;5.89
75;3.59;4.54;5.2;5.52;5.81;6.18;6.16
90;3.51;4.55;5.19;5.69;5.85;6.18;6.28
110;3.38;4.48;5.07;5.46;5.84;6.03;6.4
120;2.95;4.15;4.76;5.22;5.62;6.02;6.43
135;2.93;3.64;4.5;4.93;5.44;5.87;6.36
150;2.56;3.62;4.11;4.82;5.32;5.62;6.21
160;2.65;3.61;4.37;4.98;5.35;5.7;6.42
167;0.0;0.0;0.0;0.0;0.0;0.0;7.019
168;0.0;4.171;0.0;0.0;0.0;0.0;0.0
170;0.0;0.0;4.722;0.0;0.0;0.0;0.0
174;0.0;0.0;0.0;0.0;0.0;5.909;0.0
175;4.435;0.0;0.0;0.0;0.0;0.0;0.0
177;0.0;0.0;0.0;5.177;0.0;0.0;0.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment