· 3 min read · Gaia Lab

GNNs for a lagoon's chlorophyll: does the graph add anything?

Predicting the chlorophyll of a coastal lagoon from Sentinel-2 imagery with spatiotemporal graph neural networks, and answering the question a reviewer asks: whether the graph contributes information or merely smooths. With an AutoML pilot for intrusion detection at the end of the period.

Graph of teal nodes connected by edges, with some nodes in red
Illustration generated for the series: a spatiotemporal graph.

Eighth instalment of Cluster X-ray. In the overview post this line appeared as intrusion detection. The scripts tell a different story: the graph networks are environmental, and intrusion detection arrives in September as a pilot.

The question #

Chlorophyll concentration is the most direct indicator of the state of a coastal lagoon: it anticipates eutrophication episodes and blooms. It can be estimated from satellite, but the relationship between reflectance and chlorophyll depends on the place, the moment and what is happening around it. The line asks whether a graph neural network that connects points of the lagoon in space and time predicts better than tabular models, and, above all, whether the graph contributes real information or merely acts as a smoother.

How it is approached #

The data are Sentinel-2 reflectances (C2X-Complex processor), in 5×5 and 9×9 pixel windows and at several depths, between 2016 and 2023. The graph is spatiotemporal: the nodes are points of the lagoon on each date, and the edges join them to their spatial neighbours and to their own earlier observations. GCN, GAT and GraphSAGE and their ensemble are compared, with Optuna for the hyperparameters and twenty seeds.

August’s experiments are the response to a paper review, and they are described with surgical precision in the scripts:

  • A. Spatiotemporal baselines without a graph (XGBoost, Gaussian processes) with a random split.
  • A2 and A2i. The GNN with a matched budget, in transductive and strictly inductive mode: “A2 − A2i quantifies what the graph gains from seeing the features of the held-out nodes”.
  • B and C. Honest temporal validation: train on 2016-2021 and test on 2022-2023, and leave one year out from 2018 to 2023.
  • D. Edge ablation: spatial only, temporal only, random preserving degree, uniformly random. “random_degree is the decisive arm: if it matches “full”, message passing acts as generic smoothing and the specific structure adds nothing”.
  • E. Graph structure learning with gates, “so that the mechanism is evaluated as a contribution and not demonstrated once”.

What is learned #

The design is already a lesson: the question of whether the graph adds anything is not answered with a table of errors, but with a control that preserves the graph’s statistics (each node’s degree) and destroys its structure. If that control performs the same, the GNN is an expensive smoother. And block-wise temporal validation guards against the usual trap of environmental time series: a random split lets the model see the future.

Alongside, the same person explored soil moisture with LSTM and CNN per plot, and in September opened the AutoML for intrusion detection pilot on the public CICIDS2017 dataset with Ray: thirty-four jobs, most of them short tests, and one full ten-hour run.

On the cluster #

45jobs162 hGPU hours reserved2,198 hCPU hours reserved20 May – 18 Sepperiod (2026)
Figures for the line: few jobs, very long ones.

The four tasks of the review array, one per depth, took between 30 and 38 hours each on an L40S: 135 of the line’s 162 GPU-hours.

Jobs by typeAutoML for intrusion detection (Sept.)AutoML for intrusion detection (Sept.): 34 · 76 %34 · 76 %Chlorophyll GNNsChlorophyll GNNs: 8 · 18 %8 · 18 %Leaf classificationLeaf classification: 1 · 2 %1 · 2 %Soil moisture (TF)Soil moisture (TF): 1 · 2 %1 · 2 %OtherOther: 1 · 2 %1 · 2 %
Jobs by type. The chlorophyll GNNs and, in September, the AutoML pilot.

The ninth and final instalment closes the series with the infrastructure that holds up the rest.


Figures from Slurm accounting (reserved capacity, not measured usage) and the archived sbatch files. Anonymised post: no identifiable users, paths, emails or project names. Quotations are from the script comments.