lsst.meas.astrom gaab3d2dbd9+ddc3155902
setMatchDistance.py
Go to the documentation of this file.
2# LSST Data Management System
3# Copyright 2008, 2009, 2010 LSST Corporation.
4#
5# This product includes software developed by the
6# LSST Project (http://www.lsst.org/).
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the LSST License Statement and
19# the GNU General Public License along with this program. If not,
20# see <http://www.lsstcorp.org/LegalNotices/>.
21#
22
23__all__ = ["setMatchDistance"]
24
25import lsst.afw.table as afwTable
26
27
28def setMatchDistance(matches):
29 """Set the distance field of the matches in a match list to the distance in
30 radians on the sky.
31
32 Parameters
33 ----------
34 matches : `list` of `lsst.afw.table.ReferenceMatch`
35 a list of matches, reads the coord field of the source and reference
36 object of each match writes the distance field of each match
37
38 Notes
39 -----
40 .. warning::
41 the coord field of the source in each match must be correct
42 """
43 if len(matches) < 1:
44 return
45
46 sourceCoordKey = afwTable.CoordKey(matches[0].first.schema["coord"])
47 refObjCoordKey = afwTable.CoordKey(matches[0].second.schema["coord"])
48 for match in matches:
49 sourceCoord = match.first.get(sourceCoordKey)
50 refObjCoord = match.second.get(refObjCoordKey)
51 match.distance = refObjCoord.separation(sourceCoord).asRadians()