This is the python package for topological point features (TOPF), enabling the construction of point-level features in point clouds stemming from algebraic topology and differential geometry as described in Node-Level Topological Representation Learning on Point Clouds. 🪴
Although being a python package, TOPF requires an installation Julia because it uses the wonderful package Ripserer.jl
. After having installed Julia and set up PATH variables, you can install TOPF simply by running
pip install topf
TOPF currently works under macOS
and Linux
. Windows
is not supported.
Two Jupyter-Notebooks with example usage of TOPF with basic examples and 3d examples can be found in the examples folder.
TOPF is based on the paper 'Node-Level Topological Representation Learning on Point Clouds', Vincent P. Grande and Michael T. Schaub, 2024. If you find TOPF useful, please consider citing the paper:
@misc{grande2024topf,
title={Node-Level Topological Representation Learning on Point Clouds},
author={Vincent P. Grande and Michael T. Schaub},
year={2024},
eprint={2406.02300},
archivePrefix={arXiv},
primaryClass={math.AT}
}
TOPF depends on Julia
, the Julia package Ripserer.jl
, Python
and the Python packages numpy
, gudhi
, matplotlib
, scikit-learn
, scipy
, pandas
, and plotly
. The idea of how to fix Z/3Z cycles with faulty lifts to real coefficients was inspired by DreiMac's solution to the problem (for cocycles).
Any feedback, comments, or bug reports are welcome! Simply write an email to Vincent.