Added a bit of code
This commit is contained in:
1 file changed
+505
-190
+505
-190
@@ -2,6 +2,11 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"# A suggestion of curse changes for a robot sailboat\n",
|
||||
"\n",
|
||||
@@ -36,22 +41,32 @@
|
||||
"### The generell structure\n",
|
||||
"\n",
|
||||
"Since"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/pyrate\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%cd /pyrate/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"pycharm": {
|
||||
"name": "#%%\n",
|
||||
"is_executing": true
|
||||
"is_executing": true,
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
@@ -68,23 +83,58 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 76,
|
||||
"execution_count": 23,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"START\n",
|
||||
"[<pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d9c00>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d89a0>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d88b0>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8880>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8820>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d87c0>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8760>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8700>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8640>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8550>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d85b0>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8250>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d9d20>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d9b10>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d9030>, <pyrate.plan.nearplanner.timing_frame.TimingFrame object at 0x7f96ca5d8f40>]\n",
|
||||
"[C] Construction finished with 4 remaining\n",
|
||||
"EvaluatedTimingFrame([[ 0. 0. ]\n",
|
||||
" [ 26.43818117 12.62331955]\n",
|
||||
" [ 50.6782909 18.29214599]\n",
|
||||
" [ 44.80120821 35.03692309]\n",
|
||||
" [ 17.25507975 36.62852036]\n",
|
||||
" [ 24.69135802 63.98756667]\n",
|
||||
" [ 78.25984163 72.64748198]\n",
|
||||
" [ 82.03172913 76.84603024]\n",
|
||||
" [ 0.42157698 98.41464665]\n",
|
||||
" [ 0. 100. ]])\n",
|
||||
"667.5603860950698\n",
|
||||
"955.189600304951\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from experiments import generate_route"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"SIZE_INNER = 75\n",
|
||||
"SIZE_ROUTE = 100\n",
|
||||
"MIN_DESTINATION_DISTANCE = 25"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 77,
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# https://stackoverflow.com/questions/16444719/python-numpy-complex-numbers-is-there-a-function-for-polar-to-rectangular-co\n",
|
||||
@@ -116,23 +166,25 @@
|
||||
" An distance array and an angle array.\n",
|
||||
" \"\"\"\n",
|
||||
" return abs(x), np.angle(x)"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 78,
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "(array('d', [58.14925495607776, 57.991505776535874, 57.76398376244, 56.384785221067744, 55.81452229141463, 56.285256940049436, 56.785512495130604, 58.14925495607776]),\n array('d', [-62.57469140842694, -62.279867618259566, -62.04187518408968, -61.94019571244569, -62.6896502705296, -63.99539776490992, -64.20651127735718, -62.57469140842694]))"
|
||||
"text/plain": [
|
||||
"(array('d', [84.94149230207856, 78.04507967759636, 79.05686913703596, 80.08400830987347, 81.70255259062077, 83.61415975738558, 85.33508086545056, 85.47040615575028, 86.0245499015864, 84.94149230207856]),\n",
|
||||
" array('d', [72.74676391639998, 70.74544900500507, 67.2549918581008, 66.46078189157683, 65.98644621136356, 66.31332436288989, 67.74737384448065, 67.96201813311431, 69.99066912301528, 72.74676391639998]))"
|
||||
]
|
||||
},
|
||||
"execution_count": 78,
|
||||
"execution_count": 18,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -166,39 +218,37 @@
|
||||
"\n",
|
||||
"\n",
|
||||
"random_polygon().exterior.xy"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 79,
|
||||
"execution_count": 19,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"POLYGON ((64.24234834022612 114.96629329424587, 62.58155390362512 115.71472980681563, -73.35243626054171 120.99282453832782, -193.33402301375247 -80.4360840218972, 64.24234834022612 114.96629329424587))\n"
|
||||
"POLYGON ((13.575412783607412 14.141511830603921, 11.886568098525395 13.482167281052025, 8.703912627668682 7.6730441887238605, 8.974534426860235 6.144904064619676, 21.215855344806364 6.946074653972472, 13.575412783607412 14.141511830603921))\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(random_polygon())"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 80,
|
||||
"execution_count": 20,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def generate_obstacles(\n",
|
||||
@@ -229,17 +279,16 @@
|
||||
" polygons.append(poly)\n",
|
||||
" polygon_list = list(unary_union(polygons).geoms)\n",
|
||||
" return polygon_list"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 81,
|
||||
"execution_count": 21,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -278,67 +327,28 @@
|
||||
"\n",
|
||||
"\n",
|
||||
"print(generate_destination(generate_obstacles(42), 42))"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 82,
|
||||
"execution_count": 22,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
},
|
||||
"scrolled": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<Figure size 576x576 with 1 Axes>",
|
||||
"image/png": "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JSQlJdEjPZ2BXbuydtUqmjVrxv/+9z8Adu3aRZ06dXjmmWeYOnUqDRo0AGDUqFHUr1+f/Px8+vfvz6JFi2jfvj3nn38+H374IT169GD37t0kJibu9/ijRo3i+OOP56233mLnzp307NmTE044geTk5ND8UapBW/ButW6dq2eOKhdbswYGD4Yjj4Tp0yMruYMsjfv3v52OIqKdeOKJpKamkpiYyNnnnMMPf/5J586dmTx5MnfddRczZ86kTp06pd73o48+onv37nTr1o2lS5eybNkyfv/9d5o2bUqPHj0A+TARE7N/+/fbb79l9OjRpKWl0bdvX7Kysli3bl3Qf9ea0ATvRp9/DoccAuef772ZySp8bd0K110na44/+0xmxkfih8z27eXDjQqaDh06MG/evP2O7d69m3Xr1hETE1Ni1rmpW5d2HTowf/58OnfuzH333cfDDz9c4rx//vknTz31FN9//z2LFi1i4MCBlV6eZq3lk08+YcGCBSxYsIB169ZxeJivv9cE7zbr1sHQofL9F19Av35wwFiRUgGVkSHjzYccAm+9JbPi8/KcjsoZKSnwyCNOR+F5/fv3x+fz8e677wKQn5/PbbfdxrBhw0hKSmLy5Mls374dv9/PxIkT6d27Nxs2bCApKYmLLrqIO+64g/nz5wNQq1atvePpu3fvJjk5mTp16rBp0ya++uorAA477DA2btzInDlzANizZw95B/yPDxgwgBdeeIGi8u6//vprSP4WNaEJ3k1yc+G00/Z1ifr9MHcu9Oghe2crFUg5OfD887Lk7amn5P/O5euNa6xRI9lkRgWVMYZPP/2Ujz/+mLZt29KuXTsSEhJ49NFHAejZsyfnnHMOXbp04ZxzziE9PZ3FixfTs2dP0tLSeOihh7jvvvsAGD58OCeffDL9+vWja9eudOvWjfbt23PhhRfSu3dvAOLi4vjwww+54YYb6Nq1KyeeeGKJlv39999Pbm4uXbp0oWPHjtx///2h/aNUg2424yY33ihrjA8c84yJkYIPM2ZAu3bOxKa8o6BASsreequ03iNhVnxlpKTAK6/IagEPW758+f5dz02aBHYmfePG2iApRYm/O7rZTGT58MPSx9zz8mQdaI8e8M03cNRRoY9NuZ+18O23UnrVLVu3hlJiIgwZ4nQUoafJ2LW0i95NFi+Gc8+VN5oDWQu7d0P//jBpUuhjU+72yy8yceycc2THN03u+0tOhvvuk94ypVxCE7ybNGokG3bMmAGdO8ubzoF8PmllvPpq6ONT7vP773DKKdC3L8yZo4m9LFFRcOWVTkehVJVognej9HRYsABeekk2ukhI2P96v1/GT++9NzKXMamK/f03XHyxVKD79lvw+/kNaBObQIu4xHIvL0dFWCs2IUHK7yYlOR2JUlUSYa9UD4mKgksvhbPPhgcekBZ7drZMkAJJ8s89B2vXwjvvaNeiEjt2SJGWV1+VuRvF5nT8BuxMPZj4gbeUeXff7z8y8+cJXFcQQcvkjIGbb3Y6CqWqTFvwblerFjzzDCxcCMcdt3+3vc8Hn34KJ56oXa+Rzu+HRx+Fgw+WmeBlbN8aE5tAXIMWZV6iU1IdCN5BsbFwySX7tiVVykU0wXtF27YwZQp8/LHscFXUnej3w+zZMoFqyxZnY1Shl5cHr70ma9lHjZIPel7dvjUYoqNlqEuFVHR0NGlpaXTs2JGuXbvy9NNPU1DUO1lFRWvni/Tq1avacb399tts2LBh789XXnkly5Ytq/b5gk0TvNeccgqsXg333y9JPjZWuu5//13GW1etcjpCFQrWwiefQKtWMh9j+/bIqxlfU1FRMHAgtGjhdCQRJzExkQULFrB06VImT57MV199xUMPPVStcx2Y4GfNmlXtuA5M8G+88QYdOnSo9vmCTRO8F8XFwd13w8qVsmd1YqK05DZuhCOOkOp3yrumTZNVFpdeCuvX6/BMdcXHw4MPOh1FWMvJz+GU90/hlPdPISMnY+/3Ofk5AXuMRo0a8dprr/Hiiy9irSU/P5877riDHj160KVLF/7zn/8AsHHjRvr06UNaWhqdOnVi5syZ3H333fj9ftLS0hhaWOI7JSUFgGnTptG3b18GDx5M+/btGTp06N4ytA8//DA9evSgU6dODB8+HGstEyZMYO7cuQwdOpS0tDT8fj99+/alqAjb+PHj6dy5M506deKuu+7aG39KSgojR46ka9euHHXUUWwK9Pa75dAE72VNm0pxnKlTZYOQpCTYtUvG6gtrMCsPWbQI+vSRVufSpZrYa+rII6FTJ6ejCGuDxg9i+trpTF87nebPNN/7/aDxgwL6OK1btyY/P5/Nmzfz5ptvUqdOHebMmcOcOXN4/fXX+fPPPxk3bhwDBgxgwYIFLFy4kLS0NEaPHr23N2Ds2LElzvvrr7/y7LPPsmzZMlavXs2PP/4IwIgRI5gzZw5LlizB7/fzxRdfMHjwYNLT0xk7diwLFizYbzvZDRs2cNdddzFlyhQWLFjAnDlzmDhxIiD7yB911FEsXLiQPn368Prrrwf0b1MeTfCR4MgjYckSmVVfp4502Z92mmwcoryjf3/Line truncated
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<Figure size 576x576 with 1 Axes>",
|
||||
"image/png": "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 truncated
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<Figure size 576x576 with 1 Axes>",
|
||||
"image/png": "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 truncated
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<Figure size 576x576 with 1 Axes>",
|
||||
"image/png": "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 truncated
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<Figure size 576x576 with 1 Axes>",
|
||||
"image/png": "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 truncated
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
"ename": "NameError",
|
||||
"evalue": "name 'asdf' is not defined",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"Input \u001b[0;32mIn [22]\u001b[0m, in \u001b[0;36m<cell line: 45>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 43\u001b[0m plt\u001b[38;5;241m.\u001b[39mlegend(by_label\u001b[38;5;241m.\u001b[39mvalues(), by_label\u001b[38;5;241m.\u001b[39mkeys())\n\u001b[1;32m 44\u001b[0m plt\u001b[38;5;241m.\u001b[39mshow()\n\u001b[0;32m---> 45\u001b[0m \u001b[43masdf\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m5\u001b[39m):\n\u001b[1;32m 48\u001b[0m o \u001b[38;5;241m=\u001b[39m generate_obstacles(s)\n",
|
||||
"\u001b[0;31mNameError\u001b[0m: name 'asdf' is not defined"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
@@ -362,11 +372,12 @@
|
||||
" plt.figure(figsize=(8, 8))\n",
|
||||
" plt.axis([-SIZE_ROUTE, SIZE_ROUTE, -SIZE_ROUTE, SIZE_ROUTE])\n",
|
||||
" plt.title(\"Test\")\n",
|
||||
" for polygon in obstacles:\n",
|
||||
" if obstacle_color is not None:\n",
|
||||
" plt.fill(*polygon.exterior.xy, color=obstacle_color, label=\"Obstacle\")\n",
|
||||
" else:\n",
|
||||
" plt.fill(*polygon.exterior.xy)\n",
|
||||
" if obstacles:\n",
|
||||
" for polygon in obstacles:\n",
|
||||
" if obstacle_color is not None:\n",
|
||||
" plt.fill(*polygon.exterior.xy, color=obstacle_color, label=\"Obstacle\")\n",
|
||||
" else:\n",
|
||||
" plt.fill(*polygon.exterior.xy)\n",
|
||||
" plt.scatter(*destination.xy, marker=\"X\", color=\"green\", label=\"Destination\")\n",
|
||||
" plt.scatter(0, 0, marker=\"o\", color=\"green\", label=\"Start\")\n",
|
||||
" # https://www.geeksforgeeks.org/matplotlib-pyplot-arrow-in-python/\n",
|
||||
@@ -387,27 +398,29 @@
|
||||
" plt.show()\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"for s in range(5):\n",
|
||||
" o = generate_obstacles(s)\n",
|
||||
" plot_situation(o, generate_destination(o, s), \"RED\")"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
"for seed in range(5):\n",
|
||||
" obstacles = generate_obstacles(seed)\n",
|
||||
" plot_situation(obstacles, generate_destination(obstacles, seed), \"RED\")\n",
|
||||
" (route,) = generate_route()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 83,
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<PIL.Image.Image image mode=RGB size=200x200>",
|
||||
"image/png": "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\n"
|
||||
"image/png": "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\n",
|
||||
"text/plain": [
|
||||
"<PIL.Image.Image image mode=RGB size=200x200>"
|
||||
]
|
||||
},
|
||||
"execution_count": 83,
|
||||
"execution_count": 9,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -447,23 +460,22 @@
|
||||
"g = generate_destination(o, 42)\n",
|
||||
"og_img = generate_image_from_map(o, g, None)\n",
|
||||
"og_img"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 84,
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"6.39 ms ± 209 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
|
||||
"5.3 ms ± 111 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -503,31 +515,187 @@
|
||||
"\n",
|
||||
"\n",
|
||||
"%timeit generate_all_to_series()"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 85,
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"6.22 s ± 197 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
|
||||
"5.83 s ± 398 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": " obstacles destination_x \\\nseed \n0 [POLYGON ((-17.62168766659423 -98.369266220295... -66.0 \n1 [POLYGON ((-97.82715137072381 -82.221167700698... -38.0 \n2 [POLYGON ((-46.23706006792075 -76.756994820638... 73.0 \n3 [POLYGON ((-7.4210414351932155 -83.11109606339... 31.0 \n4 [POLYGON ((-77.97638439917915 -70.239097296919... 47.0 \n... ... ... \n995 [POLYGON ((-58.363834699771374 -78.10250502922... 53.0 \n996 [POLYGON ((-45.38105849246964 -86.568664678920... -66.0 \n997 [POLYGON ((-82.90222667221566 -92.864813148784... 41.0 \n998 [POLYGON ((-37.1039416590347 -88.1790371955828... -45.0 \n999 [POLYGON ((-119.59353826736813 -30.54685916387... 74.0 \n\n destination_y image route \nseed \n0 -54.0 <NA> None \n1 65.0 <NA> None \n2 49.0 <NA> None \n3 56.0 <NA> None \n4 54.0 <NA> None \n... ... ... ... \n995 52.0 <NA> None \n996 73.0 <NA> None \n997 51.0 <NA> None \n998 64.0 <NA> None \n999 -25.0 <NA> None \n\n[1000 rows x 5 columns]",
|
||||
"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>obstacles</th>\n <th>destination_x</th>\n <th>destination_y</th>\n <th>image</th>\n <th>route</th>\n </tr>\n <tr>\n <th>seed</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>[POLYGON ((-17.62168766659423 -98.369266220295...</td>\n <td>-66.0</td>\n <td>-54.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>1</th>\n <td>[POLYGON ((-97.82715137072381 -82.221167700698...</td>\n <td>-38.0</td>\n <td>65.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>2</th>\n <td>[POLYGON ((-46.23706006792075 -76.756994820638...</td>\n <td>73.0</td>\n <td>49.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>3</th>\n <td>[POLYGON ((-7.4210414351932155 -83.11109606339...</td>\n <td>31.0</td>\n <td>56.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>4</th>\n <td>[POLYGON ((-77.97638439917915 -70.239097296919...</td>\n <td>47.0</td>\n <td>54.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>995</th>\n <td>[POLYGON ((-58.363834699771374 -78.10250502922...</td>\n <td>53.0</td>\n <td>52.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>996</th>\n <td>[POLYGON ((-45.38105849246964 -86.568664678920...</td>\n <td>-66.0</td>\n <td>73.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>997</th>\n <td>[POLYGON ((-82.90222667221566 -92.864813148784...</td>\n <td>41.0</td>\n <td>51.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>998</th>\n <td>[POLYGON ((-37.1039416590347 -88.1790371955828...</td>\n <td>-45.0</td>\n <td>64.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>999</th>\n <td>[POLYGON ((-119.59353826736813 -30.54685916387...</td>\n <td>74.0</td>\n <td>-25.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n </tbody>\n</table>\n<p>1000 rows × 5 columns</p>\n</div>"
|
||||
"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>obstacles</th>\n",
|
||||
" <th>destination_x</th>\n",
|
||||
" <th>destination_y</th>\n",
|
||||
" <th>image</th>\n",
|
||||
" <th>route</th>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>seed</th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" </tr>\n",
|
||||
" </thead>\n",
|
||||
" <tbody>\n",
|
||||
" <tr>\n",
|
||||
" <th>0</th>\n",
|
||||
" <td>[POLYGON ((-17.62168766659423 -98.369266220295...</td>\n",
|
||||
" <td>-66.0</td>\n",
|
||||
" <td>-54.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>1</th>\n",
|
||||
" <td>[POLYGON ((-97.82715137072381 -82.221167700698...</td>\n",
|
||||
" <td>-38.0</td>\n",
|
||||
" <td>65.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>2</th>\n",
|
||||
" <td>[POLYGON ((-46.23706006792075 -76.756994820638...</td>\n",
|
||||
" <td>73.0</td>\n",
|
||||
" <td>49.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>3</th>\n",
|
||||
" <td>[POLYGON ((-7.4210414351932155 -83.11109606339...</td>\n",
|
||||
" <td>31.0</td>\n",
|
||||
" <td>56.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>4</th>\n",
|
||||
" <td>[POLYGON ((-77.97638439917915 -70.239097296919...</td>\n",
|
||||
" <td>47.0</td>\n",
|
||||
" <td>54.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>...</th>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>995</th>\n",
|
||||
" <td>[POLYGON ((-58.363834699771374 -78.10250502922...</td>\n",
|
||||
" <td>53.0</td>\n",
|
||||
" <td>52.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>996</th>\n",
|
||||
" <td>[POLYGON ((-45.38105849246964 -86.568664678920...</td>\n",
|
||||
" <td>-66.0</td>\n",
|
||||
" <td>73.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>997</th>\n",
|
||||
" <td>[POLYGON ((-82.90222667221566 -92.864813148784...</td>\n",
|
||||
" <td>41.0</td>\n",
|
||||
" <td>51.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>998</th>\n",
|
||||
" <td>[POLYGON ((-37.1039416590347 -88.1790371955828...</td>\n",
|
||||
" <td>-45.0</td>\n",
|
||||
" <td>64.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>999</th>\n",
|
||||
" <td>[POLYGON ((-119.59353826736813 -30.54685916387...</td>\n",
|
||||
" <td>74.0</td>\n",
|
||||
" <td>-25.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" </tbody>\n",
|
||||
"</table>\n",
|
||||
"<p>1000 rows × 5 columns</p>\n",
|
||||
"</div>"
|
||||
],
|
||||
"text/plain": [
|
||||
" obstacles destination_x \\\n",
|
||||
"seed \n",
|
||||
"0 [POLYGON ((-17.62168766659423 -98.369266220295... -66.0 \n",
|
||||
"1 [POLYGON ((-97.82715137072381 -82.221167700698... -38.0 \n",
|
||||
"2 [POLYGON ((-46.23706006792075 -76.756994820638... 73.0 \n",
|
||||
"3 [POLYGON ((-7.4210414351932155 -83.11109606339... 31.0 \n",
|
||||
"4 [POLYGON ((-77.97638439917915 -70.239097296919... 47.0 \n",
|
||||
"... ... ... \n",
|
||||
"995 [POLYGON ((-58.363834699771374 -78.10250502922... 53.0 \n",
|
||||
"996 [POLYGON ((-45.38105849246964 -86.568664678920... -66.0 \n",
|
||||
"997 [POLYGON ((-82.90222667221566 -92.864813148784... 41.0 \n",
|
||||
"998 [POLYGON ((-37.1039416590347 -88.1790371955828... -45.0 \n",
|
||||
"999 [POLYGON ((-119.59353826736813 -30.54685916387... 74.0 \n",
|
||||
"\n",
|
||||
" destination_y image route \n",
|
||||
"seed \n",
|
||||
"0 -54.0 NaN NaN \n",
|
||||
"1 65.0 NaN NaN \n",
|
||||
"2 49.0 NaN NaN \n",
|
||||
"3 56.0 NaN NaN \n",
|
||||
"4 54.0 NaN NaN \n",
|
||||
"... ... ... ... \n",
|
||||
"995 52.0 NaN NaN \n",
|
||||
"996 73.0 NaN NaN \n",
|
||||
"997 51.0 NaN NaN \n",
|
||||
"998 64.0 NaN NaN \n",
|
||||
"999 -25.0 NaN NaN \n",
|
||||
"\n",
|
||||
"[1000 rows x 5 columns]"
|
||||
]
|
||||
},
|
||||
"execution_count": 85,
|
||||
"execution_count": 11,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -537,24 +705,180 @@
|
||||
"df = pd.DataFrame([generate_all_to_series(i) for i in range(1000)]).set_index(\"seed\")\n",
|
||||
"df.to_pickle(\"test.pickle\")\n",
|
||||
"df"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 86,
|
||||
"execution_count": 12,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": " obstacles destination_x \\\nseed \n0 [POLYGON ((-17.62168766659423 -98.369266220295... -66.0 \n1 [POLYGON ((-97.82715137072381 -82.221167700698... -38.0 \n2 [POLYGON ((-46.23706006792075 -76.756994820638... 73.0 \n3 [POLYGON ((-7.4210414351932155 -83.11109606339... 31.0 \n4 [POLYGON ((-77.97638439917915 -70.239097296919... 47.0 \n... ... ... \n995 [POLYGON ((-58.363834699771374 -78.10250502922... 53.0 \n996 [POLYGON ((-45.38105849246964 -86.568664678920... -66.0 \n997 [POLYGON ((-82.90222667221566 -92.864813148784... 41.0 \n998 [POLYGON ((-37.1039416590347 -88.1790371955828... -45.0 \n999 [POLYGON ((-119.59353826736813 -30.54685916387... 74.0 \n\n destination_y image route \nseed \n0 -54.0 <NA> None \n1 65.0 <NA> None \n2 49.0 <NA> None \n3 56.0 <NA> None \n4 54.0 <NA> None \n... ... ... ... \n995 52.0 <NA> None \n996 73.0 <NA> None \n997 51.0 <NA> None \n998 64.0 <NA> None \n999 -25.0 <NA> None \n\n[1000 rows x 5 columns]",
|
||||
"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>obstacles</th>\n <th>destination_x</th>\n <th>destination_y</th>\n <th>image</th>\n <th>route</th>\n </tr>\n <tr>\n <th>seed</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>[POLYGON ((-17.62168766659423 -98.369266220295...</td>\n <td>-66.0</td>\n <td>-54.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>1</th>\n <td>[POLYGON ((-97.82715137072381 -82.221167700698...</td>\n <td>-38.0</td>\n <td>65.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>2</th>\n <td>[POLYGON ((-46.23706006792075 -76.756994820638...</td>\n <td>73.0</td>\n <td>49.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>3</th>\n <td>[POLYGON ((-7.4210414351932155 -83.11109606339...</td>\n <td>31.0</td>\n <td>56.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>4</th>\n <td>[POLYGON ((-77.97638439917915 -70.239097296919...</td>\n <td>47.0</td>\n <td>54.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>995</th>\n <td>[POLYGON ((-58.363834699771374 -78.10250502922...</td>\n <td>53.0</td>\n <td>52.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>996</th>\n <td>[POLYGON ((-45.38105849246964 -86.568664678920...</td>\n <td>-66.0</td>\n <td>73.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>997</th>\n <td>[POLYGON ((-82.90222667221566 -92.864813148784...</td>\n <td>41.0</td>\n <td>51.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>998</th>\n <td>[POLYGON ((-37.1039416590347 -88.1790371955828...</td>\n <td>-45.0</td>\n <td>64.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n <tr>\n <th>999</th>\n <td>[POLYGON ((-119.59353826736813 -30.54685916387...</td>\n <td>74.0</td>\n <td>-25.0</td>\n <td><NA></td>\n <td>None</td>\n </tr>\n </tbody>\n</table>\n<p>1000 rows × 5 columns</p>\n</div>"
|
||||
"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>obstacles</th>\n",
|
||||
" <th>destination_x</th>\n",
|
||||
" <th>destination_y</th>\n",
|
||||
" <th>image</th>\n",
|
||||
" <th>route</th>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>seed</th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" <th></th>\n",
|
||||
" </tr>\n",
|
||||
" </thead>\n",
|
||||
" <tbody>\n",
|
||||
" <tr>\n",
|
||||
" <th>0</th>\n",
|
||||
" <td>[POLYGON ((-17.62168766659423 -98.369266220295...</td>\n",
|
||||
" <td>-66.0</td>\n",
|
||||
" <td>-54.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>1</th>\n",
|
||||
" <td>[POLYGON ((-97.82715137072381 -82.221167700698...</td>\n",
|
||||
" <td>-38.0</td>\n",
|
||||
" <td>65.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>2</th>\n",
|
||||
" <td>[POLYGON ((-46.23706006792075 -76.756994820638...</td>\n",
|
||||
" <td>73.0</td>\n",
|
||||
" <td>49.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>3</th>\n",
|
||||
" <td>[POLYGON ((-7.4210414351932155 -83.11109606339...</td>\n",
|
||||
" <td>31.0</td>\n",
|
||||
" <td>56.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>4</th>\n",
|
||||
" <td>[POLYGON ((-77.97638439917915 -70.239097296919...</td>\n",
|
||||
" <td>47.0</td>\n",
|
||||
" <td>54.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>...</th>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>995</th>\n",
|
||||
" <td>[POLYGON ((-58.363834699771374 -78.10250502922...</td>\n",
|
||||
" <td>53.0</td>\n",
|
||||
" <td>52.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>996</th>\n",
|
||||
" <td>[POLYGON ((-45.38105849246964 -86.568664678920...</td>\n",
|
||||
" <td>-66.0</td>\n",
|
||||
" <td>73.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>997</th>\n",
|
||||
" <td>[POLYGON ((-82.90222667221566 -92.864813148784...</td>\n",
|
||||
" <td>41.0</td>\n",
|
||||
" <td>51.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>998</th>\n",
|
||||
" <td>[POLYGON ((-37.1039416590347 -88.1790371955828...</td>\n",
|
||||
" <td>-45.0</td>\n",
|
||||
" <td>64.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>999</th>\n",
|
||||
" <td>[POLYGON ((-119.59353826736813 -30.54685916387...</td>\n",
|
||||
" <td>74.0</td>\n",
|
||||
" <td>-25.0</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" <td>NaN</td>\n",
|
||||
" </tr>\n",
|
||||
" </tbody>\n",
|
||||
"</table>\n",
|
||||
"<p>1000 rows × 5 columns</p>\n",
|
||||
"</div>"
|
||||
],
|
||||
"text/plain": [
|
||||
" obstacles destination_x \\\n",
|
||||
"seed \n",
|
||||
"0 [POLYGON ((-17.62168766659423 -98.369266220295... -66.0 \n",
|
||||
"1 [POLYGON ((-97.82715137072381 -82.221167700698... -38.0 \n",
|
||||
"2 [POLYGON ((-46.23706006792075 -76.756994820638... 73.0 \n",
|
||||
"3 [POLYGON ((-7.4210414351932155 -83.11109606339... 31.0 \n",
|
||||
"4 [POLYGON ((-77.97638439917915 -70.239097296919... 47.0 \n",
|
||||
"... ... ... \n",
|
||||
"995 [POLYGON ((-58.363834699771374 -78.10250502922... 53.0 \n",
|
||||
"996 [POLYGON ((-45.38105849246964 -86.568664678920... -66.0 \n",
|
||||
"997 [POLYGON ((-82.90222667221566 -92.864813148784... 41.0 \n",
|
||||
"998 [POLYGON ((-37.1039416590347 -88.1790371955828... -45.0 \n",
|
||||
"999 [POLYGON ((-119.59353826736813 -30.54685916387... 74.0 \n",
|
||||
"\n",
|
||||
" destination_y image route \n",
|
||||
"seed \n",
|
||||
"0 -54.0 NaN NaN \n",
|
||||
"1 65.0 NaN NaN \n",
|
||||
"2 49.0 NaN NaN \n",
|
||||
"3 56.0 NaN NaN \n",
|
||||
"4 54.0 NaN NaN \n",
|
||||
"... ... ... ... \n",
|
||||
"995 52.0 NaN NaN \n",
|
||||
"996 73.0 NaN NaN \n",
|
||||
"997 51.0 NaN NaN \n",
|
||||
"998 64.0 NaN NaN \n",
|
||||
"999 -25.0 NaN NaN \n",
|
||||
"\n",
|
||||
"[1000 rows x 5 columns]"
|
||||
]
|
||||
},
|
||||
"execution_count": 86,
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -562,71 +886,62 @@
|
||||
"source": [
|
||||
"df2 = pd.read_pickle(\"test.pickle\")\n",
|
||||
"df2"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"https://programtalk.com/python-examples/PIL.ImageDraw.Draw.polygon/)\n",
|
||||
"https://stackoverflow.com/questions/3654289/scipy-create-2d-polygon-mask"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"Ich würde auch zu 1. tendieren, stimme Ihnen aber zu, dass das Thema sehr umfangreich ist. Könnte man sich nicht einen Teilbereich herauspicken? Ich verstehe nicht viel vom Segeln, daher lassen Sie mich kurz zusammenfassen, was Sie vorhaben: - Sie generieren Trainingsdaten mit dem existierenden aber langsamen GD Algorithmus. Ich nehme an, es handelt sich um lokale Routen in einem relativ kleinen Kartenausschnitt. Lässt es die Laufzeit zu, dass Sie eine große Menge an Routen berechnen. - Sie haben dann eine Karte und als Ausgabe eine Liste der Wendepunkte - Warum wollen Sie daraus eine Heatmap berechnen? Diesen Schritt habe ich noch nicht verstanden - Wenn Sie aus einer Karte eine Heatmap trainieren wollen und dafür genügend Beispiele haben, könnnten GANs hilfreich sein: https://arxiv.org/abs/1611.07004 Ich würde Ihnen raten, das Problem möglichst so zu reduzieren, dass es im Rahmen des Moduls noch handhabbar bleibt. Alles Weitere kann man sich auch für spätere Arbeiten aufbewahren. Das 2. Thema ist auch ok. Aber vielleicht nicht ganz so spannend. Ich überlasse Ihnen die Entscheidung. Freundliche Grüße Heiner Giefers"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"Ich würde auch zu 1. tendieren, stimme Ihnen aber zu, dass das Thema sehr umfangreich ist. Könnte man sich nicht einen Teilbereich herauspicken? Ich verstehe nicht viel vom Segeln, daher lassen Sie mich kurz zusammenfassen, was Sie vorhaben: - Sie generieren Trainingsdaten mit dem existierenden aber langsamen GD Algorithmus. Ich nehme an, es handelt sich um lokale Routen in einem relativ kleinen Kartenausschnitt. Lässt es die Laufzeit zu, dass Sie eine große Menge an Routen berechnen. - Sie haben dann eine Karte und als Ausgabe eine Liste der Wendepunkte - Warum wollen Sie daraus eine Heatmap berechnen? Diesen Schritt habe ich noch nicht verstanden - Wenn Sie aus einer Karte eine Heatmap trainieren wollen und dafür genügend Beispiele haben, könnnten GANs hilfreich sein: https://arxiv.org/abs/1611.07004 Ich würde Ihnen raten, das Problem möglichst so zu reduzieren, dass es im Rahmen des Moduls noch handhabbar bleibt. Alles Weitere kann man sich auch für spätere Arbeiten aufbewahren. Das 2. Thema ist auch ok. Aber vielleicht nicht ganz so spannend. Ich überlasse Ihnen die Entscheidung. Freundliche Grüße Heiner Giefers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"outputs": [],
|
||||
"source": [],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
}
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 2
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.6"
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
"nbformat_minor": 1
|
||||
}
|
||||
Reference in new issue
Block a user