nom.tam.fits
Class ImageData

java.lang.Object
  extended by nom.tam.fits.Data
      extended by nom.tam.fits.ImageData
All Implemented Interfaces:
FitsElement

public class ImageData
extends Data

This class instantiates FITS primary HDU and IMAGE extension data. Essentially these data are a primitive multi-dimensional array.

Starting in version 0.9 of the FITS library, this routine allows users to defer the reading of images if the FITS data is being read from a file. An ImageTiler object is supplied which can return an arbitrary subset of the image as a one dimensional array -- suitable for manipulation by standard Java libraries. A call to the getData() method will still return a multi-dimensional array, but the image data will not be read until the user explicitly requests. it.


Nested Class Summary
protected  class ImageData.ArrayDesc
          This class describes an array
protected  class ImageData.ImageDataTiler
          This inner class allows the ImageTiler to see if the user has read in the data.
 
Field Summary
 
Fields inherited from class nom.tam.fits.Data
dataSize, fileOffset, input
 
Constructor Summary
ImageData()
          Create the equivalent of a null data element.
ImageData(Header h)
          Create an array from a header description.
ImageData(java.lang.Object x)
          Create an ImageData object using the specified object to initialize the data array.
 
Method Summary
protected  void fillHeader(Header head)
          Fill header with keywords that describe image data.
 java.lang.Object getData()
          Return the actual data.
 ImageTiler getTiler()
           
protected  int getTrueSize()
          Get the size in bytes of the data
protected  ImageData.ArrayDesc parseHeader(Header h)
           
 void read(ArrayDataInput i)
          Read a data array into the current object and if needed position to the beginning of the next FITS block.
 void write(ArrayDataOutput o)
          Write the data -- including any buffering needed
 
Methods inherited from class nom.tam.fits.Data
getFileOffset, getKernel, getSize, rewrite, rewriteable, setFileOffset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImageData

public ImageData(Header h)
          throws FitsException
Create an array from a header description. This is typically how data will be created when reading FITS data from a file where the header is read first. This creates an empty array.

Parameters:
h - header to be used as a template.
Throws:
FitsException - if there was a problem with the header description.

ImageData

public ImageData()
Create the equivalent of a null data element.


ImageData

public ImageData(java.lang.Object x)
Create an ImageData object using the specified object to initialize the data array.

Parameters:
x - The initial data array. This should be a primitive array but this is not checked currently.
Method Detail

parseHeader

protected ImageData.ArrayDesc parseHeader(Header h)
                                   throws FitsException
Throws:
FitsException

fillHeader

protected void fillHeader(Header head)
                   throws FitsException
Fill header with keywords that describe image data.

Parameters:
head - The FITS header
Throws:
FitsException - if the object does not contain valid image data.

read

public void read(ArrayDataInput i)
          throws FitsException
Description copied from class: Data
Read a data array into the current object and if needed position to the beginning of the next FITS block.

Specified by:
read in interface FitsElement
Specified by:
read in class Data
Parameters:
i - The input data stream
Throws:
FitsException

write

public void write(ArrayDataOutput o)
           throws FitsException
Description copied from class: Data
Write the data -- including any buffering needed

Specified by:
write in interface FitsElement
Specified by:
write in class Data
Parameters:
o - The output stream on which to write the data.
Throws:
FitsException

getTrueSize

protected int getTrueSize()
Get the size in bytes of the data


getData

public java.lang.Object getData()
Return the actual data. Note that this may return a null when the data is not readable. It might be better to throw a FitsException, but this is a very commonly called method and we prefered not to change how users must invoke it.

Specified by:
getData in class Data

getTiler

public ImageTiler getTiler()