Go to the documentation of this file.
28 #ifndef IMAGES_IMAGEINTERFACE_H
29 #define IMAGES_IMAGEINTERFACE_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/images/Regions/RegionHandler.h>
35 #include <casacore/images/Images/MaskSpecifier.h>
36 #include <casacore/images/Images/ImageInfo.h>
37 #include <casacore/images/Images/ImageAttrHandler.h>
38 #include <casacore/lattices/Lattices/MaskedLattice.h>
39 #include <casacore/coordinates/Coordinates/CoordinateSystem.h>
40 #include <casacore/tables/LogTables/LoggerHolder.h>
41 #include <casacore/tables/Tables/TableRecord.h>
42 #include <casacore/casa/Quanta/Unit.h>
47 template <
class T>
class LatticeIterInterface;
48 template <
class T>
class Vector;
49 template <
class T>
class COWPtr;
146 template <
class T>
class ImageInterface:
public MaskedLattice<T>
165 virtual MaskedLattice<T>*
cloneML()
const;
166 virtual ImageInterface<T>*
cloneII()
const = 0;
174 virtual void resize (
const TiledShape& newShape) = 0;
343 uInt startNumber = 1)
const;
346 virtual Bool ok()
const = 0;
405 #ifndef CASACORE_NO_AUTO_TEMPLATES
406 #include <casacore/images/Images/ImageInterface.tcc>
407 #endif //# CASACORE_NO_AUTO_TEMPLATES
Interconvert pixel and world coordinates.
virtual void removeRegion(const String &name, RegionHandler::GroupType=RegionHandler::Any, Bool throwIfUnknown=True)
Remove a region/mask belonging to the image from the given group (which can be Any).
A base class for astronomical images.
Bool canDefineRegion() const
Can the image handle region definition?
virtual Bool ok() const =0
Check class invariants.
virtual Bool setUnits(const Unit &newUnits)
Function which get and set the units associated with the image pixels (i.e.
Bool fromRecord(String &error, const RecordInterface &inRec)
void setUnitMember(const Unit &unit)
Set the unit variable.
GroupType
Define the possible group types (regions or masks).
virtual ImageRegion makeMask(const String &name, Bool defineAsRegion=True, Bool setAsDefaultMask=True, Bool initialize=False, Bool value=True)
Make a mask which is suitable for the type of image.
ImageAttrHandler & roAttrHandler() const
const TableRecord & miscInfo() const
Often we have miscellaneous information we want to attach to an image.
virtual Bool setCoordinateInfo(const CoordinateSystem &coords)
Functions to set or replace the coordinate information in the Image Returns False on failure,...
virtual Bool hasRegion(const String ®ionName, RegionHandler::GroupType=RegionHandler::Any) const
Does the image have a region with the given name?
virtual String name(Bool stripPath=False) const =0
Return the name of the current ImageInterface object.
void setMiscInfoMember(const RecordInterface &rec)
Set the miscinfo variable.
A hierarchical collection of named fields of various types.
virtual Bool canDefineRegion() const
Can the class indeed define and handle regions? The default implementation returns False.
virtual void useMask(MaskSpecifier=MaskSpecifier())
Use the mask as specified.
virtual void resize(const TiledShape &newShape)=0
Function which changes the shape of the image (N.B.
void appendLog(const LoggerHolder &other)
Add the messages from the other image logger to this one.
virtual IPosition shape() const =0
Return the shape of the Lattice including all degenerate axes (ie.
virtual Vector< String > regionNames(RegionHandler::GroupType=RegionHandler::Any) const
Get the names of all regions/masks.
String makeUniqueRegionName(const String &rootName, uInt startNumber=1) const
Make a unique region name from the given root name, thus make it such that the name is not already in...
virtual ImageRegion * getImageRegionPtr(const String &name, RegionHandler::GroupType=RegionHandler::Any, Bool throwIfUnknown=True) const
Get a region/mask belonging to the image from the given group (which can be Any).
const LoggerHolder & logger() const
ostream-like interface to creating log messages.
void append(const LoggerHolder &other)
Append the entries of the other logger to this one.
LogIO & logSink()
Allow messages to be logged to this ImageInterface.
LogIO & logio()
Get access to the logger.
const LatticeRegion & region() const
Get the region used.
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
RegionHandler * regHandPtr_p
The region handling object.
virtual ~ImageInterface()
LoggerHolder & logger()
Get access to the LoggerHolder.
void setImageInfoMember(const ImageInfo &imageInfo)
Set the image info variable.
virtual LELCoordinates lelCoordinates() const
Function to get a LELCoordinate object containing the coordinates.
virtual ImageAttrHandler & attrHandler(Bool createHandler=False)
Get access to the attribute handler.
Class to specify which mask to use in an image.
virtual void assign(const RecordInterface &that)
Assign that RecordInterface object to this one.
void setCoordsMember(const CoordinateSystem &coords)
Set the coordinate system variable.
this file contains all the compiler specific defines
virtual Bool setImageInfo(const ImageInfo &info)
ImageInterface & operator=(const ImageInterface &other)
Assignment (copy semantics) is only useful for derived classes.
Envelope class to handle Lattice Coordinates in LEL.
ImageAttrHandler itsBaseAttrHandler
The attribute handling object.
CoordinateSystem coords_p
It is the job of the derived class to make these variables valid.
const CoordinateSystem & coordinates() const
virtual const Unit & units() const
Abstract base class for Record classes.
ImageInfo & rwImageInfo()
Get non-const access to the ImageInfo.
const ImageInfo & imageInfo() const
The ImageInfo object contains some miscellaneous information about the image which unlike that stored...
virtual String getDefaultMask() const
Get the name of the default pixelmask.
virtual void setDefaultMask(const String ®ionName)
Set the default pixelmask to the mask with the given name (which has to exist in the "masks" group).
virtual ImageInterface< T > * cloneII() const =0
String: the storage and methods of handling collections of characters.
Base class for handling regions in images.
virtual void renameRegion(const String &newName, const String &oldName, RegionHandler::GroupType=RegionHandler::Any, Bool overwrite=False)
Rename a region.
bool Bool
Define the standard types used by Casacore.
Class holding a hierarchy of loggers.
Class to hold a region of interest in an image.
void setLogMember(const LoggerHolder &logger)
Set the image logger variable.
virtual MaskedLattice< T > * cloneML() const
Make a copy of the derived object (reference semantics).
RegionHandler * getRegionHandler()
Get access to the region handler.
Abstract base class for an image attributes handler.
Bool restoreImageInfo(const RecordInterface &rec)
Restore the image info from the record.
A 1-D Specialization of the Array class.
virtual void defineRegion(const String &name, const ImageRegion ®ion, RegionHandler::GroupType, Bool overwrite=False)
Define a region/mask belonging to the image.
virtual Bool setMiscInfo(const RecordInterface &newInfo)
Miscellaneous information related to an image.
const LogIO & logSink() const
Bool toRecord(String &error, RecordInterface &outRec)
Save and restore an ImageInterface object to or from a state Record.
virtual String imageType() const =0
Get the image type (returns name of derived class).
ImageRegion getRegion(const String ®ionName, RegionHandler::GroupType=RegionHandler::Any) const
Get a region belonging to the image.