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
mapperUtils.py
Go to the documentation of this file.
1 #! /usr/bin/env python
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 
25 from lsst.afw.image import Filter
26 
27 __all__ = ["makeMapper", "getFilterNames"]
28 
29 _mapper = {
30  "lsstsim": "lsst.obs.lsstSim.LsstSimMapper",
31  "hscsim": "lsst.obs.hscSim.hscSimMapper.HscSimMapper",
32  "suprimecam": "lsst.obs.suprimecam.suprimecamMapper.SuprimecamMapper",
33  "test": "lsst.obs.test.TestMapper",
34  "sdss": "lsst.obs.sdss.SdssMapper",
35  "cfht": "lsst.obs.cfht.CfhtMapper",
36 }
37 
38 def makeMapper(camera):
39  """Return an instance of the lsst.daf.persistence.Mapper class
40  to use for the camera of the given (case-insensitive) name.
41  """
42  camera = camera.lower()
43  if camera not in _mapper:
44  raise RuntimeError(str.format("{} is not a valid camera name", camera))
45  name = _mapper[camera]
46  try:
47  pieces = name.split('.')
48  cls = reduce(getattr, pieces[1:], __import__('.'.join(pieces[:-1])))
49  mapper = cls()
50  except:
51  raise RuntimeError(str.format("Failed to construct a {} mapper", name))
52  return mapper
53 
55  """Return a list of filter names in increasing ID order. This assumes
56  that an lsst.daf.persistence.Mapper which sets up filter definitions
57  has been created, or that filters have been manually defined with e.g.
58  lsst.afw.image.utils.defineFilter().
59  """
60  names = list(Filter.getNames())
61  names.sort(key=lambda name: Filter(name, False).getId())
62  return names
63 
Holds an integer identifier for an LSST filter.
Definition: Filter.h:107