pygmi.clust package¶
Submodules¶
pygmi.clust.cluster module¶
Main Clustering set of routines.
- class pygmi.clust.cluster.Cluster(parent=None)¶
Bases:
BasicModule
Cluster Class.
- acceptall()¶
Run the cluster analysis.
- Return type:
None.
- combo()¶
Set up combo box.
- Return type:
None.
- saveproj()¶
Save project data from class.
- Return type:
None.
- settings(nodialog=False)¶
Entry point into item.
- Parameters:
nodialog (bool, optional) – Run settings without a dialog. The default is False.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- setupui()¶
Set up UI.
- Return type:
None.
- update_vars()¶
Update the variables.
- Return type:
None.
pygmi.clust.crisp_clust module¶
Main Crisp Clustering set of routines.
- class pygmi.clust.crisp_clust.CrispClust(parent=None)¶
Bases:
BasicModule
Crisp Cluster Class.
- acceptall()¶
Process the data.
- Return type:
None.
- combo()¶
Set up combo box.
- Return type:
None.
- crisp_means(data, no_clust, cent, centfix, maxit, term_thresh, cltype, cov_constr)¶
Script enables the crisp clustering of COMPLETE multi-variate datasets.
- Parameters:
data (numpy array) – N x P matrix containing the data to be clustered, N is number of samples, P is number of different attributes available for each sample.
no_clust (int) – Number of clusters to be used.
cent (numpy array) – cluster centre positions, either empty [] –> randomly guessed center positions will be used for initialisation or NO_CLUSTxP matrix
centfix (numpy array) – Constrains the position of cluster centers, if CENTFIX is empty, cluster centers can freely vary during cluster analysis, otherwise CENTFIX is of equal size to CENT and gives an absolute deviation from initial center positions that should not be exceeded during clustering. Note, CETNFIX applies only if center values are provided by the user.
maxit (int) – number of maximal allowed iterations.
term_thresh (float) – Termination threshold, either empty [] –> go for the maximum number of iterations MAXIT or a scalar giving the minimum reduction of the size of the objective function for two consecutive iterations in Percent.
cltype (str) – either ‘kmeans’ –> kmeans cluster analysis (spherically shaped cluster), ‘det’ –> uses the determinant criterion of Spath, H., “Cluster-Formation and Analyse, chapter3” (ellipsoidal clusters, all cluster use the same ellipsoid), or ‘vardet’ –> Spath, H., chapter 4 (each cluster uses its individual ellipsoid). Note: the latter is the crisp version of the Gustafson-Kessel algorithm
cov_constr (float) – scalar between [0 1], values > 0 trim the covariance matrix to avoid needle-like ellipsoids for the clusters, applies only for cltype=’vardet’, but must always be provided.
- Returns:
idx (numpy array) – cluster index number for each sample after the last iteration, column vector.
cent (numpy array) – matrix with cluster centre positions after last iteration, one cluster centre per row
obj_fcn (numpy array) – Vector, size of the objective function after each iteration
vrc (numpy array) – Variance Ratio Criterion
- saveproj()¶
Save project data from class.
- Return type:
None.
- settings(nodialog=False)¶
Entry point into item.
- Parameters:
nodialog (bool, optional) – Run settings without a dialog. The default is False.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- setupui()¶
Set up UI.
- Return type:
None.
- update_vars()¶
Update the variables.
- Return type:
None.
- pygmi.clust.crisp_clust.gcentroids(data, index, no_clust, mindist)¶
G Centroids.
- Parameters:
data (numpy array) – Input data.
index (numpy array) – Cluster index number for each sample.
no_clust (int) – Number of clusters to be used.
mindist (numpy array) – Minimum distances.
- Returns:
centroids (numpy array) – Centroids
index (numpy array) – Index
- pygmi.clust.crisp_clust.gdist(data, center, index, no_clust, cltype, cov_constr)¶
G Dist routine.
- Parameters:
data (numpy array) – Input data.
center (numpy array) – center of each class.
index (numpy array) – Cluster index number for each sample.
no_clust (int) – Number of clusters to be used.
cltype (str) – Clustering type.
cov_constr (float) – scalar between [0 1].
- Returns:
bigd – Output data.
- Return type:
numpy array
pygmi.clust.fuzzy_clust module¶
Fuzzy clustering.
- class pygmi.clust.fuzzy_clust.FuzzyClust(parent=None)¶
Bases:
BasicModule
Fuzzy Clustering class.
- acceptall()¶
Run.
- Return type:
None.
- combo()¶
Set up combo box.
- Return type:
None.
- fuzzy_means(data, no_clust, init, centfix, maxit, term_thresh, expo, cltype, cov_constr)¶
Fuzzy clustering.
Finds NO_CLUST clusters in the data set DATA.. Supported algorithms are fuzzy c-means, Gustafson-Kessel, advanced fuzzy c-means.
- Parameters:
data (numpy array) – DATA is size M-by-N, where M is the number of samples and N is the number of coordinates (attributes) for each sample.
no_clust (int) – Number of clusters.
init (numpy array) – INIT may be set to [], in this case the FCM generates random initial center locations to start the algorithm. Alternatively, INIT can be of matrix type, either containing a user-given membership matrix [NO_CLUST M] or a cluster center matrix [NO_CLUST, N].
centfix (numpy array) – Constrains the position of cluster centers.
maxit (int) – MAXIT give the maximum number of iterations..
term_thresh (float) – Gives the required minimum improvement in per cent per iteration. (termination threshold)
expo (float) – Fuzzification exponent.
cltype (str) – either ‘FCM’ for fuzzy c-means (spherically shaped clusters), ‘DET’ for advanced fuzzy c-means (ellipsoidal clusters, all clusters use the same ellipsoid), or ‘GK’ for Gustafson-Kessel clustering (ellipsoidal clusters, each cluster uses its own ellipsoid).
cov_constr (float) – COV_CONSTR applies only to the GK algorithm. constrains the cluster shape towards spherical clusters to avoid needle-like clusters. COV_CONSTR = 1 make the GK algorithm equal to the FCM algorithm, COV_CONSTR = 0 results in no constraining of the covariance matrices of the clusters.
- Returns:
uuu (numpy array) – This membership function matrix contains the grade of membership of each data sample to each cluster.
cent (numpy array) – The coordinates for each cluster center are returned in the rows of the matrix CENT.
obj_fcn (numpy array) – At each iteration, an objective function is minimized to find the best location for the clusters and its values are returned in OBJ_FCN.
vrc (numpy array) – Variance ration criterion.
nce – Normalised class entropy.
xbi (numpy array) – Xie beni index.
- saveproj()¶
Save project data from class.
- Return type:
None.
- settings(nodialog=False)¶
Entry point into item.
- Parameters:
nodialog (bool, optional) – Run settings without a dialog. The default is False.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- setupui()¶
Set up UI.
- Return type:
None.
- update_vars()¶
Update the variables.
- Return type:
None.
- pygmi.clust.fuzzy_clust.fuzzy_dist(cent, data, uuu, expo, cltype, cov_constr)¶
Fuzzy distance.
- Parameters:
cent (numpy array) – Class centers.
data (numpy array) – Input data.
uuu (numpy array) – Membership function matrix.
expo (float) – Fuzzification exponent.
cltype (str) – Clustering type.
cov_constr (float) – Applies only to the GK algorithm. constrains the cluster shape towards spherical clusters.
- Returns:
ddd – Output data.
- Return type:
numpy array
- pygmi.clust.fuzzy_clust.xie_beni(data, expo, uuu, center, edist)¶
Xie Beni.
Calculates the Xie-Beni index accepts missing values when given as nan elements in the data base) min xbi is optimal
- Parameters:
data (numpy array) – input dataset
expo (float)
uuu (numpy array) – membership matrix (FCM) or cluster index values (k-means)
center (numpy array) – cluster centers
edist (numpy array)
- Returns:
xbi – xie beni index
- Return type:
numpy array
pygmi.clust.graphs module¶
Plot Cluster Data.
- class pygmi.clust.graphs.GraphWindow(parent=None)¶
Bases:
ContextModule
Graph Window.
- change_band()¶
Combo to change band.
- Return type:
None.
- class pygmi.clust.graphs.MyMplCanvas(parent=None)¶
Bases:
FigureCanvasQTAgg
Canvas for the actual plot.
- axes¶
- Type:
matplotlib subplot
- parent¶
reference to the parent routine
- Type:
parent
- update_classes(data1)¶
Update the plot.
- Parameters:
data1 (PyGMI Data.) – Input raster dataset.
- Return type:
None.
- update_membership(data1, mem)¶
Update membership plot.
- Parameters:
data1 (PyGMI Data.) – Raster dataset.
mem (int) – Membership.
- Return type:
None.
- update_scatter(x, y)¶
Update the scatter plot.
- Parameters:
x (numpy array) – X coordinates (Number of classes).
y (numpy array) – Y Coordinates.
- Return type:
None.
- update_wireframe(x, y, z)¶
Update wireframe plot.
- Parameters:
x (numpy array) – Iteration number.
y (numpy array) – Number of classes.
z (numpy array) – z coordinate.
- Return type:
None.
- class pygmi.clust.graphs.PlotMembership(parent=None)¶
Bases:
GraphWindow
Plot Fuzzy Membership data.
- change_band()¶
Combo to change band.
- Return type:
None.
- change_band_two()¶
Combo box to choose band.
- run()¶
Run.
- Return type:
None.
- class pygmi.clust.graphs.PlotRaster(parent=None)¶
Bases:
GraphWindow
Plot Raster Class.
- change_band()¶
Combo to change band.
- Return type:
None.
- run()¶
Run.
- Return type:
None.
- class pygmi.clust.graphs.PlotVRCetc(parent=None)¶
Bases:
GraphWindow
Plot VRC, NCE, OBJ and XBI.
- change_band()¶
Combo to change band.
- Return type:
None.
- run()¶
Run.
- Return type:
None.
pygmi.clust.graphtool module¶
Multi-function graphing tool for use with cluster analysis.
- class pygmi.clust.graphtool.GraphHist(parent=None)¶
Bases:
FigureCanvasQTAgg
Graph Hist.
- get_clust_scat(bins, dattmp, ctmp)¶
Routine to get the scattergram with cluster overlay.
- Parameters:
bins (int) – Number of bins.
dattmp (list of PyGMI Data) – Data.
ctmp (list) – Cluster indices.
- Returns:
xymahist – Output data.
- Return type:
numpy array
- get_hist(bins)¶
Routine to get the scattergram with histogram overlay.
- Parameters:
bins (int) – Number of bins.
- Returns:
xymahist – Output data.
- Return type:
numpy array
- init_graph()¶
Initialize the Graph.
- Return type:
None.
- polyint()¶
Polygon Interactor routine.
- Return type:
None.
- setup_coords()¶
Routine to setup the coordinates for the scattergram.
- Return type:
None.
- setup_hist()¶
Routine to setup the 1D histograms.
- Return type:
None.
- update_graph(clearaxis=False)¶
Draw Routine.
- Parameters:
clearaxis (bool, optional) – True to clear the axis. The default is False.
- Return type:
None.
- class pygmi.clust.graphtool.GraphMap(parent=None)¶
Bases:
FigureCanvasQTAgg
Graph Map.
- parent¶
reference to the parent routine
- Type:
parent
- init_graph()¶
Initialize the Graph.
- Return type:
None.
- polyint()¶
Polygon Integrator.
- Return type:
None.
- update_graph()¶
Draw routine.
- Return type:
None.
- class pygmi.clust.graphtool.PolygonInteractor(axtmp, pntxy)¶
Bases:
QObject
Polygon Interactor for the graph tool.
- Parameters:
showverts (bool)
epsilon (int)
polyi_changed (signal)
- button_press_callback(event)¶
Button press callback.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Return type:
None.
- button_release_callback(event)¶
Button release callback.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Return type:
None.
- draw_callback()¶
Draw callback.
- Return type:
None.
- epsilon = 5¶
- get_ind_under_point(event)¶
Get the index of vertex under point if within epsilon tolerance.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Returns:
ind – Index of vertex under point.
- Return type:
int or None
- motion_notify_callback(event)¶
Mouse notify callback.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Return type:
None.
- new_poly(npoly)¶
Create new Polygon.
- Parameters:
npoly (list) – New polygon coordinates.
- Return type:
None.
- polyi_changed¶
polygon changed signal.
- showverts = True¶
- update_plots()¶
Update plots.
- Return type:
None.
- class pygmi.clust.graphtool.ScatterPlot(parent=None)¶
Bases:
BasicModule
Main Graph Tool Routine.
- on_cp_combo()¶
On cp combo.
- Return type:
None.
- on_cp_combo2()¶
On cp combo 2.
- Return type:
None.
- on_cp_combo3()¶
On cp combo 3.
- Return type:
None.
- on_cp_dpoly()¶
On cp delete polygon.
- Return type:
None.
- on_map_combo()¶
On map combo.
- Return type:
None.
- on_map_combo2()¶
On map combo 2.
- Return type:
None.
- on_map_dpoly()¶
On map delete polygon.
- Return type:
None.
- saveproj()¶
Save project data from class.
- Return type:
None.
- settings(nodialog=False)¶
Entry point into item.
- Parameters:
nodialog (bool, optional) – Run settings without a dialog. The default is False.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- setupui()¶
Set up UI.
- Return type:
None.
- update_hist()¶
Update histogram.
- Return type:
None.
- update_map()¶
Update map.
- Return type:
None.
- pygmi.clust.graphtool.dist_point_to_segment(p, s0, s1)¶
Dist point to segment.
Reimplementation of Matplotlib’s dist_point_to_segment, after it was depreciated. Follows http://geomalgorithms.com/a02-_lines.html
- Parameters:
p (numpy array) – Point.
s0 (numpy array) – Start of segment.
s1 (numpy array) – End of segment.
- Returns:
Distance of point to segment.
- Return type:
numpy array
pygmi.clust.segmentation module¶
Image segmentation routines.
- class pygmi.clust.segmentation.ImageSeg(parent=None)¶
Bases:
BasicModule
Image Segmentation.
- saveproj()¶
Save project data from class.
- Return type:
None.
- segment1(data, scale=500, wcolor=0.5, wcompact=0.5, doshape=True)¶
Segment Part 1.
- Parameters:
data (numpy array) – Input data.
scale (int, optional) – Scale. The default is 500.
wcolor (float, optional) – Colour weight. The default is 0.5.
wcompact (float, optional) – Compactness weight. The default is 0.5.
doshape (bool, optional) – Perform shape segmentation. The default is True.
- Returns:
omap – Output data.
- Return type:
numpy array
- settings(nodialog=False)¶
Entry point into item.
- Parameters:
nodialog (bool, optional) – Run settings without a dialog. The default is False.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- setupui()¶
Set up UI.
- Return type:
None.
- pygmi.clust.segmentation.get_l(data)¶
Get bounding box length.
- Parameters:
data (numpy array) – Input data.
- Returns:
ltmp – Bounding box length.
- Return type:
int
pygmi.clust.super_class module¶
Supervised Classification tool.
- class pygmi.clust.super_class.GraphMap(parent=None)¶
Bases:
FigureCanvasQTAgg
Graph Map.
- parent¶
reference to the parent routine
- Type:
parent
- compute_initial_figure(dat)¶
Compute initial figure.
- Parameters:
dat (PyGMI Data) – PyGMI dataset.
- Return type:
None.
- polyint(dat)¶
Polygon integrator.
- Return type:
None.
- update_plot(dat)¶
Update plot.
- Parameters:
dat (Dictionary) – PyGMI dataset/s in a dictionary.
- Return type:
None.
- class pygmi.clust.super_class.PolygonInteractor(axtmp, pntxy)¶
Bases:
QObject
Polygon Interactor for the supervised classification tool.
- Parameters:
showverts (bool)
epsilon (int)
polyi_changed (signal)
- button_press_callback(event)¶
Button press callback.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Return type:
None.
- button_release_callback(event)¶
Button release callback.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse Event.
- Return type:
None.
- draw_callback(event=None)¶
Draw callback.
- Parameters:
event (matplotlib.backend_bases.DrawEvent, optional) – Draw event object. The default is None.
- Return type:
None.
- epsilon = 5¶
- get_ind_under_point(event)¶
Get the index of vertex under point if within epsilon tolerance.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Returns:
ind – Index of vertex under point.
- Return type:
int or None
- motion_notify_callback(event)¶
Motion notify on mouse movement.
- Parameters:
event (matplotlib.backend_bases.MouseEvent) – Mouse event.
- Return type:
None.
- new_poly(npoly=None)¶
Create new polygon.
- Parameters:
npoly (list or None, optional) – New polygon coordinates.
- Return type:
None.
- polyi_changed¶
polygon changed signal.
- showverts = True¶
- update_plots()¶
Update plots.
- Return type:
None.
- class pygmi.clust.super_class.SuperClass(parent=None)¶
Bases:
BasicModule
Main Supervised Classification Tool Routine.
- calc_metrics()¶
Calculate metrics.
- Return type:
None.
- class_change()¶
Routine called when current classification choice changes.
- Return type:
None.
- init_classifier()¶
Initialise classifier.
- Returns:
classifier (object) – Scikit learn classification object.
lbls (numpy array) – Class labels.
datall (numpy array) – Dataset.
X_test (numpy array) – X test dataset.
y_test (numpy array) – Y test dataset.
tlbls (numpy array) – Class labels.
- load_shape()¶
Load shapefile.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- on_apoly()¶
On add polygon.
- Return type:
None.
- on_combo()¶
On combo.
- Return type:
None.
- on_dpoly()¶
On delete polygon.
- Return type:
None.
- oncellchange(row, col)¶
Routine activated whenever a cell is changed.
- Parameters:
row (int) – Current row.
col (int) – Current column.
- Return type:
None.
- onrowchange(current, previous)¶
Routine activated whenever a row is changed.
- Parameters:
current (QTableWidgetItem) – current item.
previous (QTableWidgetItem) – previous item.
- Return type:
None.
- save_shape()¶
Save shapefile.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- saveproj()¶
Save project data from class.
- Return type:
None.
- settings(nodialog=False)¶
Entry point into item.
- Parameters:
nodialog (bool, optional) – Run settings without a dialog. The default is False.
- Returns:
True if successful, False otherwise.
- Return type:
bool
- setupui()¶
Set up UI.
- Return type:
None.
- update_class_polys()¶
Update class poly summaries.
- updatepoly(xycoords=None)¶
Update polygon.
- Parameters:
xycoords (numpy array, optional) – x, y coordinates. The default is None.
- Return type:
None.
- pygmi.clust.super_class.dist_point_to_segment(p, s0, s1)¶
Dist point to segment.
Reimplementation of Matplotlib’s dist_point_to_segment, after it was depreciated. Follows http://geomalgorithms.com/a02-_lines.html
- Parameters:
p (numpy array) – Point.
s0 (numpy array) – Start of segment.
s1 (numpy array) – End of segment.
- Returns:
Distance of point to segment.
- Return type:
numpy array
pygmi.clust.var_ratio module¶
Variance Ratio.
- pygmi.clust.var_ratio.var_ratio(data, uuu, center, dist_orig)¶
Variance Ratio.
Calculates the Variance ratio criterion after Calinski and Harabasz, 1974. Does not accept missing data. Max VRC is optimal. U can either be membership matrix (FCM) or cluster index values (k-means)
- Parameters:
data (numpy array) – input dataset
uuu (numpy array) – membership matrix (FCM) or cluster index values (k-means)
center (numpy array) – cluster centers
dist_orig (numpy array)
- Returns:
vrc – variance ration criterion
- Return type:
numpy array
Module contents¶
Cluster analysis routines