From 0aa2bf275f14a0e71e21c2d2e69b1cc72a713053 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Mon, 24 Oct 2016 12:43:07 -0300 Subject: [PATCH 1/2] Rename --- examples/{test_lines.ipynb => DateLineExample.ipynb} | 0 examples/{test_mplleaflet.ipynb => Folium_and_mplleaflet.ipynb} | 0 ...mage_overlay_geodedetic.ipynb => GeodedeticImageOverlay.ipynb} | 0 ...age_overlay_gulf_stream.ipynb => GulfStreamImageOverlay.ipynb} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename examples/{test_lines.ipynb => DateLineExample.ipynb} (100%) rename examples/{test_mplleaflet.ipynb => Folium_and_mplleaflet.ipynb} (100%) rename examples/{test_image_overlay_geodedetic.ipynb => GeodedeticImageOverlay.ipynb} (100%) rename examples/{test_image_overlay_gulf_stream.ipynb => GulfStreamImageOverlay.ipynb} (100%) diff --git a/examples/test_lines.ipynb b/examples/DateLineExample.ipynb similarity index 100% rename from examples/test_lines.ipynb rename to examples/DateLineExample.ipynb diff --git a/examples/test_mplleaflet.ipynb b/examples/Folium_and_mplleaflet.ipynb similarity index 100% rename from examples/test_mplleaflet.ipynb rename to examples/Folium_and_mplleaflet.ipynb diff --git a/examples/test_image_overlay_geodedetic.ipynb b/examples/GeodedeticImageOverlay.ipynb similarity index 100% rename from examples/test_image_overlay_geodedetic.ipynb rename to examples/GeodedeticImageOverlay.ipynb diff --git a/examples/test_image_overlay_gulf_stream.ipynb b/examples/GulfStreamImageOverlay.ipynb similarity index 100% rename from examples/test_image_overlay_gulf_stream.ipynb rename to examples/GulfStreamImageOverlay.ipynb From 6c00ae0462d52e92d27eabaeaf5d35a1eae82f27 Mon Sep 17 00:00:00 2001 From: ocefpaf Date: Mon, 24 Oct 2016 13:09:38 -0300 Subject: [PATCH 2/2] Fix lints and run new examples --- examples/DateLineExample.ipynb | 27 +- examples/Folium_and_mplleaflet.ipynb | 151 +- examples/GeodedeticImageOverlay.ipynb | 55 +- examples/GulfStreamImageOverlay.ipynb | 72 +- examples/data/2014_08_05_farol.gpx | 4125 +++++++++++++++++++++++++ requirements-dev.txt | 3 + 6 files changed, 4303 insertions(+), 130 deletions(-) create mode 100644 examples/data/2014_08_05_farol.gpx diff --git a/examples/DateLineExample.ipynb b/examples/DateLineExample.ipynb index 89eca2fc21..d8fbaa31d5 100644 --- a/examples/DateLineExample.ipynb +++ b/examples/DateLineExample.ipynb @@ -11,15 +11,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/folium/__init__.py\n", - "0.2.0\n" + "0.3.0.dev\n" ] } ], "source": [ + "import os\n", "import folium\n", "\n", - "print(folium.__file__)\n", "print(folium.__version__)" ] }, @@ -72,10 +71,10 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -87,7 +86,7 @@ "lon = lat = 0\n", "zoom_start = 1\n", "\n", - "mapa = folium.Map(location=[lat, lon], zoom_start=zoom_start)\n", + "m = folium.Map(location=[lat, lon], zoom_start=zoom_start)\n", "\n", "kw = dict(opacity=1.0, weight=4)\n", "\n", @@ -104,29 +103,31 @@ "l3 = folium.PolyLine(locations=[(12, -179), (12, 190)], color='orange', **kw)\n", "\n", "for l in [l0, l1, l2, l3]:\n", - " mapa.add_children(l)\n", + " m.add_child(l)\n", "\n", - "mapa" + "m.save(os.path.join('results', 'DateLineExample.html'))\n", + "\n", + "m" ] } ], "metadata": { "kernelspec": { - "display_name": "Iris (Python 2)", + "display_name": "Python 3", "language": "python", - "name": "iris_python2" + "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.8" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/examples/Folium_and_mplleaflet.ipynb b/examples/Folium_and_mplleaflet.ipynb index af3d456200..6ecbaa8c1c 100644 --- a/examples/Folium_and_mplleaflet.ipynb +++ b/examples/Folium_and_mplleaflet.ipynb @@ -11,15 +11,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/folium/__init__.py\n", - "0.2.0\n" + "0.3.0.dev\n" ] } ], "source": [ + "import os\n", "import folium\n", "\n", - "print(folium.__file__)\n", "print(folium.__version__)" ] }, @@ -42,15 +41,17 @@ ], "source": [ "import gpxpy\n", - "gpx = gpxpy.parse(open('/home/filipe/Dropbox/GPX/2014_08_05_farol.gpx'))\n", "\n", - "print(\"{} track(s)\".format(len(gpx.tracks)))\n", + "fname = os.path.join('data', '2014_08_05_farol.gpx')\n", + "gpx = gpxpy.parse(open(fname))\n", + "\n", + "print('{} track(s)'.format(len(gpx.tracks)))\n", "track = gpx.tracks[0]\n", "\n", - "print(\"{} segment(s)\".format(len(track.segments)))\n", + "print('{} segment(s)'.format(len(track.segments)))\n", "segment = track.segments[0]\n", "\n", - "print(\"{} point(s)\".format(len(segment.points)))" + "print('{} point(s)'.format(len(segment.points)))" ] }, { @@ -59,6 +60,28 @@ "metadata": { "collapsed": false }, + "outputs": [], + "source": [ + "data = []\n", + "segment_length = segment.length_3d()\n", + "for point_idx, point in enumerate(segment.points):\n", + " data.append(\n", + " [\n", + " point.longitude,\n", + " point.latitude,\n", + " point.elevation,\n", + " point.time,\n", + " segment.get_speed(point_idx)\n", + " ]\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, "outputs": [ { "data": { @@ -129,18 +152,12 @@ "4 -38.502515 -13.005680 11.4 2014-08-05 17:53:00.720 3.939967" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "data = []\n", - "segment_length = segment.length_3d()\n", - "for point_idx, point in enumerate(segment.points):\n", - " data.append([point.longitude, point.latitude,\n", - " point.elevation, point.time, segment.get_speed(point_idx)])\n", - " \n", "from pandas import DataFrame\n", "\n", "columns = ['Longitude', 'Latitude', 'Altitude', 'Time', 'Speed']\n", @@ -150,15 +167,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import seawater as sw\n", - "from oceans.ff_tools import smoo1\n", "\n", "_, angles = sw.dist(df['Latitude'], df['Longitude'])\n", "angles = np.r_[0, np.deg2rad(angles)]\n", @@ -166,13 +182,13 @@ "# Normalize the speed to use as the length of the arrows.\n", "r = df['Speed'] / df['Speed'].max()\n", "kw = dict(window_len=31, window='hanning')\n", - "df['u'] = smoo1(r * np.cos(angles), **kw)\n", - "df['v'] = smoo1(r * np.sin(angles), **kw)" + "df['u'] = r * np.cos(angles)\n", + "df['v'] = r * np.sin(angles)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -185,8 +201,13 @@ "df = df.dropna()\n", "\n", "# This style was lost below.\n", - "ax.plot(df['Longitude'], df['Latitude'],\n", - " color='darkorange', linewidth=5, alpha=0.5)\n", + "ax.plot(\n", + " df['Longitude'],\n", + " df['Latitude'],\n", + " color='darkorange',\n", + " linewidth=5,\n", + " alpha=0.5\n", + ")\n", "\n", "# This is preserved in the SVG icon.\n", "sub = 10\n", @@ -201,48 +222,57 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/filipe/miniconda3/envs/FOLIUM/lib/python3.5/site-packages/ipykernel/__main__.py:15: FutureWarning: Method `add_children` is deprecated. Please use `add_child` instead.\n" + ] + }, { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "import folium\n", - "\n", - "from glob import glob\n", "import folium\n", "\n", "lon, lat = -38.51386097, -13.00868051\n", "zoom_start = 14\n", "\n", - "mapa = folium.Map(location=[lat, lon], tiles=\"Cartodb Positron\",\n", - " zoom_start=zoom_start)\n", + "m = folium.Map(\n", + " location=[lat, lon],\n", + " tiles='Cartodb Positron',\n", + " zoom_start=zoom_start\n", + ")\n", "\n", "line_string = gj['features'][0] # The first geometry is a lineString.\n", "gjson = folium.features.GeoJson(line_string)\n", "\n", - "mapa.add_children(gjson)\n", - "mapa" + "m.add_children(gjson)\n", + "m.save(os.path.join('results', 'Folium_and_mplleaflet_0.html'))\n", + "\n", + "m" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -250,10 +280,14 @@ { "data": { "text/plain": [ - "{'color': '#FF8C00', 'opacity': 0.5, 'style': {}, 'weight': 5.0}" + "{'color': '#FF8C00',\n", + " 'highlight': {},\n", + " 'opacity': 0.5,\n", + " 'style': {},\n", + " 'weight': 5.0}" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -264,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -278,7 +312,7 @@ "" ] }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -286,12 +320,13 @@ "source": [ "from IPython.display import HTML\n", "\n", - "HTML('This should be darkorange!'.format(line_string['properties']['color']))" + "msg = 'This should be darkorange!'.format\n", + "HTML(msg(line_string['properties']['color']))" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -299,21 +334,23 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "mapa = folium.Map(location=[lat, lon], tiles=\"Cartodb Positron\",\n", - " zoom_start=zoom_start)\n", - "\n", + "m = folium.Map(\n", + " location=[lat, lon],\n", + " tiles='Cartodb Positron',\n", + " zoom_start=zoom_start\n", + ")\n", "\n", "icon_size = (14, 14)\n", "\n", @@ -323,40 +360,42 @@ " elif feature['geometry']['type'] == 'Point':\n", " lon, lat = feature['geometry']['coordinates']\n", " html = feature['properties']['html']\n", - " \n", + "\n", " icon_anchor = (feature['properties']['anchor_x'],\n", " feature['properties']['anchor_y'])\n", - " \n", + "\n", " icon = folium.features.DivIcon(html=html,\n", " icon_size=(14, 14),\n", " icon_anchor=icon_anchor)\n", " marker = folium.map.Marker([lat, lon], icon=icon)\n", - " mapa.add_children(marker)\n", + " m.add_child(marker)\n", " else:\n", - " msg = \"Unexpected geometry {}\".format\n", + " msg = 'Unexpected geometry {}'.format\n", " raise ValueError(msg(feature['geometry']))\n", "\n", - "mapa" + "m.save(os.path.join('results', 'Folium_and_mplleaflet_1.html'))\n", + "\n", + "m" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "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.8" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/examples/GeodedeticImageOverlay.ipynb b/examples/GeodedeticImageOverlay.ipynb index 78eb155332..294365c3fd 100644 --- a/examples/GeodedeticImageOverlay.ipynb +++ b/examples/GeodedeticImageOverlay.ipynb @@ -11,15 +11,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/folium/__init__.py\n", - "0.2.0\n" + "0.3.0.dev\n" ] } ], "source": [ + "import os\n", "import folium\n", "\n", - "print(folium.__file__)\n", "print(folium.__version__)" ] }, @@ -88,10 +87,10 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -102,13 +101,15 @@ "source": [ "from folium import plugins\n", "\n", - "mapa = folium.Map(location=[lat.mean(), lon.mean()], zoom_start=1)\n", + "m = folium.Map(location=[lat.mean(), lon.mean()], zoom_start=1)\n", "\n", "plugins.ImageOverlay(colored_data,\n", " [[lat.min(), lon.min()], [lat.max(), lon.max()]],\n", - " opacity=0.25).add_to(mapa)\n", + " opacity=0.25).add_to(m)\n", "\n", - "mapa" + "m.save(os.path.join('results', 'GeodedeticImageOverlay_0.html'))\n", + "\n", + "m" ] }, { @@ -128,10 +129,10 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -140,14 +141,16 @@ } ], "source": [ - "mapa = folium.Map(location=[lat.mean(), lon.mean()], zoom_start=1)\n", + "m = folium.Map(location=[lat.mean(), lon.mean()], zoom_start=1)\n", "\n", "plugins.ImageOverlay(colored_data,\n", - " [[lat.min(), lon.min()], [lat.max(), lon.max()]], # If I change my lat to +-85.051129 this works.\n", + " [[lat.min(), lon.min()], [lat.max(), lon.max()]],\n", " mercator_project=True,\n", - " opacity=0.25).add_to(mapa)\n", + " opacity=0.25).add_to(m)\n", "\n", - "mapa" + "m.save(os.path.join('results', 'GeodedeticImageOverlay_1.html'))\n", + "\n", + "m" ] }, { @@ -167,10 +170,10 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -193,13 +196,15 @@ " mask_extrapolated=False)\n", "\n", "\n", - "mapa = folium.Map(location=[lat.mean(), lon.mean()], zoom_start=1)\n", + "m = folium.Map(location=[lat.mean(), lon.mean()], zoom_start=1)\n", "\n", "plugins.ImageOverlay(new_data[0],\n", " [[lat.min(), lon.min()], [lat.max(), lon.max()]],\n", - " opacity=0.25).add_to(mapa)\n", + " opacity=0.25).add_to(m)\n", + "\n", + "m.save(os.path.join('results', 'GeodedeticImageOverlay_2.html'))\n", "\n", - "mapa" + "m" ] }, { @@ -237,7 +242,7 @@ " " ], "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -254,21 +259,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Iris (Python 2)", + "display_name": "Python 3", "language": "python", - "name": "iris_python2" + "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.8" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/examples/GulfStreamImageOverlay.ipynb b/examples/GulfStreamImageOverlay.ipynb index 297adcfe44..ddd361b4ac 100644 --- a/examples/GulfStreamImageOverlay.ipynb +++ b/examples/GulfStreamImageOverlay.ipynb @@ -11,15 +11,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/folium/__init__.py\n", - "0.2.0\n" + "0.3.0.dev\n" ] } ], "source": [ + "import os\n", "import folium\n", "\n", - "print(folium.__file__)\n", "print(folium.__version__)" ] }, @@ -27,19 +26,19 @@ "cell_type": "code", "execution_count": 2, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "import cartopy.crs as ccrs\n", "import matplotlib.pyplot as plt\n", "import cartopy.feature as cfeature\n", - "from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER\n", "\n", "LAND = cfeature.NaturalEarthFeature('physical', 'land', '50m',\n", " edgecolor='face',\n", " facecolor=cfeature.COLORS['land'])\n", "\n", + "\n", "def make_map(bbox, projection=ccrs.Mercator()):\n", " fig, ax = plt.subplots(figsize=(8, 6),\n", " subplot_kw=dict(projection=projection))\n", @@ -55,21 +54,10 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/filipe/.virtualenvs/iris/lib/python2.7/site-packages/matplotlib/artist.py:221: MatplotlibDeprecationWarning: This has been deprecated in mpl 1.5, please use the\n", - "axes property. A removal date has not been set.\n", - " warnings.warn(_get_axes_msg, mplDeprecation, stacklevel=1)\n" - ] - } - ], + "outputs": [], "source": [ "import numpy.ma as ma\n", "from scipy.io import loadmat\n", - "from oceans.colormaps import cm\n", "\n", "merc = loadmat('./data/mercator_temperature.mat', squeeze_me=True)\n", "\n", @@ -80,7 +68,7 @@ "data = ma.masked_invalid(merc['temp'][level, ...])\n", "\n", "fig, ax = make_map(bbox=bbox)\n", - "cs = ax.pcolormesh(x, y, data, cmap=cm.avhrr, transform=ccrs.PlateCarree())\n", + "cs = ax.pcolormesh(x, y, data, transform=ccrs.PlateCarree())\n", "fig.savefig('GS.png', transparent=True)" ] }, @@ -119,10 +107,10 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -134,13 +122,16 @@ "from folium import plugins\n", "\n", "\n", - "mapa = folium.Map(location=[y.mean(), x.mean()], zoom_start=5)\n", + "m = folium.Map(location=[y.mean(), x.mean()], zoom_start=5)\n", "\n", "plugins.ImageOverlay(img,\n", " [[y.min(), x.min()], [y.max(), x.max()]],\n", - " opacity=0.5).add_to(mapa)\n", + " opacity=0.5).add_to(m)\n", + "\n", + "\n", + "m.save(os.path.join('results', 'GulfStreamImageOverlay_0.html'))\n", "\n", - "mapa" + "m" ] }, { @@ -156,10 +147,17 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/filipe/miniconda3/envs/FOLIUM/lib/python3.5/site-packages/numpy/ma/core.py:852: RuntimeWarning: invalid value encountered in greater_equal\n", + " return umath.absolute(a) * self.tolerance >= umath.absolute(b)\n" + ] + } + ], "source": [ - "import matplotlib.pyplot as plt\n", - "\n", "def colorize(array, cmap='rainbow'):\n", " normed_data = (array - array.min()) / (array.max() - array.min())\n", " cm = plt.cm.get_cmap(cmap)\n", @@ -178,10 +176,10 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -190,33 +188,35 @@ } ], "source": [ - "mapa = folium.Map(location=[y.mean(), x.mean()], zoom_start=5)\n", + "m = folium.Map(location=[y.mean(), x.mean()], zoom_start=5)\n", "\n", "plugins.ImageOverlay(np.flipud(colored_data),\n", " [[y.min(), x.min()], [y.max(), x.max()]],\n", - " opacity=0.5).add_to(mapa)\n", + " opacity=0.5).add_to(m)\n", + "\n", + "m.save(os.path.join('results', 'GulfStreamImageOverlay_1.html'))\n", "\n", - "mapa" + "m" ] } ], "metadata": { "kernelspec": { - "display_name": "Iris (Python 2)", + "display_name": "Python 3", "language": "python", - "name": "iris_python2" + "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.8" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/examples/data/2014_08_05_farol.gpx b/examples/data/2014_08_05_farol.gpx new file mode 100644 index 0000000000..2938426bb6 --- /dev/null +++ b/examples/data/2014_08_05_farol.gpx @@ -0,0 +1,4125 @@ + + + + Running 5/08/2014/17:52:49.33 + 2014-08-05-farol + + Filipe Fernandes + + + Sports Tracker + + + + + + 10.9 + + + + 11.8 + + + + 11.7 + + + + 11.6 + + + + 11.4 + + + + 11.2 + + + + 11.1 + + + + 11 + + + + 10.8 + + + + 10.6 + + + + 10.5 + + + + 10.5 + + + + 10.6 + + + + 10.8 + + + + 10.7 + + + + 10.3 + + + + 10.2 + + + + 10 + + + + 10 + + + + 10.1 + + + + 10.1 + + + + 10.3 + + + + 10.2 + + + + 10.3 + + + + 10.2 + + + + 10.1 + + + + 9.9 + + + + 9.9 + + + + 9.9 + + + + 9.9 + + + + 9.9 + + + + 10 + + + + 10.1 + + + + 10.2 + + + + 10.2 + + + + 10.2 + + + + 10.2 + + + + 9.8 + + + + 9.6 + + + + 9.6 + + + + 9.7 + + + + 9.9 + + + + 10.1 + + + + 10.3 + + + + 10.6 + + + + 10.8 + + + + 11.2 + + + + 11.7 + + + + 11.9 + + + + 12.2 + + + + 12.6 + + + + 12.9 + + + + 13.1 + + + + 13.2 + + + + 13.3 + + + + 13.2 + + + + 13.2 + + + + 13.4 + + + + 13.4 + + + + 13.5 + + + + 13.7 + + + + 13.9 + + + + 14.2 + + + + 14.3 + + + + 14.4 + + + + 14.6 + + + + 14.6 + + + + 14.8 + + + + 14.9 + + + + 14.7 + + + + 14.1 + + + + 13.5 + + + + 12.7 + + + + 12.1 + + + + 11.5 + + + + 10.8 + + + + 10.1 + + + + 9.2 + + + + 8.1 + + + + 7 + + + + 6 + + + + 5 + + + + 4 + + + + 3.7 + + + + 3.6 + + + + 3.6 + + + + 3.5 + + + + 3.7 + + + + 3.6 + + + + 3.5 + + + + 3.2 + + + + 2.9 + + + + 2.5 + + + + 1.9 + + + + 1.6 + + + + 1.2 + + + + 0.6 + + + + 0.5 + + + + 0.2 + + + + 0 + + + + -0.2 + + + + -0.7 + + + + -1.1 + + + + -1.7 + + + + -2.1 + + + + -1.8 + + + + -1.5 + + + + -1.2 + + + + -0.9 + + + + -0.9 + + + + -0.9 + + + + -0.9 + + + + -0.8 + + + + -0.8 + + + + -0.8 + + + + -0.8 + + + + -0.8 + + + + -0.5 + + + + -0.3 + + + + 0.1 + + + + 0.5 + + + + 1.2 + + + + 1.6 + + + + 1.9 + + + + 3.3 + + + + 3.4 + + + + 3.2 + + + + 3.2 + + + + 3.2 + + + + 3.2 + + + + 3.2 + + + + 3.6 + + + + 3.8 + + + + 4 + + + + 4 + + + + 3.9 + + + + 3.7 + + + + 3.4 + + + + 3.2 + + + + 3 + + + + 2.7 + + + + 2.6 + + + + 2.7 + + + + 2.8 + + + + 2.7 + + + + 2.7 + + + + 2.5 + + + + 2.3 + + + + 2.1 + + + + 2 + + + + 2 + + + + 1.8 + + + + 1.7 + + + + 1.7 + + + + 2 + + + + 2.3 + + + + 2.6 + + + + 2.6 + + + + 2.6 + + + + 2.4 + + + + 2.4 + + + + 2.4 + + + + 2.4 + + + + 2.5 + + + + 2.3 + + + + 2.3 + + + + 2.3 + + + + 2.1 + + + + 1.9 + + + + 1.5 + + + + 1.1 + + + + 0.5 + + + + 0 + + + + -0.5 + + + + -0.9 + + + + -1.3 + + + + -1.6 + + + + -2 + + + + -2.3 + + + + -2.4 + + + + -2.4 + + + + -2.3 + + + + -2.2 + + + + -2.2 + + + + -2.3 + + + + -2.4 + + + + -2.3 + + + + -2.1 + + + + -2.3 + + + + -2.3 + + + + -2.2 + + + + -2.2 + + + + -2.2 + + + + -2.1 + + + + -2.1 + + + + -2 + + + + -1.9 + + + + -1.8 + + + + -1.6 + + + + -1.5 + + + + -1.2 + + + + -1.2 + + + + -1.1 + + + + -1.1 + + + + -1 + + + + -1.2 + + + + -1.3 + + + + -1.3 + + + + -1.2 + + + + -1.3 + + + + -1.4 + + + + -1.3 + + + + -1.3 + + + + -1.1 + + + + -1.2 + + + + -1.4 + + + + -1.7 + + + + -1.8 + + + + -1.9 + + + + -1.8 + + + + -1.6 + + + + -1.4 + + + + -0.9 + + + + -0.6 + + + + -0.2 + + + + 0.2 + + + + 0.6 + + + + 1 + + + + 1.6 + + + + 2.3 + + + + 2.8 + + + + 3.2 + + + + 3.6 + + + + 4 + + + + 4.3 + + + + 4.7 + + + + 4.9 + + + + 5.1 + + + + 5.4 + + + + 5.5 + + + + 5.4 + + + + 5.2 + + + + 5.1 + + + + 5.3 + + + + 5.5 + + + + 5.7 + + + + 6 + + + + 6 + + + + 5.9 + + + + 5.6 + + + + 5.4 + + + + 5 + + + + 4.7 + + + + 4.4 + + + + 4.2 + + + + 4.1 + + + + 4.1 + + + + 4.2 + + + + 4.3 + + + + 4.3 + + + + 4.2 + + + + 4.1 + + + + 4.1 + + + + 4.1 + + + + 4.1 + + + + 4.1 + + + + 4 + + + + 3.9 + + + + 3.7 + + + + 3.8 + + + + 3.9 + + + + 4.1 + + + + 4.2 + + + + 4.4 + + + + 4.4 + + + + 4.4 + + + + 4.5 + + + + 4.8 + + + + 5.3 + + + + 6 + + + + 6.8 + + + + 7.3 + + + + 7.9 + + + + 8.3 + + + + 8.3 + + + + 8.3 + + + + 8.3 + + + + 8.6 + + + + 8.7 + + + + 8.6 + + + + 8.4 + + + + 8.3 + + + + 8.3 + + + + 8.3 + + + + 8.4 + + + + 8.8 + + + + 9.3 + + + + 10.1 + + + + 10.5 + + + + 10.8 + + + + 11 + + + + 11.2 + + + + 11.7 + + + + 11.8 + + + + 11.8 + + + + 12.1 + + + + 12.2 + + + + 12.2 + + + + 12.1 + + + + 12.1 + + + + 12.4 + + + + 12.8 + + + + 13.8 + + + + 14.8 + + + + 15.4 + + + + 15.7 + + + + 15.5 + + + + 15.1 + + + + 14.7 + + + + 14.2 + + + + 14 + + + + 13.6 + + + + 13 + + + + 12.4 + + + + 11.8 + + + + 11.7 + + + + 11.5 + + + + 11.5 + + + + 11.7 + + + + 11.6 + + + + 11.3 + + + + 11.1 + + + + 10.7 + + + + 10.5 + + + + 10.5 + + + + 10.7 + + + + 10.5 + + + + 10.3 + + + + 10 + + + + 9.7 + + + + 9.5 + + + + 9.7 + + + + 10.1 + + + + 11.1 + + + + 12.5 + + + + 14.2 + + + + 15.4 + + + + 16.2 + + + + 17.4 + + + + 18.4 + + + + 19 + + + + 19.7 + + + + 20.5 + + + + 20.9 + + + + 21.3 + + + + 21.6 + + + + 21.6 + + + + 21.2 + + + + 21.1 + + + + 21.7 + + + + 22.5 + + + + 23 + + + + 23.4 + + + + 23.8 + + + + 23.9 + + + + 23.8 + + + + 23.6 + + + + 23.4 + + + + 23.1 + + + + 23.1 + + + + 23 + + + + 23 + + + + 22.9 + + + + 22.8 + + + + 22.5 + + + + 22.1 + + + + 21.8 + + + + 21.4 + + + + 21 + + + + 20.6 + + + + 20.2 + + + + 20 + + + + 19.5 + + + + 19 + + + + 18.6 + + + + 18.4 + + + + 18.4 + + + + 18.1 + + + + 17.9 + + + + 18 + + + + 17.8 + + + + 17.5 + + + + 17.2 + + + + 16.8 + + + + 16.5 + + + + 16.2 + + + + 15.7 + + + + 15.1 + + + + 14.6 + + + + 14.299999999999999 + + + + 13.9 + + + + 13.6 + + + + 13.5 + + + + 13.4 + + + + 13.5 + + + + 13.6 + + + + 13.8 + + + + 13.9 + + + + 13.9 + + + + 13.8 + + + + 13.7 + + + + 13.6 + + + + 13.6 + + + + 13.4 + + + + 13.1 + + + + 12.8 + + + + 12.6 + + + + 12.5 + + + + 12.4 + + + + 12.1 + + + + 12 + + + + 11.8 + + + + 11.8 + + + + 11.8 + + + + 11.6 + + + + 11.6 + + + + 11.4 + + + + 11.5 + + + + 11.7 + + + + 12 + + + + 12.1 + + + + 12.1 + + + + 12.3 + + + + 12.3 + + + + 12.7 + + + + 12.9 + + + + 13.1 + + + + 13.3 + + + + 13.5 + + + + 13.8 + + + + 13.8 + + + + 13.8 + + + + 13.7 + + + + 13.3 + + + + 12.7 + + + + 12.3 + + + + 12 + + + + 11.5 + + + + 11.1 + + + + 10.8 + + + + 10.6 + + + + 10.5 + + + + 10.3 + + + + 10.1 + + + + 9.7 + + + + 9.3 + + + + 8.9 + + + + 8.6 + + + + 8.2 + + + + 7.9 + + + + 7.4 + + + + 6.6 + + + + 5.9 + + + + 5.5 + + + + 5.3 + + + + 5 + + + + 4.7 + + + + 4.4 + + + + 4.2 + + + + 3.8 + + + + 3.4 + + + + 3.1 + + + + 2.8 + + + + 2.8 + + + + 2.8 + + + + 2.7 + + + + 2.6 + + + + 2.3 + + + + 1.8 + + + + 1.4 + + + + 0.9 + + + + 0.5 + + + + 0.1 + + + + -0.1 + + + + -0.4 + + + + -0.5 + + + + -0.6 + + + + -0.7 + + + + -0.8 + + + + -0.7 + + + + -0.6 + + + + -0.6 + + + + -0.6 + + + + -0.4 + + + + -0.2 + + + + 0 + + + + 0.2 + + + + 0.4 + + + + 0.6 + + + + 0.7 + + + + 0.9 + + + + 0.8 + + + + 0.8 + + + + 0.8 + + + + 0.9 + + + + 0.8 + + + + 0.5 + + + + 0.3 + + + + 0.4 + + + + 0.3 + + + + 0.2 + + + + 0.1 + + + + 0 + + + + 0 + + + + 0 + + + + 0.2 + + + + 0.2 + + + + 0.2 + + + + 0.1 + + + + 0 + + + + -0.1 + + + + -0.3 + + + + -0.4 + + + + -0.4 + + + + -0.3 + + + + -0.3 + + + + -0.2 + + + + -0.1 + + + + 0 + + + + 0.3 + + + + 0.5 + + + + 0.7 + + + + 1 + + + + 1.1 + + + + 1.3 + + + + 1.3 + + + + 1.6 + + + + 1.8 + + + + 2 + + + + 2.2 + + + + 2.3 + + + + 2.5 + + + + 2.6 + + + + 2.8 + + + + 2.9 + + + + 3.2 + + + + 3.4 + + + + 3.7 + + + + 4 + + + + 4.3 + + + + 4.2 + + + + 4 + + + + 3.8 + + + + 3.8 + + + + 3.8 + + + + 4.1 + + + + 4.4 + + + + 4.6 + + + + 4.6 + + + + 4.5 + + + + 4.7 + + + + 4.8 + + + + 4.8 + + + + 4.9 + + + + 4.7 + + + + 4.6 + + + + 4.5 + + + + 4.4 + + + + 4.1 + + + + 3.7 + + + + 3.6 + + + + 3.8 + + + + 3.8 + + + + 3.9 + + + + 4 + + + + 4.1 + + + + 4.2 + + + + 4 + + + + 3.7 + + + + 3.3 + + + + 3 + + + + 2.9 + + + + 2.8 + + + + 2.6 + + + + 2.2 + + + + 1.8 + + + + 1.5 + + + + 1.2 + + + + 1.1 + + + + 1 + + + + 0.7 + + + + 0.7 + + + + 0.5 + + + + 0.4 + + + + 0.3 + + + + 0 + + + + -0.1 + + + + -0.2 + + + + 0 + + + + 0 + + + + 0.1 + + + + 0.1 + + + + 0.2 + + + + 0.2 + + + + 0.1 + + + + 0.2 + + + + 0.2 + + + + 0.1 + + + + 0.2 + + + + 0.5 + + + + 0.7 + + + + 0.8 + + + + 0.7 + + + + 0.6 + + + + 0.6 + + + + 0.7 + + + + 0.8 + + + + 0.8 + + + + 1 + + + + 1.3 + + + + 1.6 + + + + 1.9 + + + + 1.7 + + + + 1.6 + + + + 1.7 + + + + 1.9 + + + + 2.4 + + + + 3 + + + + 3.5 + + + + 4 + + + + 4.4 + + + + 4.6 + + + + 4.7 + + + + 4.6 + + + + 4.4 + + + + 4.2 + + + + 4.6 + + + + 4.8 + + + + 5.1 + + + + 5.5 + + + + 6.2 + + + + 7 + + + + 8 + + + + 8.5 + + + + 9 + + + + 9.7 + + + + 10.2 + + + + 10.4 + + + + 10.8 + + + + 11 + + + + 11.1 + + + + 11.1 + + + + 11.5 + + + + 11.5 + + + + 11.3 + + + + 11.5 + + + + 11.3 + + + + 11.1 + + + + 11.2 + + + + 10.9 + + + + 10.9 + + + + 10.8 + + + + 10.9 + + + + 10.9 + + + + 10.8 + + + + 10.8 + + + + 11 + + + + 11.2 + + + + 11.3 + + + + 11.5 + + + + 11.8 + + + + 12.2 + + + + 12.6 + + + + 12.8 + + + + 12.8 + + + + 12.8 + + + + 12.8 + + + + 12.7 + + + + 12.7 + + + + 12.7 + + + + 12.8 + + + + 12.9 + + + + 12.9 + + + + 12.8 + + + + 12.6 + + + + 12.4 + + + + 12.4 + + + + 12.4 + + + + 12.4 + + + + 12.2 + + + + 12.4 + + + + 12.4 + + + + 12.4 + + + + 12.6 + + + + 12.7 + + + + 12.7 + + + + 12.8 + + + + 12.7 + + + + 12.6 + + + + 12.4 + + + + 12.3 + + + + 12 + + + + 11.8 + + + + 12.1 + + + + 13 + + + + 14.4 + + + + 15.5 + + + + 16.1 + + + + 16.9 + + + + 18.1 + + + + 19.1 + + + + 20.3 + + + + 21.1 + + + + 21.6 + + + + 21.8 + + + + 22.2 + + + + 22.5 + + + + 22.4 + + + + 23.2 + + + + 23.4 + + + + 23.3 + + + + 23.4 + + + + 24.2 + + + + 25.4 + + + + 26.7 + + + + 27.6 + + + + 28.7 + + + + 29.7 + + + + 30.6 + + + + 30.9 + + + + 31.2 + + + + 31.1 + + + + 30.9 + + + + 30.9 + + + + 30.9 + + + + 31.2 + + + + 32 + + + + 33.3 + + + + 34.2 + + + + 35.2 + + + + 36 + + + + 36.7 + + + + 37.2 + + + + 37.2 + + + + 36.7 + + + + 35.7 + + + + 34.8 + + + + 34.2 + + + + 33.4 + + + + 32.1 + + + + 31.2 + + + + 29.7 + + + + 28 + + + + 26.2 + + + + 24.6 + + + + 23.4 + + + + 22.4 + + + + 21.4 + + + + 19.8 + + + + 19.1 + + + + 18.8 + + + + 18.4 + + + + 18.1 + + + + 17.7 + + + + 17.2 + + + + 17.3 + + + + 17.8 + + + + 18.6 + + + + 19.4 + + + + 19.5 + + + + 19.3 + + + + 19 + + + + 18.9 + + + + 18.9 + + + + 19.1 + + + + 19.4 + + + + 19.8 + + + + 19.8 + + + + 19.2 + + + + 18.7 + + + + 18.5 + + + + 18.2 + + + + 17.8 + + + + 17.3 + + + + 16.8 + + + + 16.5 + + + + 15.8 + + + + 15.5 + + + + 15.8 + + + + 15.9 + + + + 16.2 + + + + 16.3 + + + + 16.2 + + + + 16.3 + + + + 16.6 + + + + 17 + + + + 17.1 + + + + 17.6 + + + + 18.7 + + + + 20.8 + + + + 22.4 + + + + 24.4 + + + + 26.4 + + + + 28 + + + + 28.8 + + + + 28.6 + + + + 28.2 + + + + 27.6 + + + + 27.1 + + + + 26.1 + + + + 25.4 + + + + 24.7 + + + + 23.4 + + + + 21.9 + + + + 20.7 + + + + 19.4 + + + + 17.7 + + + + 16.5 + + + + 15.8 + + + + 15.2 + + + + 14.6 + + + + 14.3 + + + + 13.8 + + + + 13.1 + + + + 12.6 + + + + 11.9 + + + + 11.2 + + + + 10.4 + + + + 9.8 + + + + 9.2 + + + + 8.7 + + + + 8.1 + + + + 7.7 + + + + 7.2 + + + + 6.8 + + + + 6.5 + + + + 6.1 + + + + 5.8 + + + + 5.4 + + + + 5.2 + + + + 4.7 + + + + 4.4 + + + + 4.3 + + + + 3.9 + + + + 3.9 + + + + 3.8 + + + + 3.8 + + + + 3.5 + + + + 3 + + + + 2.9 + + + + 2.7 + + + + 2.4 + + + + 2.5 + + + + 2.7 + + + + 2.7 + + + + 2.6 + + + + 2.3 + + + + 2.1 + + + + 2.1 + + + + 1.9 + + + + 1.9 + + + + 1.9 + + + + 1.8 + + + + 1.7 + + + + 1.5 + + + + 1.5 + + + + 1.7 + + + + 2 + + + + 2.1 + + + + 2.2 + + + + 2.2 + + + + 2.2 + + + + 2.2 + + + + 2.2 + + + + 2.1 + + + + 2.1 + + + + 2.3 + + + + 2.5 + + + + 2.7 + + + + 2.9 + + + + 3.1 + + + + 3.2 + + + + 3.1 + + + + 2.8 + + + + 2.5 + + + + 2.4 + + + + 1.9 + + + + 1.5 + + + + 1.5 + + + + 1.5 + + + + 1.5 + + + + 1.4 + + + + 1.2 + + + + 0.9 + + + + 1 + + + + 0.8 + + + + 0.8 + + + + 0.8 + + + + 0.8 + + + + 0.6 + + + + 0.5 + + + + 0.3 + + + + 0.1 + + + + 0 + + + + -0.1 + + + + -0.4 + + + + -0.6 + + + + -0.7 + + + + -0.6 + + + + -0.5 + + + + -0.5 + + + + -0.6 + + + + -0.6 + + + + -0.9 + + + + -1.3 + + + + -1.5 + + + + -1.6 + + + + -1.7 + + + + -1.8 + + + + -1.8 + + + + -1.7 + + + + -1.7 + + + + -1.3 + + + + -1 + + + + -0.7 + + + + -0.5 + + + + -0.3 + + + + -0.5 + + + + -0.2 + + + + 0.3 + + + + 1 + + + + 1 + + + + 0.6 + + + + 0.9 + + + + 1.2 + + + + 1.8 + + + + 2.3 + + + + 2.8 + + + + 3 + + + + 3.2 + + + + 3.7 + + + + 4.1 + + + + 4.1 + + + + 4.3 + + + + 4.6 + + + + 4.9 + + + + 5 + + + + 5.1 + + + + 5.5 + + + + 5.9 + + + + 6.4 + + + + 7 + + + + 7.4 + + + + 7.6 + + + + 8.1 + + + + 8.5 + + + + 8.9 + + + + 9.3 + + + + 9.7 + + + + 10.5 + + + + 11 + + + + 11.4 + + + + 12.3 + + + + 12.9 + + + + 13.8 + + + + 14.2 + + + + 14.5 + + + + 15.1 + + + + 15.5 + + + + 15.9 + + + + 16.3 + + + + 16.7 + + + + 17 + + + + 16.8 + + + + 15.9 + + + + 14.4 + + + + 13.5 + + + + 12.8 + + + + 12.2 + + + + 11.7 + + + + 11.6 + + + + 12.5 + + + + 13.9 + + + + 14.4 + + + + 14.700000000000001 + + + + 14.9 + + + + 15 + + + + 14.9 + + + + 14.6 + + + + 14.2 + + + + 13.8 + + + + 13.8 + + + + 13.6 + + + + 13.5 + + + + 13.3 + + + + 12.9 + + + + 12.2 + + + + 11.7 + + + + 11.8 + + + + 12.3 + + + + 12.8 + + + + 13.4 + + + + 13.5 + + + + 13.8 + + + + 14.2 + + + + 14.4 + + + + 15 + + + + 16.2 + + + + 17 + + + + 17.6 + + + + 18 + + + + 18.6 + + + + 19.8 + + + + 21.6 + + + + 23.7 + + + + 25.7 + + + + 27.8 + + + + 29.2 + + + + 29.8 + + + + 30.1 + + + + 30.3 + + + + 30.6 + + + + 30.7 + + + + 30.7 + + + + 31 + + + + 30.1 + + + + 30.1 + + + + + \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index d30f13d3bc..9f51c08796 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,3 +5,6 @@ jupyter_client ipykernel vincent geopandas +cartopy +gpxpy +seawater