Skip to main content

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

talus_python-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

talus_python-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

talus_python-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

talus_python-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (358.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

talus_python-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (358.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

talus_python-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (361.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Hashes for talus_python-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b13795e826531b63e4933bd7e13af764e4fbd95520bdfc24e39d05987db3c1f2
MD5 08a5f152e1f1ba84d3cc831e3aaf510f
BLAKE2b-256 ccaa65331b51ab09d129f4f0da3a4c03baf861c42e1354e9602e3e229d20c267

See more details on using hashes here.

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

Hashes for talus_python-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f93ce0ded05c1744f106aaa7328771421258f2e26031849e4af1e6a3ea93ad5f
MD5 5dfbf82476050ecc61f64da89066a81a
BLAKE2b-256 8249b6f0a544ad4861f712e1f61fc20224450e783ff551b3c665aec8dd5ef6cc

See more details on using hashes here.

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

Hashes for talus_python-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8db0a42993af15d9e25f3cb3facc7c3757d560314a4483b9e06e5c0a78f6a62e
MD5 afc83cf90534330b4e5394f64068a16b
BLAKE2b-256 241c3bfa69c4369b4b7cf3ee11bd7b6b72294d398f9cdc54f007a1ec24dde2a0

See more details on using hashes here.

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

Hashes for talus_python-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5fcb39e55d810e4075bb713fb314ce8d5a77a672d1cc48fc11a623f43e28c72e
MD5 72f3f37e2483eef537e3706e93f1706d
BLAKE2b-256 fdbdb7bfbf275317e52273123a3518b0f59c1a51ee229a0f45387e3220f55b0c

See more details on using hashes here.

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

Hashes for talus_python-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afb5e3d0689f334e122c73d5c434466a625254d8d9590c7454cf8ea04ddca795
MD5 5a102c5c8da63a5896c92c9a24cb8c4d
BLAKE2b-256 c6c39de842ce2745550c69e3c22a0b09c3a201841da3e199595e3bffa83a8447

See more details on using hashes here.

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

Hashes for talus_python-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1f81c14be9e23071d7f867c3712d5da96bca088231b2e32900f625f964ad8a6
MD5 560f7078b1ce0eb43439e070a639d5b0
BLAKE2b-256 9745dfddb337c017a09d03fce11409a8dc684501810a343ad4bac26cd62b6a92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page