diff --git a/src/diffpy/srmise/dataclusters.py b/src/diffpy/srmise/dataclusters.py index 3d68004..b881f17 100644 --- a/src/diffpy/srmise/dataclusters.py +++ b/src/diffpy/srmise/dataclusters.py @@ -172,7 +172,7 @@ def _setdata(self, x, y, res): self.lastcluster_idx = None return - def cluster_next_point(self): + def next(self): """Cluster point with largest y-coordinate left, returning self. next() always adds at least one additional point to the existing @@ -217,13 +217,14 @@ def cluster_next_point(self): else: # insert right of nearest cluster self.lastcluster_idx = nearest_cluster[0] + 1 - self.clusters = np.insert(self.clusters, int(self.lastcluster_idx), [test_idx, test_idx], 0) + self.clusters = np.insert(self.clusters, self.lastcluster_idx, [test_idx, test_idx], 0) return self def makeclusters(self): """Cluster all remaining data.""" - while self.current_idx > 0: - self.cluster_next_point() + for i in self: + pass + return def find_nearest_cluster2(self, x): """Return [cluster index, distance] for cluster nearest to x. @@ -285,8 +286,8 @@ def find_nearest_cluster(self, idx): # Calculate which of the two nearest clusters is closer distances = np.array( [ - self.x[idx] - self.x[self.clusters[int(near_idx) - 1, 1]], - self.x[idx] - self.x[self.clusters[int(near_idx), 0]], + self.x[idx] - self.x[self.clusters[near_idx - 1, 1]], + self.x[idx] - self.x[self.clusters[near_idx, 0]], ] ) if distances[0] < np.abs(distances[1]):