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 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)
static IPosition copyCursorShape(String &report, const IPosition &shape, uInt imagePixelSize, uInt fitsPixelSize, uInt memoryInMB)
static CoordinateSystem getCoordinateSystem (Int& imageType, RecordInterface& header, LogIO& os, LogIO& shape, Bool dropStokes)
static ImageInfo getImageInfo (RecordInterface& header)
static Unit getBrightnessUnit (RecordInterface& header, LogIO& os)
static void restoreHistory (LoggerHolder& logger, ConstFitsKeywordList& kw)
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 whichHDU = 0, uInt memoryInMB = 64, Bool allowOverwrite=False, Bool zeroBlanks=False)

Convert a FITS file to an AIPS++ image.

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)

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& header, LogIO& os, LogIO& shape, Bool dropStokes)

Recover CoordinateSystem from header. Used keywords are removed from header Degenerate axes may be added to shape if needed

static ImageInfo getImageInfo (RecordInterface& header)

Recover ImageInfo from header. Used keywords are removed from header

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

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

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

Recover history from FITS file keywrod list into logger

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, 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, HDUType &fitsImage, uInt memoryInMB = 64, Bool zeroBlanks=False)