LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
ClusteringControl.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2012 LSST Corporation.
6  *
7  * This product includes software developed by the
8  * LSST Project (http://www.lsst.org/).
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the LSST License Statement and
21  * the GNU General Public License along with this program. If not,
22  * see <http://www.lsstcorp.org/LegalNotices/>.
23  */
24 
29 #ifndef LSST_AP_CLUSTER_CLUSTERINGCONTROL_H
30 #define LSST_AP_CLUSTER_CLUSTERINGCONTROL_H
31 
32 #include "lsst/pex/config.h"
33 #include "lsst/afw/geom/Angle.h"
34 
35 
36 namespace lsst { namespace ap { namespace cluster {
37 
43 
45  "Clustering distance (arcsec) to use when generating clusters with\n"
46  "the OPTICS algorithm. If a source S has at least minNeighbors\n"
47  "other sources within an angular separation of epsilonArcsec, then\n"
48  "it is always assigned to a cluster.\n");
49 
51  "The minimum cardinality of the epsilonArcsec-neighborhood of a source\n"
52  "S for S to be considered a core-source by the OPTICS algorithm. Core\n"
53  "sources are always assigned to a cluster, whereas sources with\n"
54  "epsilonArcsec-neighborhoods containing less than minNeighbors sources\n"
55  "may or may not be. If such a source is assigned to a cluster, it is\n"
56  "called a border source. Otherwise, it is called a noise source.\n"
57  "\n"
58  "This parameter is essentially a lower bound on the number of times\n"
59  "an astrophysical object must be detected before its detections are\n"
60  "clustered and turned into a catalog entry and can be tuned to avoid\n"
61  "generating too many spurious entries. To ensure that every source is\n"
62  "assigned to a cluster, set the value to zero. However, setting the\n"
63  "value to a non-negligeable fraction of the number of times the sky is\n"
64  "covered by the data-set in question will typically result in better\n"
65  "clusters. There is currently no way to adjust the value to account\n"
66  "for data-sets with non uniform coverage.\n");
67 
69  "A performance tuning parameter for the k-d tree used internally by\n"
70  "the OPTICS implementation. The height of the tree is picked such\n"
71  "that no leaf will contain more than pointsPerLeaf sources. A value\n"
72  "in the tens of sources is generally a good pick.\n");
73 
75  "A performance tuning parameter for the k-d tree used internally by\n"
76  "the OPTICS implementation. Nodes that have a maximum extent below\n"
77  "this threshold value in each dimension are not subdivided. The value\n"
78  "should be of the same order as epsilonArcsec - nodes much smaller\n"
79  "than this are useless in the sense that the sources belonging to\n"
80  "such a node become increasingly likely to all lie in the\n"
81  "neighborhood of a query point. Note also that the k-d tree\n"
82  "implementation does not store bounding boxes for nodes, meaning\n"
83  "that an entire node cannot be determined to satisfy a range\n"
84  "query without traversal of its children/contents. This saves on tree\n"
85  "size, and makes sense for the target use-case because query regions\n"
86  "are typically very small.\n");
87 
90  }
91 
94  }
95 
96  void validate() const;
97 };
98 
99 }}} // namespace lsst::ap::cluster
100 
101 #endif // LSST_AP_CLUSTER_CLUSTERINGCONTROL_H
102 
double epsilonArcsec
&quot;Clustering distance (arcsec) to use when generating clusters with\n&quot; &quot;the OPTICS algorithm...
std::vector< SourceCatalog > const cluster(SourceCatalog const &sources, ClusteringControl const &control)
Definition: clustering.cc:578
double leafExtentThresholdArcsec
&quot;A performance tuning parameter for the k-d tree used internally by\n&quot; &quot;the OPTICS implementation...
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
Definition: config.h:36
lsst::afw::geom::Angle const getLeafExtentThreshold() const
int pointsPerLeaf
&quot;A performance tuning parameter for the k-d tree used internally by\n&quot; &quot;the OPTICS implementation...
int minNeighbors
&quot;The minimum cardinality of the epsilonArcsec-neighborhood of a source\n&quot; &quot;S for S to be considered a...
lsst::afw::geom::Angle const getEpsilon() const
Parameters for the clustering algorithm and its internals.
AngleUnit const arcseconds
Definition: Angle.h:95