Motivation
Currently weather-model-graphs only supports rectilinear mesh layouts.
This limits neural-lam to datasets on regular grids, excluding:
- Unstructured NWP model output (e.g. ICON icosahedral, OpenIFS)
- Sparse observational data (ship tracks, surface stations, radiosondes)
Proposed Solution
Introduce mesh_layout="delaunay" as a new archetype that:
- Accepts an arbitrary set of (lat, lon) coordinates as input
- Computes a Delaunay triangulation via
scipy.spatial.Delaunay
- Optionally applies Lloyd relaxation for mesh quality improvement
- Builds g2m, m2m, m2g edges using KD-tree neighbour search
- Returns output in the same NetworkX format as existing archetypes
Graph Quality Metrics
Alongside this, I propose adding a wmg.metrics.graph_quality_report()
function that computes:
- Node degree variance
- Edge length coefficient of variation
- Triangle quality (min angle distribution)
- Coverage ratio
Questions for maintainers
- Is
mesh_layout="delaunay" the right API extension point, or would
you prefer a separate factory function?
- Should sparse observational data (different node type from mesh nodes)
be handled in the same PR or a follow-up?
This is part of my GSoC 2026 proposal for Project 1 (Flexible Graph Construction).
— Saksham Jain (@jainsaksham2006)
Motivation
Currently
weather-model-graphsonly supports rectilinear mesh layouts.This limits neural-lam to datasets on regular grids, excluding:
Proposed Solution
Introduce
mesh_layout="delaunay"as a new archetype that:scipy.spatial.DelaunayGraph Quality Metrics
Alongside this, I propose adding a
wmg.metrics.graph_quality_report()function that computes:
Questions for maintainers
mesh_layout="delaunay"the right API extension point, or wouldyou prefer a separate factory function?
be handled in the same PR or a follow-up?
This is part of my GSoC 2026 proposal for Project 1 (Flexible Graph Construction).
— Saksham Jain (@jainsaksham2006)