Aller au contenu

4- Traitement d'une grande base de données géolocalisées avec pandas/dask

Idea: using the Elena's dataset of species occurences + environment variables.

Danger

Suggestions:

  • avec les variables environnementales de copernicus
  • de grandes bases de données bio climatiques, qu'on peut plotter
  • et maxent sur des données d'occurence en méditerrannée => filtrage

On doit pouvoir illustrer :

  • calculer une colonne à partir d'autres colonnes
  • filtrer des données sur une colonne particulière et calculer des statistiques descriptives
  • gérer des données hétérogènes (e.g. dates, floatants, symboles)
  • gestion des données manquantes (NaN, etc..)
  • grouper des données en fonction de certaines valeurs dans des colonnes

Idée : travailler sur un petit jeu de données gridées, appliquer sur des données sparses ?

Environnement virtuel

Pour réaliser les exercices ci-dessous, on pourra se créer un environnement virtuel, par exemple en utilisant uv :

Pour installer uv :

curl -LsSf https://astral.sh/uv/install.sh | sh

Pour créer un environnement virtuel, par exemple avec python 3.12:

uv venv --python 3.12  /tmp/venv
source /tmp/venv/bin/activate

Pour installer les dépendances de ce TP

uv pip install matplotlib PySide6 pandas numpy

Cas réel : Modèle de distribution d'éspèces

On se propose d'appliquer ce que nous venons de voir à un cas réel, celui de la construction d'un modèle de distribution d'éspèce.

Pour donner un peu de contexte, un modèle de distribution d'éspèce est une fonction mathématique qui, étant données des variables environnementales (température, précipitations, pH, force du vent, présence de nutriments, nature du sol obtenu par satellite, etc.. éventuellement longitude, latitude, temps) prédit la probabilité d'observer une espèce qu'elle soit marine ou terrestre.

Dans ce qui suit, nous allons nous placer dans un contexte terrestre, utilisant les données mis à disposition par [Elith et al.(2020)]. Dans ce travail, les auteurs ont aggrégés plusieurs bases de données à travers le globe avec les données environnementales et les données de présence et/ou d'absence d'espèces particulières.

Les images ci-dessous représentent les données sur 4 régions :

  • AWT : Queensland (Australie), oiseaux et plantes,
  • NSW : New South Wales (Australie), oiseaux, plantes, petits reptiles, chauves souris,
  • SA : Brésil, Equateur, Colombie, Bolivie, Peru : plantes,
  • CAN : Ontario (Canada), oiseaux.

Région AWT Région NSW Région SA Région CAN

Une des particularités, et même une des difficultés, des données d'observation en écologie sont qu'elles sont bien souvent des présences seules; c'est à dire que la présence d'une espèce est renseignée dans la base (quelqu'un a vu une hirondelle à tel endroit et à tel moment) mais les absences ne le sont pas. Comme l'objectif de ce TP est avant tout de pratiquer python, et en particulier pandas, vous allez utiliser une approche clé en main : l'algorithme MaxEnt.

Danger

Todo : illustrer des données climatiques et des données de présence.

References

Suggestion de Euroscipy 2025 :

What is a DataFrame?
Creating a DataFrame (from dicts, CSV, etc.)
Exploring data:
    .head(), .info(), .describe()
    Accessing columns and rows: df['col'], .loc, .iloc
Filtering and boolean indexing
Common operations:
    Sorting (.sort_values()), grouping (.groupby()), aggregation
    Handling missing values: .isna(), .fillna(), .dropna()
Simple data visualization with .plot() (optional if time)
Hands-on exercises:
    Load a small CSV
    Filter rows by condition
    Group by a column and compute summary stats



Why Polars? Performance and parallelism
Quick comparison with Pandas (syntax similarities/differences)
Lazy vs eager evaluation
Basic usage:
    pl.read_csv, df.select, df.filter, df.groupby
Hands-on mini demo (load and filter data)

Euroscipy 2023

https://pretalx.com/euroscipy-2023/talk/PWER3Z/

https://stefaniemolin.com/pandas-workshop/

References

  • Data wrangling with pandas
  • Maxime Ryckewaert and Diego Marcos and Christophe Botella and Maximilien Servajean and Pierre Bonnet and Alexis Joly 2025. "Applying the maximum entropy principle to neural networks enhances multi-species distribution models", https://doi.org/10.48550/arXiv.2412.19217,
  • Elith, Jane, Catherine Graham, Roozbeh Valavi, Meinrad Abegg, Caroline Bruce, Simon Ferrier, Andrew Ford, et al. 2020. "Presence-Only and Presence-Absence Data for Comparing Species Distribution Modeling Methods". Biodiversity Informatics 15 (2): 69-80. https://doi.org/10.17161/bi.v15i2.13384.