Skip to content

Add connectivity and degree distribution diagnostics for generated graphs #109

@Moka-4444

Description

@Moka-4444

Problem Statement:
Currently, when generating flexible graphs for irregular or sparse data, there is no built-in automated way to verify if the resulting graph is 'well-balanced' (e.g., detecting nodes with extremely high/low degrees or isolated components) before passing it to neural-lam.

Proposed Solution:
I propose adding a diagnostic utility (e.g., in visualise/diagnostics.py or as part of the validation layer) that automatically calculates and reports:

Node Degree Distribution: To ensure message passing remains stable across the grid.

Connectivity Check: Identifying isolated nodes or disconnected clusters that could lead to NaN losses during training.

Spatial Density Mapping: A visualization helper to see how graph density aligns with the input data grid.

Impact:
This will significantly help contributors (like myself) who are working on Project 1 (Flexible Graph Construction) to benchmark different strategies (kNN, Radius, etc.) and ensure they meet the 'well-balanced' criteria mentioned in the GSoC ideas.

I’m happy to start drafting a PR for this if the maintainers agree this is a useful direction!
@joel Oskarsson @hauke Schulz @leif Denby.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions