Package jpl.mipl.io.plugins

VICAR Image I/O package.

See:
          Description

Class Summary
DOMtoIIOMetadata This class converts a Document (DOM) object into an IIOMetadata tree
This will be called from inside a reader, writer, transcoder or display program.
DOMtoPDSlabel This class creates a text label for a PDS image file
This will be called from inside a writer.
DOMtoXercesDocument This class converts a Document (DOM) object into a org.apache.xerces.dom.DocumentImpl() Document
This allows the Document to be processed by apache's xerces processors.
FITSImageReader This class is an ImageReader for reading image files in the Vicar format.
FITSImageReaderSpi  
FITSMetadata  
IIOMetadataToDOM This class builds a DOM Document from an IIOMetadata object.
This will be called from inside a reader, writer or transcoder.
ImageToDOM This class builds a DOM Document from a rendered image
The System label type information is extracted from a RenderedImage.
ImageToPDS_DOM This class builds a DOM Document from a rendered image
The System label type information is extracted from a RenderedImage.
ISISImageReader This class is an ImageReader for reading image files in the Vicar format.
ISISImageReaderSpi  
ISISLabelToDOM Parses a ISIS image label and creates a Document Object with the values.
ISISMetadata  
PDSImageReader This class is an ImageReader for reading image files in the Vicar format.
PDSImageReaderSpi  
PDSimageStatistics  
PDSImageToDOM This class builds a DOM Document from a rendered image
The System label type information is extracted from a RenderedImage.
PDSImageWriteParam PDSImageWriteParam
PDSImageWriter  
PDSImageWriterSpi  
PDSLabelToDOM Parses a ISIS image label and creates a Document Object with the values.
PDSMetadata  
PDSToVicarImageTranscoder  
PDSToVicarImageTranscoderSpi  
RegisterScaleMultiresOpImage  
RenderedImageToDOM This class builds a DOM Document from a rendered image
The System label type information is extracted from a RenderedImage.
ScaleMultiresCRIF  
ScaleMultiresDescriptor An OperationDescriptor describing the "Scale" operation.
ScaleMultiresOpImage  
VicarIIOMetadataNode  
VicarImageReader This class is an ImageReader for reading image files in the Vicar format.
VicarImageReaderSpi  
VicarImageWriter  
VicarImageWriterSpi  
VicarLabelToDOM This class builds a DOM Document from a vicar image label object.
A later version MAY handle reading a String which contains the label contents and parses that text.
VicarLabelToIIOMetadata This class builds a IIOMetadata from a vicar image label object.
A later version MAY handle reading a String which contains the label contents and parses that text.
VicarMetadata  
VicarRenderedImage This class is used to allow a RenderedImage to be returned by ImageReader.getAsRenderedImage().
VicarToPDSImageTranscoder  
VicarToPDSImageTranscoderSpi  
 

Package jpl.mipl.io.plugins Description

VICAR Image I/O package. This package supplies plugins for reading and writing images using the ImageIO package which is part of  the standard Java system JDK1.4 and higher. The plugins are automatically registered. The plugins are independent of JAI. A RenderedImage is returned from a reader. A RenderedImage from any source may be given to a writer.
SUN supplies some standard Readers and Writers. Some of them are curretnly supplied as a part of the standard JDK package (jpg, png, gif). A few others will be supplied with the JAI package. Tiff, pnm, bmp are planned..
This package supplies plugins for some image formats not supported by the standard or JAI plugin set.
Currently Readers and Writers for Vicar and PDS images are included.
The plugins use the vicar I/O classes to perform low level file access.
The ImageIO package adds support for image metadata. Vicar and PDS labels are the metadata source.
A Transcoder layer allows the conversion of metadata from one format to the form understood by a different format. A specific transcoder must be written to handle transcoding metadata from one specific format to another.
 The current package contains a Vicar to PDS transcoder.
The Transcoder use an XSL script to control the conversion processing.

In the simplest form the following code can be used to read in an image file and write it out as jpeg image file. ImageIO will ask each registered plugin if it can read the file. If one of the plugins says "Yes" it will be asked to open the file and return the RenderedImage. A RenderedImage can then be used by a program to display the image or it can be used to obtain the data contained in the image file. In the example below the RenderedImage is supplied to the writer. There must be a writer available for the requested format.

String input_file = "mer_edr.vic";
String output_format  = "jpg";
String output_file = mer_edr.jpg";
RenderedImage image  image = ImageIO.read(new File(input_file));
ImageIO.write(image, output_format, output_file);


Currently Input, Output and Transcoding are supported.
 In-place Update of files is not.
The package's major features are:

Note that Complex data is not fully supported.

While direct access to VICAR and PDS files via this API is possible, it is recommended that the higher-level "plugin" from the jpl.mipl.io.plugins package be used instead. This plugin is automatically registered . The plugin supports tiling and access to the VICAR or PDS metadata.

Information on the mid- and low-level interfaces can be found in the javadoc for the VicarInput and VicarOutput interfaces.

To write a vicar format image file the format String should be "vicar".

To write a vicar format image file the format String should be "pds".

Eventually JAI codec's will be deprecated.

Added functionality 4-2003
An ISIS (USGS Flagstaff) image reader has been added.
Vicar, PDS and ISIS readers can now return a RenderedImage. Previously the returned image was actually a BufferedImage. A BufferedImage is displayable since it includes a ColorModel. If the Jade display component is used a RenderedImage may be used and the Jade component will add a suitable ColorModel.
Requesting a RenderedImage has 2 valuable uses.
1). A RenderedImage can contain more than 3 bands. 3 bands must be selected from these to create something which can be displayed.
2). A RenderedImage doesn't pull data until it is requested thus saving some overhead when a subset of the image is all that is required, such as in a display of a large image using the Jade component.

Added 5-26-2005
A FITS reader has been added. It uses the nom.tam.fits libraries written by Thomas McGlynn of Goddard.