Rust-powered computational topology
Project description
Talus
Fast partitioning of point-cloud data (or graphs) according to a real-valued function over the points. These partitions correspond to regions that flow to some local minima or maxima - as a concrete example, if applied to topography data using elevation as the real-valued function, partitioning by local minima would correspond to watersheds. Furthermore, also computes how persistent each partition is. In the topography example, if we partitioned by maxima, then these persistence values would correspond to the topographical prominence of the peaks in a given landscape.
Example Usage
import networkx as nx
import talus_python.morse as morse
node_locs = [(0, 3), (1, -1), (2, 10), (3, 2), (4, 7)]
nodes = [
morse.MorseNode(identifier=i, value=i, vector=list(v))
for i, v in enumerate(node_locs)
]
G = nx.Graph()
for node in nodes:
G.add_node(node)
G.add_edge(nodes[0], nodes[1])
G.add_edge(nodes[0], nodes[3])
G.add_edge(nodes[1], nodes[2])
G.add_edge(nodes[1], nodes[4])
G.add_edge(nodes[3], nodes[4])
ms_complex = morse.MorseSmaleComplex.from_graph(G)
result = ms_complex.morse_data
# See what local maxima each node was assigned to
print("Assignments:", result.ascending_complex.complex.complex)
# See how persistent each local maxima is
print("Persistence:", result.ascending_complex.complex.lifetimes)
# Show the node partitions at a certain timestep in the filtration
print("Partitions:", result.ascending_complex.compute_cells_at_lifetime(0))
Assignments: {0: 4, 3: 4, 1: 4, 4: 4, 2: 2}
Persistence: {1: 0.0, 3: 0.0, 2: 1.0, 0: 0.0, 4: inf}
Partitions: {2: [2], 4: [0, 3, 1, 4]}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file talus_python-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: talus_python-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 354.6 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Bazzite","version":"43","id":"Kinoite","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b13795e826531b63e4933bd7e13af764e4fbd95520bdfc24e39d05987db3c1f2
|
|
| MD5 |
08a5f152e1f1ba84d3cc831e3aaf510f
|
|
| BLAKE2b-256 |
ccaa65331b51ab09d129f4f0da3a4c03baf861c42e1354e9602e3e229d20c267
|
File details
Details for the file talus_python-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: talus_python-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 354.9 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Bazzite","version":"43","id":"Kinoite","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f93ce0ded05c1744f106aaa7328771421258f2e26031849e4af1e6a3ea93ad5f
|
|
| MD5 |
5dfbf82476050ecc61f64da89066a81a
|
|
| BLAKE2b-256 |
8249b6f0a544ad4861f712e1f61fc20224450e783ff551b3c665aec8dd5ef6cc
|
File details
Details for the file talus_python-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: talus_python-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 354.6 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Bazzite","version":"43","id":"Kinoite","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8db0a42993af15d9e25f3cb3facc7c3757d560314a4483b9e06e5c0a78f6a62e
|
|
| MD5 |
afc83cf90534330b4e5394f64068a16b
|
|
| BLAKE2b-256 |
241c3bfa69c4369b4b7cf3ee11bd7b6b72294d398f9cdc54f007a1ec24dde2a0
|
File details
Details for the file talus_python-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: talus_python-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 358.3 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Bazzite","version":"43","id":"Kinoite","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fcb39e55d810e4075bb713fb314ce8d5a77a672d1cc48fc11a623f43e28c72e
|
|
| MD5 |
72f3f37e2483eef537e3706e93f1706d
|
|
| BLAKE2b-256 |
fdbdb7bfbf275317e52273123a3518b0f59c1a51ee229a0f45387e3220f55b0c
|
File details
Details for the file talus_python-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: talus_python-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 358.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Bazzite","version":"43","id":"Kinoite","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afb5e3d0689f334e122c73d5c434466a625254d8d9590c7454cf8ea04ddca795
|
|
| MD5 |
5a102c5c8da63a5896c92c9a24cb8c4d
|
|
| BLAKE2b-256 |
c6c39de842ce2745550c69e3c22a0b09c3a201841da3e199595e3bffa83a8447
|
File details
Details for the file talus_python-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: talus_python-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 361.8 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Bazzite","version":"43","id":"Kinoite","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1f81c14be9e23071d7f867c3712d5da96bca088231b2e32900f625f964ad8a6
|
|
| MD5 |
560f7078b1ce0eb43439e070a639d5b0
|
|
| BLAKE2b-256 |
9745dfddb337c017a09d03fce11409a8dc684501810a343ad4bac26cd62b6a92
|