{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Titre du document" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2+2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n" ] } ], "source": [ "x=10\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "20\n" ] } ], "source": [ "x = x +10\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Petit exemple de completion" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "mu, sigma = 100, 15" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "x = np.random.normal(loc=mu, scale=sigma, size=10000)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "plt.hist(x)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/json": { "cell": { "!": "OSMagics", "HTML": "Other", "SVG": "Other", "bash": "Other", "capture": "ExecutionMagics", "debug": "ExecutionMagics", "file": "Other", "html": "DisplayMagics", "javascript": "DisplayMagics", "js": "DisplayMagics", "latex": "DisplayMagics", "markdown": "DisplayMagics", "perl": "Other", "prun": "ExecutionMagics", "pypy": "Other", "python": "Other", "python2": "Other", "python3": "Other", "ruby": "Other", "script": "ScriptMagics", "sh": "Other", "svg": "DisplayMagics", "sx": "OSMagics", "system": "OSMagics", "time": "ExecutionMagics", "timeit": "ExecutionMagics", "writefile": "OSMagics" }, "line": { "alias": "OSMagics", "alias_magic": "BasicMagics", "autoawait": "AsyncMagics", "autocall": "AutoMagics", "automagic": "AutoMagics", "autosave": "KernelMagics", "bookmark": "OSMagics", "cat": "Other", "cd": "OSMagics", "clear": "KernelMagics", "colors": "BasicMagics", "conda": "PackagingMagics", "config": "ConfigMagics", "connect_info": "KernelMagics", "cp": "Other", "debug": "ExecutionMagics", "dhist": "OSMagics", "dirs": "OSMagics", "doctest_mode": "BasicMagics", "ed": "Other", "edit": "KernelMagics", "env": "OSMagics", "gui": "BasicMagics", "hist": "Other", "history": "HistoryMagics", "killbgscripts": "ScriptMagics", "ldir": "Other", "less": "KernelMagics", "lf": "Other", "lk": "Other", "ll": "Other", "load": "CodeMagics", "load_ext": "ExtensionMagics", "loadpy": "CodeMagics", "logoff": "LoggingMagics", "logon": "LoggingMagics", "logstart": "LoggingMagics", "logstate": "LoggingMagics", "logstop": "LoggingMagics", "ls": "Other", "lsmagic": "BasicMagics", "lx": "Other", "macro": "ExecutionMagics", "magic": "BasicMagics", "man": "KernelMagics", "matplotlib": "PylabMagics", "mkdir": "Other", "more": "KernelMagics", "mv": "Other", "notebook": "BasicMagics", "page": "BasicMagics", "pastebin": "CodeMagics", "pdb": "ExecutionMagics", "pdef": "NamespaceMagics", "pdoc": "NamespaceMagics", "pfile": "NamespaceMagics", "pinfo": "NamespaceMagics", "pinfo2": "NamespaceMagics", "pip": "PackagingMagics", "popd": "OSMagics", "pprint": "BasicMagics", "precision": "BasicMagics", "prun": "ExecutionMagics", "psearch": "NamespaceMagics", "psource": "NamespaceMagics", "pushd": "OSMagics", "pwd": "OSMagics", "pycat": "OSMagics", "pylab": "PylabMagics", "qtconsole": "KernelMagics", "quickref": "BasicMagics", "recall": "HistoryMagics", "rehashx": "OSMagics", "reload_ext": "ExtensionMagics", "rep": "Other", "rerun": "HistoryMagics", "reset": "NamespaceMagics", "reset_selective": "NamespaceMagics", "rm": "Other", "rmdir": "Other", "run": "ExecutionMagics", "save": "CodeMagics", "sc": "OSMagics", "set_env": "OSMagics", "store": "StoreMagics", "sx": "OSMagics", "system": "OSMagics", "tb": "ExecutionMagics", "time": "ExecutionMagics", "timeit": "ExecutionMagics", "unalias": "OSMagics", "unload_ext": "ExtensionMagics", "who": "NamespaceMagics", "who_ls": "NamespaceMagics", "whos": "NamespaceMagics", "xdel": "NamespaceMagics", "xmode": "BasicMagics" } }, "text/plain": [ "Available line magics:\n", "%alias %alias_magic %autoawait %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %conda %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode\n", "\n", "Available cell magics:\n", "%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile\n", "\n", "Automagic is ON, % prefix IS NOT needed for line magics." ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%lsmagic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Utilisation d'autres langages" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The rpy2.ipython extension is already loaded. To reload it, use:\n", " %reload_ext rpy2.ipython\n" ] } ], "source": [ "%load_ext rpy2.ipython" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "hideCode": true, "hideOutput": true, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Error in plot[cars] : object of type 'closure' is not subsettable\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.6/site-packages/rpy2/rinterface/__init__.py:146: RRuntimeWarning: Error in plot[cars] : object of type 'closure' is not subsettable\n", "\n", " warnings.warn(x, RRuntimeWarning)\n" ] } ], "source": [ "%%R\n", "plot[cars]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%R\n", "plot(cars)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'cartopy'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mcartopy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcrs\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mccrs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0msrc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mccrs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPlateCarree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mtgt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcccrs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGOOGLE_MERCATOR\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'cartopy'" ] } ], "source": [ "import cartopy.crs as ccrs\n", "src = ccrs.PlateCarree()\n", "tgt = cccrs.GOOGLE_MERCATOR" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'geoviews'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mgeoviews\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mgv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mgeoviews\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeature\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mgf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'geoviews'" ] } ], "source": [ "import geoviews as gv\n", "import geoviews.feature as gf" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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7r///pTre/TRR8lsNlNTUxPV1tbSSy+9JFp9c1FXV2cDoKdU9DWVF0txFBYW/urNN99c8Ju2Wq108OBB+uY3vzmjwI+Pj095bs+ePfS1r31NEKUnn3ySHnjgASJKiPd9991Hfr+fPvOZz6RU3+joKB05coSIiDweD9XU1NDx48fp3Xffpfvvv3/B9SVz33330WOPPSace8kllxARUSwWo8rKSnrvvfeovb2dGhsbqb29nYiIHnzwQWpra6PXX3+dnnnmmTnrSMblclF9fT0NDAwI7z25vhdffJFCoZBo9Xm9XkHAjh07RnV1dUJ9ZWVltHPnTgqHw6LVx8O/n97eXqH83/zmN6KUzcNxnNDgRSIRWr9+Pe3bt4/uv/9+uvPOO8npdC7q3piJL3zhC/TLX/6SiIjC4TC5XC6666676I477iCixd2L0zlx4gStXLmS/H4/RaNRuht88o8AACAASURBVPTSS+nUqVN044030qOPPipKfTt37qQjR45MEdy//vWvFI1GiYjo3nvvpRtuuIGISPgehEIh6uvro8rKSorFYkRE9NnPfpYCgQDdc8891NnZmVJ9jz76qPC9HxkZoY6ODtHqm4tvfetbPplMdj2loK8fhJSEj27btm3BJxuNRqxbt25eixz47Jg33ngDN910EwDgpptuwp///GcAiWEXHyagWUJXs9VXVFQkxPWzs7NRX1+Prq4u5Obm4rXXXltwfcl0dHTg0ksvBZCwMe3v74fVasXBgwdRXV0tLJa4/vrr8dprr02pIyMjY151JPP73/8e1157rWCby29hePDgQVRVVaG4uBgqlUq0+rKysoThrt/vFx4fPHgQpaWlqK6uhlKpFK0+Hv7/V1lZKZS/Z88eUcrmYYwJq335yXfGGF577TVcd911iEaji7o3puPxeLBr1y7ccsstABLrQPR6Pd566y1ccsklABZ3L06ns7MTGzduhEajgVwux9atW/Hqq69iz549+PjHPy5KfVu2bHlf+OWjH/2osKp08+bNGB8fRywWw2uvvYbrr78eKpUKy5YtQ3V1NQ4ePAgAwkKjuT7XmepLhjdxAyBKfXNx7bXXagsLC7+YyjlnVeAZY1U1NTVKqVL6GGP46Ec/ijVr1uDZZ5/FxMQE8vLyYLVaBWvboqIi2Gw2AMDKlSsRCARw0UUX4fbbb19wvf39/WhtbUVl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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.subplot(111, projection=\"aitoff\")\n", "plt.title(\"Aitoff\")\n", "plt.grid(True)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\"type\": \"FeatureCollection\", \"version\": \"draft\", \"features\": [{\"type\": \"Feature\", \"geometry\": {\"type\": \"Point\", \"coordinates\": [3.813697, 49.373259]}, \"properties\": {\"label\": \"Roucy\", \"score\": 0.9312272727272728, \"id\": \"02656\", \"type\": \"municipality\", \"name\": \"Roucy\", \"postcode\": \"02160\", \"citycode\": \"02656\", \"x\": 759110.79, \"y\": 6919608.94, \"population\": 388, \"city\": \"Roucy\", \"context\": \"02, Aisne, Hauts-de-France\", \"importance\": 0.2435}}, {\"type\": \"Feature\", \"geometry\": {\"type\": \"Point\", \"coordinates\": [3.89302, 49.570293]}, \"properties\": {\"label\": \"Rue de Roucy 02150 Sissonne\", \"score\": 0.6799318181818181, \"id\": \"02720_0105\", \"name\": \"Rue de Roucy\", \"postcode\": \"02150\", \"citycode\": \"02720\", \"x\": 764625.02, \"y\": 6941592.49, \"city\": \"Sissonne\", \"context\": \"02, Aisne, Hauts-de-France\", \"type\": \"street\", \"importance\": 0.47925}}, {\"type\": \"Feature\", \"geometry\": {\"type\": \"Point\", \"coordinates\": [3.814444, 49.37294]}, \"properties\": {\"label\": \"Rue du Pavé 02160 Roucy\", \"score\": 0.6750345454545453, \"id\": \"02656_0081\", \"name\": \"Rue du Pavé\", \"postcode\": \"02160\", \"citycode\": \"02656\", \"x\": 759165.42, \"y\": 6919574.01, \"city\": \"Roucy\", \"context\": \"02, Aisne, Hauts-de-France\", \"type\": \"street\", \"importance\": 0.42538}}, {\"type\": \"Feature\", \"geometry\": {\"type\": \"Point\", \"coordinates\": [3.040967, 49.572325]}, \"properties\": {\"label\": \"Square de Roucy 60400 Morlincourt\", \"score\": 0.6739163636363635, \"id\": \"60431_7300\", \"name\": \"Square de Roucy\", \"postcode\": \"60400\", \"citycode\": \"60431\", \"x\": 702964.6, \"y\": 6941453.93, \"city\": \"Morlincourt\", \"context\": \"60, Oise, Hauts-de-France\", \"type\": \"street\", \"importance\": 0.41308}}, {\"type\": \"Feature\", \"geometry\": {\"type\": \"Point\", \"coordinates\": [3.797682, 49.343045]}, \"properties\": {\"label\": \"Rue de Roucy 51140 Ventelay\", \"score\": 0.673430909090909, \"id\": \"51604_0046\", \"name\": \"Rue de Roucy\", \"postcode\": \"51140\", \"citycode\": \"51604\", \"x\": 757981.38, \"y\": 6916235.94, \"city\": \"Ventelay\", \"context\": \"51, Marne, Grand Est\", \"type\": \"street\", \"importance\": 0.40774}}], \"attribution\": \"BAN\", \"licence\": \"ETALAB-2.0\", \"query\": \"roucy\", \"limit\": 5}\n" ] } ], "source": [ "import requests, json\n", "import urllib.parse\n", "\n", "api_url = \"https://api-adresse.data.gouv.fr/search/?q=\"\n", "adr = \"roucy\"\n", "r = requests.get(api_url + urllib.parse.quote(adr))\n", "\n", "print(r.content.decode('unicode_escape'))" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'folium'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mfolium\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mcoords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m48.8398094\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2.5840685\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mmap\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfolium\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlocation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcoords\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtiles\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'OpenStreetMap'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mzoom_start\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m15\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mmap\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutfile\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'map.html'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'folium'" ] } ], "source": [ "import folium\n", "\n", "coords = (48.8398094,2.5840685)\n", "map = folium.Map(location=coords, tiles='OpenStreetMap', zoom_start=15)\n", "map.save(outfile='map.html')" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting folium\n", " Downloading folium-0.11.0-py2.py3-none-any.whl (93 kB)\n", "\u001b[K |████████████████████████████████| 93 kB 2.2 MB/s eta 0:00:01\n", "\u001b[?25hRequirement already satisfied: requests in /opt/conda/lib/python3.6/site-packages (from folium) (2.23.0)\n", "Requirement already satisfied: numpy in /opt/conda/lib/python3.6/site-packages (from folium) (1.15.2)\n", "Collecting branca>=0.3.0\n", " Downloading branca-0.4.1-py3-none-any.whl (24 kB)\n", "Requirement already satisfied: jinja2>=2.9 in /opt/conda/lib/python3.6/site-packages (from folium) (2.11.0)\n", "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.6/site-packages (from requests->folium) (1.25.7)\n", "Requirement already satisfied: idna<3,>=2.5 in /opt/conda/lib/python3.6/site-packages (from requests->folium) (2.9)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/lib/python3.6/site-packages (from requests->folium) (3.0.4)\n", "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.6/site-packages (from requests->folium) (2020.4.5.1)\n", "Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/lib/python3.6/site-packages (from jinja2>=2.9->folium) (1.1.1)\n", "Installing collected packages: branca, folium\n", "Successfully installed branca-0.4.1 folium-0.11.0\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install folium" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "import folium\n", "\n", "coords = (48.8398094,2.5840685)\n", "map = folium.Map(location=coords, tiles='OpenStreetMap', zoom_start=15)\n", "map.save(outfile='map.html')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Hide code", "kernelspec": { "display_name": "Python 3", "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.6.4" } }, "nbformat": 4, "nbformat_minor": 4 }