public abstract class ScalarDS extends Dataset
A ScalarDS can be an image or spreadsheet data. ScalarDS defines methods to deal with both images and spreadsheets.
ScalarDS is an abstract class. Current implementing classes are the H4SDS, H5GRImage and H5ScalarDS.
Modifier and Type | Field and Description |
---|---|
protected Object |
fillValue
The fill value of the dataset.
|
protected double[] |
imageDataRange
The min-max range of image data values.
|
protected int |
interlace
The interlace mode of the stored raster image data.
|
static int |
INTERLACE_LINE
Indicates that each pixel component of RGB is stored as a scan line.
|
static int |
INTERLACE_PIXEL
Indicates that the pixel RGB values are contiguous.
|
static int |
INTERLACE_PLANE
Indicates that each pixel component of RGB is stored as a plane.
|
protected boolean |
isDefaultImageOrder
Flag to indicate if the dataset is displayed as an image with default order of dimensions.
|
boolean |
isFillValueConverted
Flag to indicate if the FillValue is converted from unsigned C.
|
protected boolean |
isImage
True if this dataset is an image.
|
protected boolean |
isImageDisplay
Flag to indicate if the dataset is displayed as an image.
|
protected boolean |
isText
True if this dataset is ASCII text.
|
protected boolean |
isTrueColor
True if this dataset is a true color image.
|
protected boolean |
isUnsigned
Flag to indicate if the original C data is unsigned integer.
|
protected byte[][] |
palette
The indexed RGB color model with 256 colors.
|
protected boolean |
unsignedConverted
Flag to indicate is the original unsigned C data is converted.
|
chunkSize, compression, compression_gzip_txt, convertByteToString, convertedBuf, data, datatype, dimNames, dims, enumConverted, filters, isDataLoaded, maxDims, nPoints, originalBuf, rank, selectedDims, selectedIndex, selectedStride, startDims, storage, storage_layout
fileFormat, linkTargetObjName, oid, separator
Constructor and Description |
---|
ScalarDS(FileFormat theFile,
String theName,
String thePath)
Constructs an instance of a ScalarDS with specific name and path.
|
ScalarDS(FileFormat theFile,
String theName,
String thePath,
long[] oid)
Deprecated.
Not for public use in the future.
Using ScalarDS(FileFormat, String, String) |
Modifier and Type | Method and Description |
---|---|
void |
addFilteredImageValue(Number x)
Add a value that will be filtered out in an image.
|
void |
clearData()
Clears the current data buffer in memory and forces the next read() to load
the data from file.
|
Object |
convertFromUnsignedC()
Converts the data values of this dataset to appropriate Java integer if they are unsigned integers.
|
Object |
convertToUnsignedC()
Converts Java integer data of this dataset back to unsigned C-type integer data if they are unsigned integers.
|
Object |
getFillValue()
Returns the fill values for the dataset.
|
List<Number> |
getFilteredImageValues()
Get a list of values that will be filtered out in an image.
|
double[] |
getImageDataRange()
Returns the (min, max) pair of image data range.
|
int |
getInterlace()
Returns the interlace mode of a true color image (RGB).
|
abstract byte[][] |
getPalette()
Returns the palette of this scalar dataset or null if palette does not exist.
|
String |
getPaletteName(int idx)
Get the name of a specific image palette from file.
|
abstract byte[] |
getPaletteRefs()
Returns the byte array of palette refs.
|
boolean |
isDefaultImageOrder()
Returns true if this dataset is displayed as an image with default image order.
|
boolean |
isImage()
Returns true if this dataset is an image.
|
boolean |
isImageDisplay()
Returns true if this dataset is displayed as an image.
|
boolean |
isText()
Returns true if this dataset is ASCII text.
|
boolean |
isTrueColor() |
boolean |
isUnsigned()
Returns true if the original C data is unsigned integers.
|
abstract byte[][] |
readPalette(int idx)
Reads a specific image palette from file.
|
void |
setImageDataRange(double min,
double max)
Sets data range for an image.
|
void |
setIsImage(boolean b)
Sets the flag to indicate this dataset is an image.
|
void |
setIsImageDisplay(boolean b)
Sets the flag to display the dataset as an image.
|
void |
setPalette(byte[][] pal)
Sets the palette for this dataset.
|
byteToString, clear, convertFromUnsignedC, convertFromUnsignedC, convertToUnsignedC, convertToUnsignedC, copy, getChunkSize, getCompression, getConvertByteToString, getData, getDatatype, getDimNames, getDims, getFilters, getHeight, getMaxDims, getOriginalClass, getRank, getSelectedDims, getSelectedIndex, getSize, getStartDims, getStorage, getStorageLayout, getStride, getWidth, init, isEnumConverted, isString, read, readBytes, setConvertByteToString, setData, setEnumConverted, stringToByte, write, write
close, debug, equals, equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, open, setLinkTargetObjName, setName, setPath, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getMetadata, hasAttribute, removeMetadata, updateMetadata, writeMetadata
public static final int INTERLACE_PIXEL
public static final int INTERLACE_LINE
public static final int INTERLACE_PLANE
protected int interlace
protected double[] imageDataRange
protected byte[][] palette
The palette values are stored in a two-dimensional byte array and arrange by color components of red, green and blue. palette[][] = byte[3][256], where, palette[0][], palette[1][] and palette[2][] are the red, green and blue components respectively.
protected boolean isImage
protected boolean isTrueColor
protected boolean isText
protected boolean isUnsigned
protected boolean unsignedConverted
protected boolean isImageDisplay
protected boolean isDefaultImageOrder
public boolean isFillValueConverted
public ScalarDS(FileFormat theFile, String theName, String thePath)
For example, in H5ScalarDS(h5file, "dset", "/arrays/"), "dset" is the name of the dataset, "/arrays" is the group path of the dataset.
theFile
- the file that contains the data object.theName
- the name of the data object, e.g. "dset".thePath
- the full path of the data object, e.g. "/arrays/".@Deprecated public ScalarDS(FileFormat theFile, String theName, String thePath, long[] oid)
ScalarDS(FileFormat, String, String)
theFile
- the file that contains the data object.theName
- the name of the data object, e.g. "dset".thePath
- the full path of the data object, e.g. "/arrays/".oid
- the v of the data object.public void clearData()
Dataset
The function read() loads data from file into memory only if the data is not read. If data is already in memory, read() just returns the memory buffer. Sometimes we want to force read() to re-read data from file. For example, when the selection is changed, we need to re-read the data.
clearData
in class Dataset
Dataset.getData()
,
Dataset.read()
public Object convertFromUnsignedC()
Dataset.convertToUnsignedC(Object)
,
Dataset.convertFromUnsignedC(Object, Object)
public Object convertToUnsignedC()
Dataset.convertToUnsignedC(Object)
,
Dataset.convertToUnsignedC(Object, Object)
,
Dataset.convertFromUnsignedC(Object data_in)
public abstract byte[][] getPalette()
A Scalar dataset can be displayed as spreadsheet data or an image. When a scalar dataset is displayed as an image, the palette or color table may be needed to translate a pixel value to color components (for example, red, green, and blue). Some scalar datasets have no palette and some datasets have one or more than one palettes. If an associated palette exists but is not loaded, this interface retrieves the palette from the file and returns the palette. If the palette is loaded, it returns the palette. It returns null if there is no palette associated with the dataset.
Current implementation only supports palette model of indexed RGB with 256 colors. Other models such as YUV", "CMY", "CMYK", "YCbCr", "HSV will be supported in the future.
The palette values are stored in a two-dimensional byte array and are arranges by color components of red, green and blue. palette[][] = byte[3][256], where, palette[0][], palette[1][] and palette[2][] are the red, green and blue components respectively.
Sub-classes have to implement this interface. HDF4 and HDF5 images use different libraries to retrieve the associated palette.
public final void setPalette(byte[][] pal)
pal
- the 2D palette byte array.public abstract byte[][] readPalette(int idx)
A scalar dataset may have multiple palettes attached to it. readPalette(int idx) returns a specific palette identified by its index.
idx
- the index of the palette to read.public String getPaletteName(int idx)
A scalar dataset may have multiple palettes attached to it. getPaletteName(int idx) returns the name of a specific palette identified by its index.
idx
- the index of the palette to retrieve the name.public abstract byte[] getPaletteRefs()
A palette reference is an object reference that points to the palette dataset.
For example, Dataset "Iceberg" has an attribute of object reference "Palette". The arrtibute "Palette" has value "2538" that is the object reference of the palette data set "Iceberg Palette".
public final boolean isImage()
For all Images, they must have an attribute called "CLASS". The value of this attribute is "IMAGE". For more details, read HDF5 Image and Palette Specification
public final boolean isImageDisplay()
A ScalarDS can be displayed as an image or a spreadsheet in a table.
public final boolean isDefaultImageOrder()
A ScalarDS can be displayed as an image with different orders of dimensions.
public final void setIsImageDisplay(boolean b)
b
- if b is true, display the dataset as an imagepublic final void setIsImage(boolean b)
b
- if b is true, the dataset is an image.public final void setImageDataRange(double min, double max)
min
- the data range start.max
- the data range end.public void addFilteredImageValue(Number x)
x
- value to be filteredpublic List<Number> getFilteredImageValues()
public final boolean isTrueColor()
public final boolean isText()
public final int getInterlace()
INTERLACE_PIXEL -- RGB components are contiguous, i.e. rgb, rgb, rgb, ... INTERLACE_LINE -- each RGB component is stored as a scan line INTERLACE_PLANE -- each RGB component is stored as a plane
public final boolean isUnsigned()
public double[] getImageDataRange()
public final Object getFillValue()
Copyright © 2017. All Rights Reserved.