Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# 

2# LSST Data Management System 

3# Copyright 2008-2017 LSST/AURA. 

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__ = ["Mask", "MaskPixel"] 

24 

25import numpy as np 

26 

27from lsst.utils import TemplateMeta 

28from .fitsIoWithOptions import imageReadFitsWithOptions, imageWriteFitsWithOptions 

29from .image import MaskX 

30from ..slicing import supportSlicing 

31from ..disableArithmetic import disableMaskArithmetic 

32 

33MaskPixel = np.int32 

34 

35 

36class Mask(metaclass=TemplateMeta): 

37 TEMPLATE_PARAMS = ("dtype",) 

38 TEMPLATE_DEFAULTS = (MaskPixel,) 

39 

40 def __reduce__(self): 

41 from lsst.afw.fits import reduceToFits 

42 return reduceToFits(self) 

43 

44 def __str__(self): 

45 return "{}, bbox={}, maskPlaneDict={}".format(self.array, self.getBBox(), self.getMaskPlaneDict()) 

46 

47 def __repr__(self): 

48 return "{}.{}={}".format(self.__module__, self.__class__.__name__, str(self)) 

49 

50 readFitsWithOptions = classmethod(imageReadFitsWithOptions) 

51 

52 writeFitsWithOptions = imageWriteFitsWithOptions 

53 

54 

55Mask.register(MaskPixel, MaskX) 

56Mask.alias("X", MaskX) 

57 

58for cls in (MaskX, ): 

59 supportSlicing(cls) 

60 disableMaskArithmetic(cls)