Annexe F — Semaine 2 — Préparer le catalogue des volcans

Cette page documente la préparation du fichier GVP_Volcanoes.csv chargé en semaine 2. La présentation scientifique du catalogue 1 décrit séparément la signification de ses variables et les limites de leur interprétation.

F.1 Source et périmètre

Les données proviennent du catalogue du Global Volcanism Program (GVP) du Smithsonian Institution (Simkin et al. 2010). Le fichier pédagogique retient les volcans dont Last Known Eruption peut être convertie en année et vaut au moins 0. Les dates BCE et les dates inconnues sont donc exclues.

Avertissement F.1: Une source à réarchiver

L’export original du GVP, sa date de téléchargement et son numéro de version n’ont pas été conservés avec le premier fichier pédagogique. Le code ci-dessous documente exactement la sélection appliquée, mais la reproduction bit à bit restera impossible tant que l’export source correspondant n’aura pas été retrouvé. Lors de la prochaine mise à jour, il devra être archivé sous appendices/data/volcanoes/GVP_Volcanoes_original.csv.

F.2 Lire l’export et sélectionner les colonnes

pd.read_csv() lit l’export archivé. La liste colonnes fixe ensuite explicitement les variables distribuées: une modification future du catalogue ne changera donc pas silencieusement la structure du cours.

Listing F.1: Lire l’export GVP et définir les variables conservées
import pandas as pd

source = pd.read_csv(
    "appendices/data/volcanoes/GVP_Volcanoes_original.csv"
)

colonnes = [
    "Volcano Number",
    "Volcano Name",
    "Country",
    "Volcanic Region Group",
    "Volcanic Region",
    "Volcano Landform",
    "Primary Volcano Type",
    "Activity Evidence",
    "Last Known Eruption",
    "Latitude",
    "Longitude",
    "Elevation (m)",
    "Tectonic Setting",
    "Dominant Rock Type",
]
1
Lit le fichier source sans sélectionner de ligne.
2
Énumère les quatorze variables nécessaires à la semaine 2.

F.3 Convertir l’année et filtrer les volcans

pd.to_numeric() convertit l’année en nombre; errors="coerce" transforme les libellés non numériques, notamment les dates inconnues, en valeurs manquantes. loc[] conserve ensuite les années supérieures ou égales à zéro et les colonnes définies précédemment.

Listing F.2: Sélectionner les volcans dont la dernière éruption est datée depuis l’an 0
annee = pd.to_numeric(
    source["Last Known Eruption"],
    errors="coerce",
)

volcans = source.loc[
    annee >= 0,
    colonnes,
].copy()

volcans["Last Known Eruption"] = annee.loc[volcans.index].astype(int)
1
Produit une série numérique sans modifier la colonne originale.
2
Applique simultanément le filtre temporel et la sélection des variables.
3
Enregistre les années retenues comme nombres entiers.

Ce filtre définit le périmètre pédagogique: le fichier ne représente pas tous les volcans du GVP, mais ceux auxquels le catalogue associe une année numérique depuis le début de notre ère.

F.4 Écrire et contrôler le fichier distribué

to_csv() écrit le fichier chargé par les étudiants. Les assertions vérifient sa structure actuelle et les propriétés imposées par la préparation.

Listing F.3: Écrire et vérifier le fichier pédagogique
sortie = "course/data/GVP_Volcanoes.csv"
volcans.to_csv(sortie, index=False)

assert volcans.shape == (678, 14)
assert volcans["Volcano Number"].is_unique
assert (volcans["Last Known Eruption"] >= 0).all()
assert volcans.columns.tolist() == colonnes
1
Écrit un CSV UTF-8 sans colonne d’index technique.
2
Détecte immédiatement un changement d’effectif ou de structure lors d’une future mise à jour.

Les nombres de lignes et les résultats des exercices devront être revérifiés dès qu’un nouvel export original sera archivé: le GVP est une base vivante dont le contenu évolue.