Coverage for python/lsst/pipe/tasks/match_tract_catalog_probabilistic.py: 81%

21 statements  

« prev     ^ index     » next       coverage.py v7.2.5, created at 2023-05-08 01:41 -0700

1# This file is part of pipe_tasks. 

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/>. 

21 

22__all__ = [ 

23 'MatchTractCatalogProbabilisticConfig', 'MatchTractCatalogProbabilisticTask', 

24] 

25 

26import lsst.afw.geom as afwGeom 

27from lsst.meas.astrom.match_probabilistic_task import MatchProbabilisticTask 

28from lsst.meas.astrom.matcher_probabilistic import MatchProbabilisticConfig 

29import lsst.pipe.base as pipeBase 

30 

31from .match_tract_catalog import MatchTractCatalogSubConfig, MatchTractCatalogSubTask 

32 

33import pandas as pd 

34from typing import Set 

35 

36 

37class MatchTractCatalogProbabilisticConfig(MatchProbabilisticConfig, MatchTractCatalogSubConfig): 

38 """Config class for the MatchTractCatalogSubTask to define methods returning 

39 values that depend on multiple config settings. 

40 """ 

41 

42 @property 

43 def columns_in_ref(self) -> Set[str]: 

44 return super().columns_in_ref 

45 

46 @property 

47 def columns_in_target(self) -> Set[str]: 

48 return super().columns_in_target 

49 

50 

51class MatchTractCatalogProbabilisticTask(MatchProbabilisticTask, MatchTractCatalogSubTask): 

52 """An abstract interface for subtasks of MatchTractCatalogTask to match 

53 two tract object catalogs. 

54 

55 Parameters 

56 ---------- 

57 **kwargs 

58 Additional arguments to be passed to the `lsst.pipe.base.Task` 

59 constructor. 

60 """ 

61 ConfigClass = MatchTractCatalogProbabilisticConfig 

62 

63 def __init__(self, **kwargs): 

64 super().__init__(**kwargs) 

65 

66 def run( 

67 self, 

68 catalog_ref: pd.DataFrame, 

69 catalog_target: pd.DataFrame, 

70 wcs: afwGeom.SkyWcs = None, 

71 ) -> pipeBase.Struct: 

72 """Match sources in a reference tract catalog with a target catalog. 

73 

74 Parameters 

75 ---------- 

76 catalog_ref : `pandas.DataFrame` 

77 A reference catalog to match objects/sources from. 

78 catalog_target : `pandas.DataFrame` 

79 A target catalog to match reference objects/sources to. 

80 wcs : `lsst.afw.image.SkyWcs` 

81 A coordinate system to convert catalog positions to sky coordinates. 

82 Only needed if `config.coords_ref_to_convert` is used to convert 

83 reference catalog sky coordinates to pixel positions. 

84 

85 Returns 

86 ------- 

87 retStruct : `lsst.pipe.base.Struct` 

88 A struct with output_ref and output_target attribute containing the 

89 output matched catalogs. 

90 """ 

91 return super().run( 

92 catalog_ref=catalog_ref, 

93 catalog_target=catalog_target, 

94 wcs=wcs, 

95 )