Les ouragans

Bro Frédéric - CFIES - Strasbourg - 25 septembre 2019

Présentation :

  • Le National Hurricane Center NHC (qui signifie « centre national des ouragans ») analyse les tempêtes qui se forment dans le bassin atlantique (océan Atlantique nord - golf du Mexique - mer des Caraïbes) afin d'étudier leur évolution.
  • Le fichier 'atlantic.csv', accessible sur le site [https://www.kaggle.com/noaa/hurricane-database||https://www.kaggle.com/noaa/hurricane-database], a été modifié en le nouveau fichier nommé 'ouragans.csv'.

L'intensité du vent est mesurée avec l'échelle de Saffir-Simpson :

En coup de vent...

Création de la table T liée au fichier tempetes.csv :

In [1]:
import pandas as pa
import pylab as pl

pl.style.use('seaborn') 

T = pa.read_csv('ouragans.csv')
T.head()
Out[1]:
id nom annee mois jour heure etat vent lat lon cat max cat_max
0 AL011950 ABLE 1950 8 12 0 vide 64.75 17.1 -55.5 0.0 203.5 3
1 AL011950 ABLE 1950 8 12 600 vide 74.00 17.7 -56.3 0.0 203.5 3
2 AL011950 ABLE 1950 8 12 1200 vide 83.25 18.2 -57.4 0.0 203.5 3
3 AL011950 ABLE 1950 8 12 1800 vide 92.50 19.0 -58.6 0.0 203.5 3
4 AL011950 ABLE 1950 8 13 0 vide 92.50 20.0 -60.0 0.0 203.5 3
Représentation avec Folium
In [2]:
import folium
from math import sqrt
In [3]:
palette_couleurs = { 0 : 'green',
                    1 : 'blue',
                   2 : 'pink',
                   3 : 'yellow',
                   4 : 'orange',
                   5 : 'red'}
In [4]:
D = T.query('nom == "IVAN" and annee == 2004')
D.head()
Out[4]:
id nom annee mois jour heure etat vent lat lon cat max cat_max
21160 AL092004 IVAN 2004 9 2 1800 vide 46.25 9.7 -27.6 0.0 268.25 5
21161 AL092004 IVAN 2004 9 3 0 vide 55.50 9.7 -28.7 0.0 268.25 5
21162 AL092004 IVAN 2004 9 3 600 vide 64.75 9.7 -30.3 0.0 268.25 5
21163 AL092004 IVAN 2004 9 3 1200 vide 74.00 9.5 -32.1 0.0 268.25 5
21164 AL092004 IVAN 2004 9 3 1800 vide 83.25 9.3 -33.6 0.0 268.25 5
In [5]:
carte = folium.Map(location=[30,-60],tiles='Stamen Toner', zoom_start=3)

Table = D[['lat','lon','vent','cat','mois','jour','heure']]

for i,(lat,long,vent,cat,m,j,h) in Table.iterrows():
    texte = '<div>{v} km/h<br>date : {h}/{j}/{m}</div>'.format(v=vent,h=int(h),j=int(j),m=int(m))
    folium.CircleMarker(location=(lat,long),
                        fill = True,
                        fill_color = palette_couleurs[cat],
                        fill_opacity = 0.5,
                        color = 'black',
                        popup = folium.Popup(texte,max_width = '300'),
                        radius = sqrt(vent)
                       ).add_to(carte)

carte
Out[5]:
In [6]:
carte.save('ivan_2004.html')

Fini ...

Retour au début

In [7]:
from IPython.core.display import HTML
htm = open("style_css.txt").read()
HTML(htm)
Out[7]: