ImageFITSConverter.h

Classes

ImageFITSConverter -- Interconvert between AIPS++ Images and FITS files. (full description)
ImageFITSConverterImpl -- This class is an internal class for ImageFITSConverter. (full description)

class ImageFITSConverter

Interface

Public Members
static Bool FITSToImage(ImageInterface<Float>*& newImage, String &error, const String &imageName, const String &fitsName, uInt whichRep = 0, uInt whichHDU = 0, uInt memoryInMB = 64, Bool allowOverwrite=False, Bool zeroBlanks=False)
static Bool FITSToImageOld(ImageInterface<Float>*& newImage, String &error, const String &imageName, const String &fitsName, uInt whichHDU = 0, uInt memoryInMB = 64, Bool allowOverwrite=False, Bool zeroBlanks=False)
static Bool ImageToFITS(String &error, ImageInterface<Float> &image, const String &fitsName, uInt memoryInMB = 64, Bool preferVelocity = True, Bool opticalVelocity = True, Int BITPIX=-32, Float minPix = 1.0, Float maxPix = -1.0, Bool allowOverwrite=False, Bool degenerateLast=False, Bool verbose=True)
static IPosition copyCursorShape(String &report, const IPosition &shape, uInt imagePixelSize, uInt fitsPixelSize, uInt memoryInMB)
static CoordinateSystem getCoordinateSystem (Int& imageType, RecordInterface& headerRec, const Vector<Vector>& header, String& os, uInt whichRep, LogIO& shape, Bool dropStokes)
static CoordinateSystem getCoordinateSystemOld (Int& imageType, RecordInterface& header, LogIO& os, LogIO& shape, Bool dropStokes)
static ImageInfo getImageInfo (RecordInterface& header)
static ImageInfo getImageInfoOld (RecordInterface& header)
static Unit getBrightnessUnit (RecordInterface& header, LogIO& os)
static Unit getBrightnessUnitOld (RecordInterface& header, LogIO& os)
static void restoreHistory (LoggerHolder& logger, ConstFitsKeywordList& kw)
static Bool extractMiscInfo (RecordInterface& miscInfo, const RecordInterface& header)
Private Members
static Bool removeFile (String& error, const File& outFile, const String& outName, Bool allowOverwrite)

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Synopsis

This class is a helper class that is used to interconvert between AIPS++ images and FITS files. This adds no functionality over the general abilities available in the underlying FITS classes, however it is a useful higher-level packaging.

There are two fundamental member functions in this class. FITSToImage which turns a FITS file into an AIPS++ image, and ImageToFITS which does the opposite.

We can read images from any HDU inside the FITS file (although this isn't well tested). However at the moment we always write to the first HDU, i.e. to the primary array, not an image extension.

Pixels in the FITS file which are blanked are masked out (the mask is set to False) in the output image. On conversion to FITS, masked values are blanked. The mask which is read is the current default mask.

Example

A FITS to image conversion may be accomplished as follows:
    PagedImage<Float> *image = 0;
    String fitsName = "exists.fits";
    String imageName = "new.image";
    String error;
    Bool ok = ImageFITSConverter::FITSToImage(image, error, imageName, fitsName);
    if (!image) ... error ...
A couple of things to note: Similarly, an image to FITS conversion may be accomplished as follows:
    String imageName = argv[1];
    PagedImage<Float> image = ...; // An existing image from somewhere
    String fitsName = "new.fits";
    String error;
    Bool ok = ImageFITSConverter::ImageToFITS(error, image, fitsName);
A couple of similar remarks can be made about this example:

Motivation

FITS files are the fundamental transport format for images in Astronomy.

To Do

Member Description

static Bool FITSToImage(ImageInterface<Float>*& newImage, String &error, const String &imageName, const String &fitsName, uInt whichRep = 0, uInt whichHDU = 0, uInt memoryInMB = 64, Bool allowOverwrite=False, Bool zeroBlanks=False)

Convert a FITS file to an AIPS++ image.

static Bool FITSToImageOld(ImageInterface<Float>*& newImage, String &error, const String &imageName, const String &fitsName, uInt whichHDU = 0, uInt memoryInMB = 64, Bool allowOverwrite=False, Bool zeroBlanks=False)

Old version

static Bool ImageToFITS(String &error, ImageInterface<Float> &image, const String &fitsName, uInt memoryInMB = 64, Bool preferVelocity = True, Bool opticalVelocity = True, Int BITPIX=-32, Float minPix = 1.0, Float maxPix = -1.0, Bool allowOverwrite=False, Bool degenerateLast=False, Bool verbose=True)

Convert an AIPS++ image to a FITS file.

static IPosition copyCursorShape(String &report, const IPosition &shape, uInt imagePixelSize, uInt fitsPixelSize, uInt memoryInMB)

Helper function - used to calculate a cursor appropriate for the desired memory use. It's not intended that application programmers call this, but you may if it's useful to you.

static CoordinateSystem getCoordinateSystem (Int& imageType, RecordInterface& headerRec, const Vector<Vector>& header, String& os, uInt whichRep, LogIO& shape, Bool dropStokes)

Recover CoordinateSystem from header. Used keywords are removed from header and the unused one returned in a Record for ease of use. Degenerate axes may be added to shape if needed

static CoordinateSystem getCoordinateSystemOld (Int& imageType, RecordInterface& header, LogIO& os, LogIO& shape, Bool dropStokes)

Old version

static ImageInfo getImageInfo (RecordInterface& header)

Recover ImageInfo from header. Used keywords are removed from header

static ImageInfo getImageInfoOld (RecordInterface& header)

Old version

static Unit getBrightnessUnit (RecordInterface& header, LogIO& os)

Recover brightness unit from header. Used keywords are removed from header

static Unit getBrightnessUnitOld (RecordInterface& header, LogIO& os)

Old version

static void restoreHistory (LoggerHolder& logger, ConstFitsKeywordList& kw)

Recover history from FITS file keywrod list into logger

static Bool extractMiscInfo (RecordInterface& miscInfo, const RecordInterface& header)

Parse header record and set MiscInfo

static Bool removeFile (String& error, const File& outFile, const String& outName, Bool allowOverwrite)


template<class HDUType> class ImageFITSConverterImpl

Interface

Public Members
static void FITSToImage(ImageInterface<Float> *&newImage, String &error, const String &imageName, uInt whichRep, HDUType &fitsImage, uInt memoryInMB = 64, Bool zeroBlanks=False)
static void FITSToImageOld(ImageInterface<Float> *&newImage, String &error, const String &imageName, HDUType &fitsImage, uInt memoryInMB = 64, Bool zeroBlanks=False)

Description

Synopsis

This class is an internal class used to implement ImageFitsConverter::FITSToImage - in particular, it has the code which is dependent on the various types (BITPIX values).

Member Description

static void FITSToImage(ImageInterface<Float> *&newImage, String &error, const String &imageName, uInt whichRep, HDUType &fitsImage, uInt memoryInMB = 64, Bool zeroBlanks=False)

static void FITSToImageOld(ImageInterface<Float> *&newImage, String &error, const String &imageName, HDUType &fitsImage, uInt memoryInMB = 64, Bool zeroBlanks=False)

Old version