def _reassign_bad_bins(classe, x, y):
"""
Implements steps (vi)-(vii) in section 5.1 of Cappellari & Copin (2003)
"""
# Find the centroid of all successful bins.
# CLASS = 0 are unbinned pixels which are excluded.
#
good = np.unique(classe[classe > 0])
xnode = ndimage.mean(x, labels=classe, index=good)
ynode = ndimage.mean(y, labels=classe, index=good)
# Reassign pixels of bins with S/N < targetSN
# to the closest centroid of a good bin
#
bad = classe == 0
index = voronoi_tessellation(x[bad], y[bad], xnode, ynode, [1])
classe[bad] = good[index]
# Recompute all centroids of the reassigned bins.
# These will be used as starting points for the CVT.
#
good = np.unique(classe)
xnode = ndimage.mean(x, labels=classe, index=good)
ynode = ndimage.mean(y, labels=classe, index=good)
return xnode, ynode
#----------------------------------------------------------------------------
评论列表
文章目录