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

22 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-04-17 09:21 +0000

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 astropy.table 

34import pandas as pd 

35from typing import Set 

36 

37 

38class MatchTractCatalogProbabilisticConfig(MatchProbabilisticConfig, MatchTractCatalogSubConfig): 

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

40 values that depend on multiple config settings. 

41 """ 

42 

43 @property 

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

45 return super().columns_in_ref 

46 

47 @property 

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

49 return super().columns_in_target 

50 

51 

52class MatchTractCatalogProbabilisticTask(MatchProbabilisticTask, MatchTractCatalogSubTask): 

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

54 two tract object catalogs. 

55 

56 Parameters 

57 ---------- 

58 **kwargs 

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

60 constructor. 

61 """ 

62 ConfigClass = MatchTractCatalogProbabilisticConfig 

63 

64 def __init__(self, **kwargs): 

65 super().__init__(**kwargs) 

66 

67 def run( 

68 self, 

69 catalog_ref: pd.DataFrame | astropy.table.Table, 

70 catalog_target: pd.DataFrame | astropy.table.Table, 

71 wcs: afwGeom.SkyWcs = None, 

72 ) -> pipeBase.Struct: 

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

74 

75 Parameters 

76 ---------- 

77 catalog_ref : `pandas.DataFrame` | `astropy.table.Table` 

78 A reference catalog to match objects/sources from. 

79 catalog_target : `pandas.DataFrame` | `astropy.table.Table` 

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

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

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

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

84 reference catalog sky coordinates to pixel positions. 

85 

86 Returns 

87 ------- 

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

89 A struct with output_ref and output_target attribute containing the 

90 output matched catalogs. 

91 """ 

92 return super().run( 

93 catalog_ref=catalog_ref, 

94 catalog_target=catalog_target, 

95 wcs=wcs, 

96 )