TP 4 : Les volcans correction#

On commence par éxécuter la commande %load_ext sql qui est une magic command spécifique à Jupyter Notebook. Elle sert à charger l’extension ipython-sql, qui permet d’exécuter du code SQL directement dans des cellules Jupyter comme si c’était du Python natif :
%load_ext sql
Ensuite, on établit une connexion SQL entre notre Jupyter et notre base de données SQLite locale nommée volcans.db :
%sql sqlite:///volcans.db
On exécute la cellule suivante pour configurer l’affichage des résultats SQL dans notre notebook Jupyter lorsqu’on utilise l’extension ipython-sql :
%config SqlMagic.style = '_DEPRECATED_DEFAULT'
Ici on liste les tables présentes dans notre base de données :
%%sql
SELECT name FROM sqlite_master WHERE type='table'
* sqlite:///volcans.db
Done.
| name |
|---|
| volcans |
Ensuite, on liste les colonnes dans la table volcans :
%%sql
PRAGMA table_info(volcans)
* sqlite:///volcans.db
Done.
| cid | name | type | notnull | dflt_value | pk |
|---|---|---|---|---|---|
| 0 | volcano | TEXT | 0 | None | 1 |
| 1 | name | TEXT | 0 | None | 0 |
| 2 | wiki | TEXT | 0 | None | 0 |
| 3 | elevation | INTEGER | 0 | None | 0 |
| 4 | lat | REAL | 0 | None | 0 |
| 5 | lon | REAL | 0 | None | 0 |
| 6 | eruption_date | TEXT | 0 | None | 0 |
| 7 | eruption_year | INTEGER | 0 | None | 0 |
| 8 | abstract | TEXT | 0 | None | 0 |
| 9 | photo | TEXT | 0 | None | 0 |
On peut alors proposer une correction au TP4.
Partie 1 – Exploration de la base#
Lister les 10 volcans les plus hauts, classés par altitude décroissante. N’affichez que les noms et les altitudes.
%%sql
SELECT name, elevation FROM volcans ORDER BY elevation DESC LIMIT 10 ;
* sqlite:///volcans.db
Done.
| name | elevation |
|---|---|
| Ojos del Salado | 6893 |
| Incahuasi | 6621 |
| Tupungato | 6570 |
| Antofalla | 6409 |
| Parina Quta | 6380 |
| Coropuna | 6377 |
| Ampato | 6288 |
| Pular | 6233 |
| Aucanquilcha | 6176 |
| San Pedro | 6155 |
Compter le nombre de volcans dont l’altitude est supérieure à 5000 mètres.
%%sql
SELECT COUNT(name) FROM volcans WHERE elevation > 5000
* sqlite:///volcans.db
Done.
| COUNT(name) |
|---|
| 55 |
Afficher le nom, l’altitude et le lien Wikipédia pour les volcans ayant une altitude inférieure à 300m.
%%sql
SELECT name, elevation, wiki FROM volcans
WHERE elevation < 300
ORDER BY elevation DESC
* sqlite:///volcans.db
Done.
| name | elevation | wiki |
|---|---|---|
| Jabal at-Tair | 244 | http://en.wikipedia.org/wiki/Jabal_al-Tair_Island |
| Babase | 200 | http://en.wikipedia.org/wiki/Babase_Island |
| Eldfell | 200 | http://en.wikipedia.org/wiki/Eldfell |
| Furnas | 198 | http://en.wikipedia.org/wiki/Furnas |
Partie 2 – Analyse temporelle#
Lister 10 volcans ayant eu une éruption après l’an 2000.
%%sql
SELECT name, eruption_year
FROM volcans
WHERE eruption_year > 2000
LIMIT 10;
* sqlite:///volcans.db
Done.
| name | eruption_year |
|---|---|
| Atlasov | 2018 |
| Avachinsky | 2008 |
| Bezymianny | 2021 |
| Brown Peak | 2001 |
| Bulusan Volcano | 2017 |
| Bárðarbunga | 2014 |
| Calbuco | 2021 |
| Chikurachki | 2016 |
| Concepción | 2015 |
| Copahue | 2016 |
Trouver combien de volcans ont une année d’éruption connue (c’est-à-dire non nulle).
%%sql
SELECT COUNT(*)
FROM volcans
WHERE eruption_year IS NOT NULL;
* sqlite:///data///volcans.db
Done.
| COUNT(*) |
|---|
| 351 |
Trouver 10 volcans ayant l’éruption la plus lointaine, trier par ordre croissant d’année d’éruption.
%%sql
SELECT name, eruption_year
FROM volcans
ORDER BY eruption_year
LIMIT 10;
* sqlite:///volcans.db
Done.
| name | eruption_year |
|---|---|
| Acamarachi | -1000000000 |
| Alid | -1000000000 |
| Ampato | -1000000000 |
| Antofalla | -1000000000 |
| Arintica | -1000000000 |
| Babase | -1000000000 |
| Cabaraya | -1000000000 |
| Carihuairazo | -1000000000 |
| Cay | -1000000000 |
| Cerro Miñiques | -1000000000 |
Partie 3 – Données géographiques#
Trouver les volcans situés dans l’hémisphère sud.
%%sql SELECT name, lat, lon
FROM volcans
WHERE lat < 0;
* sqlite:///data///volcans.db
Done.
| name | lat | lon |
|---|---|---|
| Acamarachi | -23.3 | -67.6167 |
| Acotango | -18.3822 | -69.0478 |
| Aguilera | -50.3333 | -73.75 |
| Ambitle | -4.08333 | 153.65 |
| Ampato | -15.8167 | -71.8833 |
| Antillanca Group | -40.7708 | -72.1533 |
| Antisana | -0.481389 | -78.1408 |
| Antofalla | -25.55 | -67.8833 |
| Antuco | -37.4058 | -71.3492 |
| Aracar | -24.29 | -67.7833 |
| Arintica | -18.7472 | -69.0667 |
| Arjuno‑Welirang | -7.76444 | 112.589 |
| Atacazo | -0.352778 | -78.6169 |
| Aucanquilcha | -21.1833 | -68.5833 |
| Babase | -4.03333 | 153.717 |
| Brown Peak | -67.6833 | 164.967 |
| Cabaraya | -19.1458 | -68.6983 |
| Calbuco | -41.33 | -72.6183 |
| Callaqui | -37.9167 | -71.45 |
| Carihuairazo | -1.40694 | -78.75 |
| Carrán-Los Venados | -40.308 | -72.07 |
| Cay | -45.0625 | -72.9858 |
| Cerro Arenales | -47.1958 | -73.4683 |
| Cerro Azul | -35.653 | -70.761 |
| Cerro Macá | -45.1058 | -73.1692 |
| Cerro Miñiques | -23.8167 | -67.7667 |
| Cerro Overo | -23.5175 | -67.6625 |
| Cerro Pantojo | -40.7667 | -71.95 |
| Cerro del Azufre | -21.7872 | -68.2375 |
| Chiliques | -23.5833 | -67.7 |
| Colachi | -23.2364 | -67.645 |
| Copahue | -37.85 | -71.1667 |
| Copiapó | -27.3058 | -69.1308 |
| Corcovado | -43.1833 | -72.8 |
| Cordón de Puntas Negras | -23.7428 | -67.5342 |
| Coropuna | -15.55 | -72.65 |
| Cotopaxi | -0.680556 | -78.4378 |
| Dakataua | -5.05556 | 150.108 |
| Descabezado Grande | -35.5833 | -70.75 |
| Domuyo | -36.6397 | -70.433 |
| El Altar | -1.66333 | -78.4092 |
| Galunggung | -7.25673 | 108.077 |
| Garbuna Group | -5.45 | 150.033 |
| Green Mountain, Ascension Island | -7.95 | -14.35 |
| Hualca Hualca | -15.7206 | -71.8555 |
| Hudson Mountains | -74.55 | -99.1833 |
| Ijen | -8.058 | 114.242 |
| Incahuasi | -27.033 | -68.296 |
| Inierie | -8.875 | 120.95 |
| Isluga | -19.15 | -68.8333 |
| Jayu Quta | -19.45 | -67.4167 |
| Kaba | -3.52 | 102.62 |
| Kamojang | -7.125 | 107.8 |
| Kao (volcano) | -19.67 | -175.03 |
| Kelud | -7.93 | 112.308 |
| Lanín | -39.6328 | -71.4997 |
| Lascar | -23.3667 | -67.7333 |
| Lastarria | -25.1667 | -68.5167 |
| Lautaro | -49.0197 | -73.5035 |
| Licancabur | -22.8339 | -67.8836 |
| Llaima | -38.6958 | -71.7317 |
| Lonquimay | -38.3767 | -71.5833 |
| Lopevi | -16.5067 | 168.346 |
| Maipo | -34.161 | -69.833 |
| Marmolejo | -33.734 | -69.878 |
| Melimoyu | -44.0758 | -72.86 |
| Michinmahuida | -42.7992 | -72.4458 |
| Misti | -16.2944 | -71.4089 |
| Mont Ross | -49.5922 | 69.4958 |
| Mount Agung | -8.34083 | 115.503 |
| Mount Balbi | -5.91417 | 154.982 |
| Mount Belinda | -58.4333 | -26.3333 |
| Mount Bisoke | -1.46083 | 29.4817 |
| Mount Butak | -7.92 | 112.45 |
| Mount Ciremai | -6.892 | 108.4 |
| Mount Dempo | -4.01583 | 103.128 |
| Mount Discovery | -78.3667 | 165.017 |
| Mount Egon | -8.66667 | 122.45 |
| Mount Gahinga | -1.38694 | 29.6467 |
| Mount Gede | -6.78 | 106.98 |
| Mount Gharat (Mount Garet) | -14.27 | 167.5 |
| Mount Gurumehr | -7.143 | 107.84 |
| Mount Hudson | -45.9 | -72.9667 |
| Mount Karisimbi | -1.50833 | 29.445 |
| Mount Kenya | -0.150833 | 37.3075 |
| Mount Kerinci | -1.69667 | 101.266 |
| Mount Kilimanjaro | -3.07583 | 37.3533 |
| Mount Lamongan | -7.979 | 113.342 |
| Mount Lawu | -7.625 | 111.192 |
| Mount Longonot | -0.915278 | 36.4569 |
| Mount Malabar | -7.13 | 107.65 |
| Mount Melbourne | -74.35 | 164.7 |
| Mount Merapi | -7.54083 | 110.445 |
| Mount Merbabu | -7.455 | 110.44 |
| Mount Meru | -3.24667 | 36.7483 |
| Mount Mikeno | -1.46389 | 29.4183 |
| Mount Muhabura | -1.38333 | 29.6667 |
| Mount Ngauruhoe | -39.1568 | 175.632 |
| Mount Pangrango | -6.7773 | 106.981 |
| Mount Papandayan | -7.32 | 107.73 |
| Mount Penanggungan | -7.62 | 112.63 |
| Mount Raung | -8.125 | 114.042 |
| Mount Ruapehu | -39.2833 | 175.567 |
| Mount Sabyinyo | -1.4 | 29.6 |
| Mount Salak | -6.72 | 106.73 |
| Mount Slamet | -7.23917 | 109.22 |
| Mount Sumbing | -7.385 | 110.073 |
| Mount Tambora | -8.25 | 118.0 |
| Mount Tampomas | -6.77 | 107.95 |
| Mount Taranaki | -39.2964 | 174.065 |
| Mount Telomoyo | -7.37 | 110.4 |
| Mount Wurlali | -7.125 | 128.675 |
| Mount Yasur | -19.5283 | 169.448 |
| Nevado Anallajsi | -17.9167 | -68.9167 |
| Nevado San Francisco | -26.9188 | -68.2627 |
| Nevado de Longaví | -36.193 | -71.161 |
| Nevados de Chillán | -36.8633 | -71.3767 |
| Ojos del Salado | -27.1097 | -68.5414 |
| Ol Doinyo Lengai (Oldoinyo Lengai) | -2.76444 | 35.9161 |
| Olca | -20.9333 | -68.4833 |
| Ollagüe | -21.2833 | -68.1833 |
| Osorno | -41.1 | -72.4931 |
| Paluweh | -8.32917 | 121.71 |
| Parina Quta | -18.166 | -69.142 |
| Patilla Pata | -18.0611 | -69.0567 |
| Peinado | -26.62 | -68.15 |
| Pular | -24.1875 | -68.0542 |
| Puntiagudo-Cordón Cenizos | -40.9694 | -72.2639 |
| Quetrupillán | -39.5 | -71.7 |
| Raoul Island | -29.2667 | -177.917 |
| Reventador | -0.0775 | -77.6558 |
| San Pedro | -21.888 | -68.391 |
| Sangay | -2.0025 | -78.3408 |
| Semeru | -8.108 | 112.92 |
| Sierra Nevada de Lagunas Bravas | -26.4908 | -68.5591 |
| Socompa | -24.3959 | -68.246 |
| Tacora | -17.7206 | -69.7728 |
| Tafahi | -15.85 | -173.717 |
| Talang | -0.978333 | 100.679 |
| Tandikat | -0.432583 | 100.317 |
| Tangkuban Parahu | -6.77 | 107.6 |
| Tinakula | -10.3833 | 165.8 |
| Tinguiririca Volcano | -34.8136 | -70.3519 |
| Tolhuaca | -38.31 | -71.645 |
| Tromen | -37.142 | -70.03 |
| Tronador | -41.1608 | -71.8875 |
| Tungurahua | -1.47 | -78.4447 |
| Tupungato | -33.3583 | -69.77 |
| Ubinas | -16.3486 | -70.9022 |
| Ulawun | -5.05 | 151.333 |
| Villarrica Volcano | -39.4208 | -71.9392 |
| Volcán San José | -33.7864 | -69.8987 |
| Whakaari / White Island | -37.52 | 177.182 |
| Yanteles | -43.5 | -72.8 |
| Yate | -41.7547 | -72.3964 |
Compter le nombre de volcans situés entre l’équateur (lat = 0) et 30°N.
%%sql
SELECT COUNT(*)
FROM volcans
WHERE lat > 0 AND lat < 30;
* sqlite:///data///volcans.db
Done.
| COUNT(*) |
|---|
| 100 |
Identifier les 5 volcans les plus au nord (par latitude décroissante).
%%sql
SELECT name, lat
FROM volcans
ORDER BY lat DESC
LIMIT 5;
* sqlite:///data///volcans.db
Done.
| name | lat |
|---|---|
| Beerenberg | 71.0767 |
| Snæfellsjökull | 64.8 |
| Bárðarbunga | 64.6411 |
| Hekla | 63.9922 |
| Brennisteinsalda | 63.9808 |
Partie 4 – Requête avancée (bonus)#
Extraire 5 volcans ayant dans leur description (abstract) le mot “eruption”.
%%sql
SELECT name, abstract
FROM volcans
WHERE abstract LIKE '%éruption%'
LIMIT 5;
* sqlite:///volcans.db
Done.
| name | abstract |
|---|---|
| Antisana | L'Antisana est un stratovolcan, culminant à 5 758 m, de la cordillère des Andes, situé en Équateur, dans la province de Napo. Sa dernière éruption remonte à 1801. |
| Arenal Volcano | L'Arenal, aussi appelé cerro Arenal, volcán de los Canaste, volcán de Costa Rica, Guatusos Peak, cerro de los Guatusos, Pan de Azúcar, Pelón, Los ahogados ou encore volcán de Río Frío, est un volcan du Costa Rica ayant une forme conique quasiment symétrique. Plus jeune volcan du Costa Rica, il est en éruption du 29 juillet 1968 à décembre 2010. |
| Aucanquilcha | L'Aucanquilcha est un stratovolcan situé dans le Nord du Chili dans la région d'Antofagasta, près de la frontière avec la Bolivie. Il culmine à l'altitude de 6 176 m. La dernière éruption date du Pléistocène. Une légère activité de fumeroles persiste cependant, et des dépôts de soufre se forment à son sommet. Une mine de sulfure ouverte en 1913 à 5 950 m d'altitude y a été en exploitation entre 1950 et 1992 ; c'était à cette époque la plus haute mine du monde. |
| Bezymianny | Le Bezymianny, en cyrillique Безымянный, terme russe qui signifie littéralement « sans nom » en français, est un volcan de Russie situé dans la péninsule du Kamtchatka. Il est voisin des volcans Kamen, Ouchkovski et Klioutchevskoï situés immédiatement au nord et du Tolbatchik situé au sud. Alors considéré comme éteint, le volcan entame une nouvelle phase éruptive en 1955 lorsqu'il entre dans une violente éruption qui sera suivie par des dizaines d'autres. |
| Calbuco | Le Calbuco est un volcan du Chili s'élevant au sud-est du lac Llanquihue, au nord-est de la ville de Puerto Montt et au nord-est du golfe du Seno de Reloncaví. Composé d'andésite et couvert à son sommet de glaciers, il culmine à 2 015 mètres d'altitude. Alors que sa dernière éruption remontait au 26 août 1972, il est, sans signe avant-coureur, brusquement entré en éruption le 22 avril 2015. |