29#ifndef LSST_AFW_IMAGE_MASK_H
30#define LSST_AFW_IMAGE_MASK_H
76template <
typename MaskPixelT = lsst::afw::image::MaskPixel>
84 template <
typename MaskPT = MaskPixelT>
107 explicit Mask(
unsigned int width,
unsigned int height, MaskPixelT initialValue,
167 bool conformMasks =
false,
bool allowUnsafe =
false);
193 bool conformMasks =
false,
bool allowUnsafe =
false);
216 bool conformMasks =
false,
bool allowUnsafe =
false);
219 template <
typename OtherPixelT>
221 :
image::
ImageBase<MaskPixelT>(rhs, deep), _maskDict(rhs._maskDict) {}
241 const bool deep =
false);
243 explicit Mask(ndarray::Array<MaskPixelT, 2, 1>
const& array,
bool deep =
false,
277 return Mask(*
this,
bbox, origin,
false);
357 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
374 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
388 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
405 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
423 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
439 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
573 static MaskPixelT getBitMaskNoThrow(
int plane);
579 static MaskPixelT getBitMask(
int plane);
597 void checkMaskDictionaries(
Mask const& other);
600template <
typename PixelT>
table::Key< std::string > name
afw::table::PointKey< int > dimensions
std::shared_ptr< RecordT > src
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Lifetime-management for memory that goes into FITS memory files.
A class used to request that array accesses be checked.
The base class for all image classed (Image, Mask, MaskedImage, ...)
typename Reference< PixelT >::type PixelReference
A Reference to a PixelT.
_view_t _getRawView() const
typename ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
A FITS reader class for Masks.
Represent a 2-dimensional array of bitmask pixels.
void writeFits(std::string const &fileName, std::shared_ptr< daf::base::PropertySet const > metadata, std::string const &mode="w") const
void writeFits(fits::MemFileManager &manager, fits::ImageWriteOptions const &options, std::string const &mode="w", daf::base::PropertySet const *header=nullptr) const
Write a mask to a FITS RAM file.
void writeFits(fits::MemFileManager &manager, std::shared_ptr< daf::base::PropertySet const > metadata, std::string const &mode="w") const
Mask & operator=(MaskPixelT const rhs)
void printMaskPlanes() const
print the mask plane dictionary to std::cout
static Mask readFits(std::string const &filename, int hdu=fits::DEFAULT_HDU)
Read a Mask from a regular FITS file.
static int getMaskPlane(const std::string &name)
Return the mask plane number corresponding to a plane name.
detail::MaskPlaneDict MaskPlaneDict
static std::string interpret(MaskPixelT value)
Interpret a mask value as a comma-separated list of mask plane names.
static void removeMaskPlane(const std::string &name)
void removeAndClearMaskPlane(const std::string &name, bool const removeFromDefault=false)
Clear all pixels of the specified mask and remove the plane from the mask plane dictionary; optionall...
Mask(Mask< OtherPixelT > const &rhs, const bool deep)
static Mask readFits(fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU)
Read a Mask from a FITS RAM file.
static void clearMaskPlaneDict()
Reset the maskPlane dictionary.
void setMaskPlaneValues(const int plane, const int x0, const int x1, const int y)
Set the bit specified by "planeId" for pixels (x0, y) ... (x1, y)
static void addMaskPlanesToMetadata(std::shared_ptr< lsst::daf::base::PropertySet >)
Given a PropertySet, replace any existing MaskPlane assignments with the current ones.
Mask subset(lsst::geom::Box2I const &bbox, ImageOrigin origin=PARENT) const
Return a subimage corresponding to the given box.
ImageBase< MaskPixelT >::PixelReference operator()(int x, int y)
get a reference to the specified pixel
Mask & operator^=(Mask const &rhs)
XOR a Mask into a Mask.
void writeFits(fits::Fits &fitsfile, std::shared_ptr< daf::base::PropertySet const > metadata) const
static int addMaskPlane(const std::string &name)
Mask(std::string const &fileName, int hdu=fits::DEFAULT_HDU, std::shared_ptr< lsst::daf::base::PropertySet > metadata=std::shared_ptr< lsst::daf::base::PropertySet >(), lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT, bool conformMasks=false, bool allowUnsafe=false)
Construct a Mask by reading a regular FITS file.
void writeFits(std::string const &filename, fits::ImageWriteOptions const &options, std::string const &mode="w", daf::base::PropertySet const *header=nullptr) const
Write a mask to a regular FITS file.
void writeFits(fits::Fits &fitsfile, fits::ImageWriteOptions const &options, std::shared_ptr< daf::base::PropertySet const > header) const
void writeFits(fits::MemFileManager &manager, fits::ImageWriteOptions const &options, std::string const &mode, std::shared_ptr< daf::base::PropertySet const > header) const
static MaskPixelT getPlaneBitMask(const std::vector< std::string > &names)
Return the bitmask corresponding to a vector of plane names OR'd together.
Mask(fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU, std::shared_ptr< lsst::daf::base::PropertySet > metadata=std::shared_ptr< lsst::daf::base::PropertySet >(), lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT, bool conformMasks=false, bool allowUnsafe=false)
Construct a Mask by reading a FITS image in memory.
std::string getAsString(int x, int y)
Mask(fits::Fits &fitsfile, std::shared_ptr< lsst::daf::base::PropertySet > metadata=std::shared_ptr< lsst::daf::base::PropertySet >(), lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT, bool conformMasks=false, bool allowUnsafe=false)
Construct a Mask from an already-open FITS object.
void writeFits(fits::MemFileManager &manager, daf::base::PropertySet const *metadata=nullptr, std::string const &mode="w") const
Write a mask to a FITS RAM file.
MaskPlaneDict const & getMaskPlaneDict() const
Return the Mask's maskPlaneDict.
void conformMaskPlanes(const MaskPlaneDict &masterPlaneDict)
Adjust this mask to conform to the standard Mask class's mask plane dictionary, adding any new mask p...
void writeFits(std::string const &filename, fits::ImageWriteOptions const &options, std::string const &mode, std::shared_ptr< daf::base::PropertySet const > header) const
Mask & operator|=(Mask const &rhs)
OR a Mask into a Mask.
Mask operator[](lsst::geom::Box2I const &bbox) const
Return a subimage corresponding to the given box (interpreted as PARENT coordinates).
static MaskPlaneDict parseMaskPlaneMetadata(std::shared_ptr< lsst::daf::base::PropertySet const > metadata)
Given a PropertySet that contains the MaskPlane assignments, setup the MaskPlanes.
void clearAllMaskPlanes()
Clear all the pixels.
static int getNumPlanesUsed()
void writeFits(fits::Fits &fitsfile, daf::base::PropertySet const *metadata=nullptr) const
Write a mask to an open FITS file object.
void clearMaskPlane(int plane)
Clear the specified bit in all pixels.
static int getNumPlanesMax()
void writeFits(std::string const &fileName, daf::base::PropertySet const *metadata=nullptr, std::string const &mode="w") const
Write a mask to a regular FITS file.
void writeFits(fits::Fits &fitsfile, fits::ImageWriteOptions const &options, daf::base::PropertySet const *header=nullptr) const
Write a mask to an open FITS file object.
Mask & operator&=(Mask const &rhs)
AND a Mask into a Mask.
Class for storing generic metadata.
An integer coordinate rectangle.
const int DEFAULT_HDU
Specify that the default HDU should be read.
std::map< std::string, int > MaskPlaneDict
Options for writing an image to FITS.
A templated class to return this classes' type (present in Image/Mask/MaskedImage)