Skip to content

Giuseppe499/GraphIF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python lint Python format

Graph Iterative Filtering

This repository contains the implementation of the Graph Iterative Filtering (Graph IF) algorithms, an extension of the Iterative Filtering method to graph signals. The Graph IF algorithms are designed to decompose graph signals into Intrinsic Mode Functions (IMFs) based on the graph structure.

This repository contains two algorithms:

  • The Graph Fourier Transform Iterative Filtering (GFT IF) algorithm, which operates in the graph spectral domain.
  • The Distance Based Iterative Filtering (DB IF) algorithm, which operates in the vertex domain using windows empirically defined based on a distance on the graph.

Furthermore, some example scripts are provided to demonstrate the usage of the Graph IF algorithms. Those scripts are named as in the related paper:

Graph Iterative Filtering methods for the analysis of nonstationary signals on graphs

Repository Structure

The root directory contains example scripts to demonstrate the Graph IF algorithms. The graphIF module with the implementation of the algorithms and related utilities is located in the src/graphIF directory. To run the example scripts, ensure you have the necessary dependencies installed (see Usage section).

The example scripts are named as the examples in the paper plus the name of the algorithm used. For instance:

  • example_1_DB_IF.py: DB-IF algorithm applied to a random ring graph (Example 1 in the paper).
  • example_2_GFT_IF.py: GFT-IF algorithm applied to the Delaunay triangulation of random points in a 2D square (Example 2 in the paper).
  • example_3_DB_IF.py: DB-IF algorithm applied to seismic data (Example 3 in the paper).
  • example_4_GFT_IF.py: GFT-IF algorithm applied to the Total Electron Content (TEC) over Italy (Example 4 in the paper).

This repository also includes the graphIF module, which contains the implementation of the Graph IF algorithms and related utilities. The module is located in src/graphIF.

Usage

First, clone the repository:

git clone git@github.com:Giuseppe499/GraphIF.git

Then, install the requirements which are listed in the pyproject.toml file. You can use uv (recommended) or pip. We also suggest using a virtual environment to manage dependencies.

run

uv sync

or

pip install .

To run the example scripts, activate the virtual environment (if used) and execute the scripts using Python:

python example_1_DB_IF.py

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages