LSSTApplications  1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
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