multidim.PointCloud.sever¶
-
PointCloud.
sever
()¶ Subdivide a SimplicialComplex or PointCloud into several smaller partitions, using the known 0-dimensional persistence diagram. This is an iterator (it _yields_ the terms).
Two points end up in the same partition if and only if they are connected by a sequence of edges of length < cutoff.
Yields: - pairs (indices, subpointcloud) of persistently connected
- SimplicialComplexes/PointClouds.
- The first term gives indices of the these points from the original `PointCloud`
- The second term gives a new `PointCloud` with its own sequential index.
See also
make_pers0()
- func:
reset
Notes
This uses the 0-dimensional Persistence Diagram; therefore, you should run self.reset() and self.make_pers0(cutoff) first.
Examples
>>> pc = PointCloud(np.array([[0.,0.],[0.,0.5],[1.,0.],[5.,0.],[6.,0.],[5.,-0.6]]), max_length=-1.0) >>> pc.make_pers0(cutoff=1.9) >>> for indices,sub_pc in pc.sever(): ... print(indices) ... print(sub_pc) ... print(sub_pc.coords) [0 1 2] A SimplicialComplex with 3 points, 0 edges, and 0 faces. 0 1 0 0.0 0.0 1 0.0 0.5 2 1.0 0.0 [3 4 5] A SimplicialComplex with 3 points, 0 edges, and 0 faces. 0 1 0 5.0 0.0 1 6.0 0.0 2 5.0 -0.6