TABLE_MERGE is a FORTRAN90 program which can be used to remove duplicate points from a file, or to merge points that are very close.
Initially, each point is in its own cluster. If two clusters are separated by a distance of less than the tolerance, then they are replaced by one cluster, whose representative point is the weighted sum of the two cluster representatives.
The clusters are repeatedly processed until all clusters are separated by a distance of at least the tolerance.
This algorithm may be useful when a dataset containing a number of points is given, and
Note that this procedure depends on the ordering of the points. If you have three points A < B < C separated by slightly less than the tolerance, then A and B will be merged or B and C will be merged, depending on the labels of the nodes. Thus this process is not a strictly geometric procedure.
Secondly, it should be obvious that the procedure may return points that were not input points, because of the use of centroids.
Third, this procedure does guarantee that the output points are separated by more than TOLERANCE units of distance.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
TABLE_MERGE is available in a FORTRAN90 version and a MATLAB version.
POINT_MERGE, a FORTRAN90 library which considers N points in M dimensional space, and counts or indexes the unique or "tolerably unique" items.
TABLE_BARPLOT_PPMA, a FORTRAN90 program which reads a table file and creates an ASCII Portable Pixel Map (PPM) bargraph of the data.
TABLE_BORDER, a FORTRAN90 program which adds a border (of zero values) to a table file.
TABLE_COLUMNS, a FORTRAN90 program which extracts specific columns of data from a table file.
TABLE_COLUMNS_PERMUTE, a FORTRAN90 program which permutes the columns of a table file.
TABLE_DELAUNAY, a FORTRAN90 program which computes the Delaunay triangulation of a set of points.
TABLE_HISTOGRAM, a FORTRAN90 program which makes a histogram of a set of points stored in a table file.
TABLE_IO, a FORTRAN90 library which supplies the routines used to read the TABLE file.
TABLE_LATINIZE, a FORTRAN90 program which reads a file of points and creates a "latinized" version by adjusting the data.
TABLE_ORTHONORMALIZE, a FORTRAN90 program which reads a file of points and orthonormalizes the columns.
TABLE_QUALITY, a FORTRAN90 program which reads a file of points and computes the quality of dispersion.
TABLE_RECORD_MATCH, a FORTRAN90 program which finds close records in a table file.
TABLE_SCALE, a FORTRAN90 program which multiplies the entries of a table file by a scale vector.
TABLE_SHIFT, a FORTRAN90 program which shifts the entries of a table file by a shift vector.
TABLE_STATS, a FORTRAN90 program which reads a table file and compute certain statistics.
TABLE_TET_MESH, a FORTRAN90 program which reads a table file of 3D data, and compute a tetrahedral mesh.
TABLE_TOP, a FORTRAN90 program which reads a table file of M-dimensional data and makes a table of plots of all pairs of coordinates.
TABLE_UNBORDER, a FORTRAN90 program which removes the border from a table file.
TABLE_UNIFORM_NOISE, a FORTRAN90 program which adds a uniform noise term to the data in a table file.
TABLE_VORONOI, a FORTRAN90 program which computes information about the Voronoi diagram of the points.
You can go up one level to the FORTRAN90 source codes.