Coverage for python/lsst/analysis/tools/analysisMetrics/sourceMetrics.py: 50%
12 statements
« prev ^ index » next coverage.py v6.5.0, created at 2023-02-17 01:48 -0800
« prev ^ index » next coverage.py v6.5.0, created at 2023-02-17 01:48 -0800
1# This file is part of analysis_tools.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (https://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <https://www.gnu.org/licenses/>.
22from lsst.analysis.tools.actions.scalar import CountAction, FracThreshold
24from ..analysisParts.baseSources import BaseSources
25from ..interfaces import AnalysisMetric
27__all__ = ("CountSources",)
30class CountSources(AnalysisMetric, BaseSources):
31 """Counts associated and unassociated sources as
32 well as their percentage of the total sources."""
34 def setDefaults(self):
35 super().setDefaults()
37 self.process.calculateActions.associatedPercent = FracThreshold(
38 op="gt", threshold=1.0, vectorKey="nDiaSources"
39 )
40 self.process.calculateActions.unassociatedPercent = FracThreshold(
41 op="le", threshold=1.0, vectorKey="nDiaSources"
42 )
44 self.process.calculateActions.associatedCount = CountAction(vectorKey="associatedVector")
45 self.process.calculateActions.unassociatedCount = CountAction(vectorKey="unassociatedVector")
47 self.produce.units = {
48 "associatedPercent": "count",
49 "unassociatedPercent": "count",
50 "associatedCount": "count",
51 "unassociatedCount": "count",
52 "uniqueSources": "count",
53 }