{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "tremblements.ipynb", "version": "0.3.2", "provenance": [], "collapsed_sections": [], "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "j0z_e3ELTzPd", "colab_type": "text" }, "source": [ "# Affichage sur une carte des données de tremblements de Terre \n", "\n", "Les données sont obtenues en temps réel sur :\n", "\n", "*https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php*\n", "\n", "données fournies par l'US Geological Survey...\n" ] }, { "cell_type": "code", "metadata": { "id": "k3Ey7fiFkx3L", "colab_type": "code", "colab": {} }, "source": [ "" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "H4rFRt2_VCMN", "colab_type": "text" }, "source": [ "**1. On commence par importer les bibliothéques**\n", "* folium permet de générer les cartes et de placer les marqueurs\n", "* csv permet de traiter les données obtenues dans un fichier csv\n", "* request permet de télécharger les données depuis le site de l'USGS\n" ] }, { "cell_type": "code", "metadata": { "id": "wIZGxDAITZYh", "colab_type": "code", "colab": {} }, "source": [ "import folium\n", "import csv\n", "import requests" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "MUx5o9y2Wsm_", "colab_type": "text" }, "source": [ "**2. On importe les données depuis le site USGS**\n", "\n", "Le site mets à disposition plusieur type de fichiers -> dernière heure, dernier jour, derniers 7 jours etc ....\n", "voir (https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php)\n", "\n", "Le choix est fait ici de visualiser les séismes d'une magnitude supérieure à 2,5, le mois dernier.\n", "\n", "Le fichier CSV est stockée dans la variable tremblement_csv sous forme de liste\n" ] }, { "cell_type": "code", "metadata": { "id": "y_owoFC5WXL6", "colab_type": "code", "colab": {} }, "source": [ "# Importation des données au format CSV\n", "url=\"http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_month.csv\"\n", "csvfile = requests.get(url)\n", "csvfile = csvfile.content.decode('utf-8')\n" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "YARcFYBclAkF", "colab_type": "code", "colab": {} }, "source": [ "" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "RXJ_et5CZScU", "colab_type": "text" }, "source": [ "**3. Création de la carte vide**\n", "\n", "La bibiothèque folium permet de générer une carte vide.... pour l'instant" ] }, { "cell_type": "code", "metadata": { "id": "lMfKHdVjVyQR", "colab_type": "code", "outputId": "54273239-54ee-43c4-9e48-07c04453ddb0", "colab": { "base_uri": "https://localhost:8080/", "height": 1069 } }, "source": [ "carte_tremblements = folium.Map(location=[0,0], zoom_start=3)\n", "display(carte_tremblements)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "UBfa6wwuZpF-", "colab_type": "text" }, "source": [ "**4. Lecture du fichier csv et positionnement des marqueurs.**\n", "\n", "Structure du fichier csv 0 : date , 1: latitude , 2 : Longitude , 3 : profondeur, 4 : Magnitude\n" ] }, { "cell_type": "code", "metadata": { "id": "wiYnb3yBV35p", "colab_type": "code", "outputId": "70f69894-b882-4a53-d04a-fbc49ab158d8", "colab": { "base_uri": "https://localhost:8080/", "height": 193 } }, "source": [ "carte_tremblements = folium.Map(location=[0,0], zoom_start=3)\n", "tremblements_csv = csv.reader(csvfile.splitlines(), delimiter=',')\n", "# pour éviter la ligne d'en têtes.\n", "header = next(tremblements_csv)\n", "# On lit maintenant chaque ligne du fichier csv téléchargé\n", "for ligne in tremblements_csv :\n", " latitude = float(ligne[1])\n", " longitude = float(ligne[2])\n", " folium.Marker([latitude,longitude]).add_to(carte_tremblements)\n", " \n", "display(carte_tremblements)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "rPe-hveSaxy_", "colab_type": "text" }, "source": [ "**5. On affine en affichant la magnitude du seismes**\n", "\n", "On ajoute donc un pop-up qui affiche la magnitude, tout simplement" ] }, { "cell_type": "code", "metadata": { "id": "8Q-G3cUYb8aC", "colab_type": "code", "outputId": "d804ee61-5309-4137-cec9-24e8558b46b9", "colab": { "base_uri": "https://localhost:8080/", "height": 677 } }, "source": [ "carte_tremblements = folium.Map(location=[0,0], zoom_start=3)\n", "tremblements_csv = csv.reader(csvfile.splitlines(), delimiter=',')\n", "# pour éviter la ligne d'en têtes.\n", "header = next(tremblements_csv)\n", "# On lit maintenant chaque ligne du fichier csv téléchargé\n", "for ligne in tremblements_csv :\n", " latitude = float(ligne[1])\n", " longitude = float(ligne[2])\n", " magnitude = \"Magnitude : \"+ str(ligne[4])\n", " folium.Marker([latitude,longitude],popup = magnitude).add_to(carte_tremblements)\n", " \n", "display(carte_tremblements)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "9xkabYOajoX7", "colab_type": "text" }, "source": [ "Prolongement possibles : \n", "\n", "* on peut demander aux élèves d'afficher avec un marker rouge les seismes dont la magnitude est supérieure à 6.\n", "* on peut leur demander d'afficher la date dans le popup...\n", " * et plein d'autres trucs...\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "metadata": { "id": "a4aaDuZvkZGK", "colab_type": "code", "outputId": "9f6b4035-9305-463f-d961-9252469ce274", "colab": { "base_uri": "https://localhost:8080/", "height": 677 } }, "source": [ "carte_tremblements = folium.Map(location=[0,0], zoom_start=3)\n", "tremblements_csv = csv.reader(csvfile.splitlines(), delimiter=',')\n", "# pour éviter la ligne d'en têtes.\n", "header = next(tremblements_csv)\n", "# On lit maintenant chaque ligne du fichier csv téléchargé\n", "for ligne in tremblements_csv :\n", " latitude = float(ligne[1])\n", " longitude = float(ligne[2])\n", " magnitude = \"Magnitude : \"+ str(ligne[4])\n", " if float(ligne[4]) > 5 :\n", " folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='red')).add_to(carte_tremblements)\n", " elif float(ligne[4]) > 4.7 :\n", " folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='blue')).add_to(carte_tremblements)\n", " else :\n", " folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='green')).add_to(carte_tremblements)\n", " \n", " \n", "display(carte_tremblements)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] } ] }