3Depict
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Enumerations | Functions | Variables
clusterAnalysis.cpp File Reference
#include "clusterAnalysis.h"
#include "filterCommon.h"
#include <queue>
#include <algorithm>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_eigen.h>
#include "../../common/gsl_helper.h"
#include "backend/plot.h"
Include dependency graph for clusterAnalysis.cpp:

Enumerations

enum  {
  KEY_CLUSTERANALYSIS_ALGORITHM, KEY_CORECLASSIFY_ENABLE, KEY_CORECLASSIFYDIST, KEY_CORECLASSIFYKNN,
  KEY_LINKDIST, KEY_BULKLINK_ENABLE, KEY_BULKLINK, KEY_ERODE_ENABLE,
  KEY_ERODEDIST, KEY_WANT_CLUSTERSIZEDIST, KEY_WANT_LOGSIZEDIST, KEY_WANT_COMPOSITIONDIST,
  KEY_WANT_CLUSTERMORPHOLOGY, KEY_WANT_CLUSTERID, KEY_NORMALISE_COMPOSITION, KEY_CROP_SIZE,
  KEY_SIZE_COUNT_BULK, KEY_CROP_NMIN, KEY_CROP_NMAX, KEY_BULK_ALL,
  KEY_CORE_OFFSET =100000, KEY_BULK_OFFSET =200000
}
 
enum  { NOCORE_ERR =1, NOBULK_ERR, CLUSTER_ERR_ENUM_END }
 
enum  { CLUSTER_LINK_ERODE, CLUSTER_ALGORITHM_ENUM_END }
 
enum  { COMPOSITION_NONE, COMPOSITION_UNNORMALISED, COMPOSITION_NORMALISED }
 

Functions

void makeFrequencyTable (const IonStreamData *i, const RangeFile *r, std::vector< std::pair< string, size_t > > &freqTable)
 
void makeCompositionTable (const IonStreamData *i, const RangeFile *r, std::vector< std::pair< string, float > > &compTable)
 
void computeEigenValues (gsl_matrix *m, size_t numRows, size_t numCols, vector< float > &resultValues, vector< Point3D > &resultVectors)
 
void computeMatrixEntries (const vector< IonHit > &atoms, const Point3D &clusterCentre, gsl_matrix *m)
 

Variables

const char SIZE_DIST_DATALABEL [] =NTRANS("Size Distribution")
 
const char CHEM_DIST_DATALABEL [] =NTRANS("Chemistry Distribution")
 
const float SPHERE_PRESEARCH_CUTOFF = 75
 
const bool WANT_COUNT_BULK_FORCROP =false
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
KEY_CLUSTERANALYSIS_ALGORITHM 
KEY_CORECLASSIFY_ENABLE 
KEY_CORECLASSIFYDIST 
KEY_CORECLASSIFYKNN 
KEY_LINKDIST 
KEY_BULKLINK_ENABLE 
KEY_BULKLINK 
KEY_ERODE_ENABLE 
KEY_ERODEDIST 
KEY_WANT_CLUSTERSIZEDIST 
KEY_WANT_LOGSIZEDIST 
KEY_WANT_COMPOSITIONDIST 
KEY_WANT_CLUSTERMORPHOLOGY 
KEY_WANT_CLUSTERID 
KEY_NORMALISE_COMPOSITION 
KEY_CROP_SIZE 
KEY_SIZE_COUNT_BULK 
KEY_CROP_NMIN 
KEY_CROP_NMAX 
KEY_BULK_ALL 
KEY_CORE_OFFSET 
KEY_BULK_OFFSET 

◆ anonymous enum

anonymous enum
Enumerator
NOCORE_ERR 
NOBULK_ERR 
CLUSTER_ERR_ENUM_END 

◆ anonymous enum

anonymous enum
Enumerator
CLUSTER_LINK_ERODE 
CLUSTER_ALGORITHM_ENUM_END 

◆ anonymous enum

anonymous enum
Enumerator
COMPOSITION_NONE 
COMPOSITION_UNNORMALISED 
COMPOSITION_NORMALISED 

Function Documentation

◆ computeEigenValues()

void computeEigenValues ( gsl_matrix *  m,
size_t  numRows,
size_t  numCols,
vector< float > &  resultValues,
vector< Point3D > &  resultVectors 
)

References ASSERT, RangeStreamData::enabledIons, RangeFile::getNumIons(), and RangeStreamData::rangeFile.

Referenced by computeMatrixEntries().

Here is the caller graph for this function:

◆ computeMatrixEntries()

void computeMatrixEntries ( const vector< IonHit > &  atoms,
const Point3D clusterCentre,
gsl_matrix *  m 
)

◆ makeCompositionTable()

void makeCompositionTable ( const IonStreamData i,
const RangeFile r,
std::vector< std::pair< string, float > > &  compTable 
)

References makeFrequencyTable().

Referenced by ClusterAnalysisFilter::refresh().

Here is the caller graph for this function:

◆ makeFrequencyTable()

void makeFrequencyTable ( const IonStreamData i,
const RangeFile r,
std::vector< std::pair< string, size_t > > &  freqTable 
)

Variable Documentation

◆ CHEM_DIST_DATALABEL

const char CHEM_DIST_DATALABEL[] =NTRANS("Chemistry Distribution")

◆ SIZE_DIST_DATALABEL

const char SIZE_DIST_DATALABEL[] =NTRANS("Size Distribution")

◆ SPHERE_PRESEARCH_CUTOFF

const float SPHERE_PRESEARCH_CUTOFF = 75

◆ WANT_COUNT_BULK_FORCROP

const bool WANT_COUNT_BULK_FORCROP =false