Module org.hdfgroup.hdfview
Package hdf.view

# Class Tools

Object
hdf.view.Tools

public final class Tools extends Object
The "Tools" class contains various tools for HDF files such as jpeg to HDF converter.

Version:
  2.4 9/6/2007
Author:
  Peter X. Cao

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `FILE_TYPE_BMP`
  Key for BMP image file type.
  `static final String`
  `FILE_TYPE_GIF`
  Key for GIF image file type.
  `static final String`
  `FILE_TYPE_IMAGE`
  Key for all image file type.
  `static final String`
  `FILE_TYPE_JPEG`
  Key for JPEG image file type.
  `static final String`
  `FILE_TYPE_PNG`
  Key for PNG image file type.
  `static final String`
  `FILE_TYPE_TIFF`
  Key for TIFF image file type.
  `static final long`
  `MAX_INT16`
  `static final long`
  `MAX_INT32`
  `static final long`
  `MAX_INT64`
  `static final long`
  `MAX_INT8`
  `static final long`
  `MAX_UINT16`
  `static final long`
  `MAX_UINT32`
  `static final BigInteger`
  `MAX_UINT64`
  `static final long`
  `MAX_UINT8`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Tools()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static final boolean`
  `applyBitmask(Object theData, BitSet theMask, ViewProperties.BITMASK_OP op)`
  Apply bitmask to a data array.
  `static Object`
  `autoContrastApply(Object dataIN, Object dataOUT, double[] params, double[] minmax, boolean isUnsigned)`
  Apply autocontrast parameters to the original data in place (destructive)
  `static int`
  `autoContrastCompute(Object data, double[] params, boolean isUnsigned)`
  Computes autocontrast parameters (gain equates to contrast and bias equates to brightness) for integers.
  `static int`
  `autoContrastComputeMinMax(Object data, double[] minmax)`
  Computes autocontrast parameters by
  `static int`
  `autoContrastConvertImageBuffer(Object src, byte[] dst, boolean isUnsigned)`
  Converts image raw data to bytes.
  `static final File`
  `checkNewFile(String path, String ext)`
  Check and find a non-exist file.
  `static boolean`
  `checkValidJavaArrayIndex(long value)`
  Since Java does not allow array indices to be larger than int type, check the given value to see if it is within the valid range of a Java int.
  `static int`
  `computeStatistics(Object data, double[] avgstd, Object fillValue)`
  Computes mean and standard deviation of a data array
  `static void`
  `convertImageToHDF(String imgFileName, String hFileName, String fromType, String toType)`
  Converts an image file into HDF4/5 file.
  `static BigInteger`
  `convertUINT64toBigInt(Long l)`
  Converts unsigned 64-bit integer data to a BigInteger since Java does not have unsigned types.
  `static final byte[][]`
  `createGrayPalette()`
  Creates the gray palette of the indexed 256-color table.
  `static final byte[][]`
  `createGrayWavePalette()`
  Creates the gray wave palette of the indexed 256-color table.
  `static Image`
  `createIndexedImage(BufferedImage bufferedImage, byte[] imageData, byte[][] palette, long w, long h)`
  Creates a RGB indexed image of 256 colors.
  `static final byte[][]`
  `createNaturePalette()`
  Creates the nature palette of the indexed 256-color table.
  `static FileFormat`
  `createNewFile(String filename, String dir, String type, List<FileFormat> openFiles)`
  Create a new HDF file with default file creation properties
  `static final byte[][]`
  `createRainbowPalette()`
  Creates the rainbow palette of the indexed 256-color table.
  `static final byte[][]`
  `createReverseGrayPalette()`
  Creates the reverse gray palette of the indexed 256-color table.
  `static Image`
  `createTrueColorImage(byte[] imageData, boolean planeInterlace, long w, long h)`
  Creates a true color image.
  `static final byte[][]`
  `createWavePalette()`
  Creates the wave palette of the indexed 256-color table.
  `static int`
  `findDataDist(Object data, int[] dataDist, double[] minmax)`
  Finds the distribution of data values
  `static int`
  `findMinMax(Object data, double[] minmax, Object fillValue)`
  Finds the min and max values of the data array
  `static boolean`
  `getBinaryDataFromFile(Object dataOut, String fileName, ByteOrder order)`
  Reads data from a binary file into a buffer.
  `static byte[]`
  `getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, byte[] byteData)`
  Convert an array of raw data into array of a byte data.
  `static byte[]`
  `getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, List<Number> invalidValues, boolean convertByteData, byte[] byteData)`
  Convert an array of raw data into array of a byte data.
  `static byte[]`
  `getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, List<Number> invalidValues, boolean convertByteData, byte[] byteData, List<Integer> list)`
  Convert an array of raw data into array of a byte data.
  `static byte[]`
  `getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, List<Number> invalidValues, byte[] byteData)`
  Convert an array of raw data into array of a byte data.
  `static byte[]`
  `getHDF5UserBlock(String filename)`
  Read HDF5 user block data into byte array.
  `static boolean`
  `hasAlpha(Image image)`
  This method returns true if the specified image has transparent pixels.
  `static boolean`
  `isHDF4(String filename)`
  look at the first 4 bytes of the file to see if it is an HDF4 file.
  `static boolean`
  `isHDF5(String filename)`
  look at the first 8 bytes of the file to see if it is an HDF5 file.
  `static final boolean`
  `isNaNINF(double val)`
  Check if a given number if NaN or INF.
  `static boolean`
  `isNetcdf(String filename)`
  look at the first 4 bytes of the file to see if it is a netCDF file byte[0]=67, byte[1]=68, byte[2]=70, byte[3]=1 or
  `static final void`
  `launchBrowser(String url)`
  Launch default browser for a given URL.
  `static Object`
  `newInstance(Class<?> cls, Object[] initargs)`
  Create and initialize a new instance of the given class.
  `static final byte[][]`
  `readPalette(String filename)`
  read an image palette from a file.
  `static void`
  `saveAsBinary(DataOutputStream out, Object data, ByteOrder order)`
  Save the data as binary
  `static void`
  `saveImageAs(BufferedImage image, File file, String type)`
  Save a BufferedImage into an image file.
  `static boolean`
  `setHDF5UserBlock(String fin, String fout, byte[] buf)`
  Write HDF5 user block data into byte array.
  `static boolean`
  `showConfirm(org.eclipse.swt.widgets.Shell parent, String title, String confMsg)`
  Show an SWT Confirm dialog with the given message.
  `static void`
  `showError(org.eclipse.swt.widgets.Shell parent, String title, String errorMsg)`
  Show an SWT error dialog with the given error message.
  `static void`
  `showInformation(org.eclipse.swt.widgets.Shell parent, String title, String infoMsg)`
  Show an SWT Information dialog with the given message.
  `static void`
  `showWarning(org.eclipse.swt.widgets.Shell parent, String title, String warnMsg)`
  Show an SWT Warning dialog with the given message.
  `static final String`
  `toBinaryString(long v, int nbytes)`
  Returns a string representation of the long argument as an unsigned integer in base 2.
  `static final String`
  `toBinaryString(BigDecimal v, int nbytes)`
  Returns a string representation of the BigDecimal argument as an unsigned integer in base 2.
  `static final String`
  `toBinaryString(BigInteger v, int nbytes)`
  Returns a string representation of the BigInteger argument as an unsigned integer in base 2.
  `static BufferedImage`
  `toBufferedImage(Image image)`
  This method returns a buffered image with the contents of an image.
  `static final String`
  `toHexString(long v, int nbytes)`
  Returns a string representation of the long argument as an unsigned integer in base 16.
  `static final String`
  `toHexString(BigDecimal v, int nbytes)`
  Returns a string representation of the BigDecimal argument as an unsigned integer in base 16.
  `static final String`
  `toHexString(BigInteger v, int nbytes)`
  Returns a string representation of the BigInteger argument as an unsigned integer in base 16.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### MAX_INT8

    public static final long MAX_INT8
    See Also:
      - Constant Field Values

  - ### MAX_UINT8

    public static final long MAX_UINT8
    See Also:
      - Constant Field Values

  - ### MAX_INT16

    public static final long MAX_INT16
    See Also:
      - Constant Field Values

  - ### MAX_UINT16

    public static final long MAX_UINT16
    See Also:
      - Constant Field Values

  - ### MAX_INT32

    public static final long MAX_INT32
    See Also:
      - Constant Field Values

  - ### MAX_UINT32

    public static final long MAX_UINT32
    See Also:
      - Constant Field Values

  - ### MAX_INT64

    public static final long MAX_INT64
    See Also:
      - Constant Field Values

  - ### MAX_UINT64

    public static final BigInteger MAX_UINT64

  - ### FILE_TYPE_JPEG

    public static final String FILE_TYPE_JPEG
    Key for JPEG image file type.
    See Also:
      - Constant Field Values

  - ### FILE_TYPE_TIFF

    public static final String FILE_TYPE_TIFF
    Key for TIFF image file type.
    See Also:
      - Constant Field Values

  - ### FILE_TYPE_PNG

    public static final String FILE_TYPE_PNG
    Key for PNG image file type.
    See Also:
      - Constant Field Values

  - ### FILE_TYPE_GIF

    public static final String FILE_TYPE_GIF
    Key for GIF image file type.
    See Also:
      - Constant Field Values

  - ### FILE_TYPE_BMP

    public static final String FILE_TYPE_BMP
    Key for BMP image file type.
    See Also:
      - Constant Field Values

  - ### FILE_TYPE_IMAGE

    public static final String FILE_TYPE_IMAGE
    Key for all image file type.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Tools

    public Tools()

- ## Method Details

  - ### convertUINT64toBigInt

    public static BigInteger convertUINT64toBigInt(Long l)
    Converts unsigned 64-bit integer data to a BigInteger since Java does not have unsigned types.
    Parameters:
      `l` - The long value to convert to a BigInteger
    Returns:
      A BigInteger representing the unsigned value of the given long.

  - ### convertImageToHDF

    public static void convertImageToHDF(String imgFileName, String hFileName, String fromType, String toType) throws Exception
    Converts an image file into HDF4/5 file.
    Parameters:
      `imgFileName` - the input image file.
      `hFileName` - the name of the HDF4/5 file.
      `fromType` - the type of image.
      `toType` - the type of file converted to.
    Throws:
      `Exception` - if a failure occurred

  - ### saveImageAs

    public static void saveImageAs(BufferedImage image, File file, String type) throws IOException
    Save a BufferedImage into an image file.
    Parameters:
      `image` - the BufferedImage to save.
      `file` - the image file.
      `type` - the image type.
    Throws:
      `IOException` - if a failure occurred

  - ### createGrayPalette

    public static final byte[][] createGrayPalette()
    Creates the gray palette of the indexed 256-color table. 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.
    Returns:
      the gray palette in the form of byte[3][256]

  - ### createReverseGrayPalette

    public static final byte[][] createReverseGrayPalette()
    Creates the reverse gray palette of the indexed 256-color table. 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.
    Returns:
      the gray palette in the form of byte[3][256]

  - ### createGrayWavePalette

    public static final byte[][] createGrayWavePalette()
    Creates the gray wave palette of the indexed 256-color table. 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.
    Returns:
      the gray palette in the form of byte[3][256]

  - ### createRainbowPalette

    public static final byte[][] createRainbowPalette()
    Creates the rainbow palette of the indexed 256-color table. 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.
    Returns:
      the rainbow palette in the form of byte[3][256]

  - ### createNaturePalette

    public static final byte[][] createNaturePalette()
    Creates the nature palette of the indexed 256-color table. 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.
    Returns:
      the nature palette in the form of byte[3][256]

  - ### createWavePalette

    public static final byte[][] createWavePalette()
    Creates the wave palette of the indexed 256-color table. 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.
    Returns:
      the wave palette in the form of byte[3][256]

  - ### readPalette

    public static final byte[][] readPalette(String filename)
    read an image palette from a file. A palette file has format of (value, red, green, blue). The color value in palette file can be either unsigned char [0..255] or float [0..1]. Float value will be converted to [0..255]. The color table in file can have any number of entries between 2 to 256. It will be converted to a color table of 256 entries. Any missing index will calculated by linear interpolation between the neighboring index values. For example, index 11 is missing in the following table 10 200 60 20 12 100 100 60 Index 11 will be calculated based on index 10 and index 12, i.e. 11 150 80 40
    Parameters:
      `filename` - the name of the palette file.
    Returns:
      the wave palette in the form of byte[3][256]

  - ### hasAlpha

    public static boolean hasAlpha(Image image)
    This method returns true if the specified image has transparent pixels.
    Parameters:
      `image` - the image to be check if has alpha.
    Returns:
      true if the image has alpha setting.

  - ### createIndexedImage

    public static Image createIndexedImage(BufferedImage bufferedImage, byte[] imageData, byte[][] palette, long w, long h)
    Creates a RGB indexed image of 256 colors.
    Parameters:
      `bufferedImage` - the target image.
      `imageData` - the byte array of the image data.
      `palette` - the color lookup table.
      `w` - the width of the image.
      `h` - the height of the image.
    Returns:
      the image.

  - ### createTrueColorImage

    public static Image createTrueColorImage(byte[] imageData, boolean planeInterlace, long w, long h)
    Creates a true color image. DirectColorModel is used to construct the image from raw data. The DirectColorModel model is similar to an X11 TrueColor visual, which has the following parameters:

         Number of bits:        32
                     Red mask:              0x00ff0000
                     Green mask:            0x0000ff00
                     Blue mask:             0x000000ff
                     Alpha mask:            0xff000000
                     Color space:           sRGB
                     isAlphaPremultiplied:  False
                     Transparency:          Transparency.TRANSLUCENT
                     transferType:          DataBuffer.TYPE_INT

    The data may be arranged in one of two ways: by pixel or by plane. In both cases, the dataset will have a dataspace with three dimensions, height, width, and components. For HDF4, the interlace modes specify orders for the dimensions as:

         INTERLACE_PIXEL = [width][height][pixel components]
                    INTERLACE_PLANE = [pixel components][width][height]

    For HDF5, the interlace modes specify orders for the dimensions as:

         INTERLACE_PIXEL = [height][width][pixel components]
                    INTERLACE_PLANE = [pixel components][height][width]

    Parameters:
      `imageData` - the byte array of the image data.
      `planeInterlace` - flag if the image is plane interlace.
      `w` - the width of the image.
      `h` - the height of the image.
    Returns:
      the image.

  - ### toBufferedImage

    public static BufferedImage toBufferedImage(Image image)
    This method returns a buffered image with the contents of an image.
    Parameters:
      `image` - the plain image object.
    Returns:
      buffered image for the given image.

  - ### getBytes

    public static byte[] getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, byte[] byteData)
    Convert an array of raw data into array of a byte data.
    Parameters:
      `rawData` - The input raw data.
      `minmax` - the range of the raw data.
      `w` - the width of the raw data.
      `h` - the height of the raw data.
      `isTransposed` - if the data is transposed.
      `byteData` - the data in.
    Returns:
      the byte array of pixel data.

  - ### getBytes

    public static byte[] getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, List<Number> invalidValues, byte[] byteData)
    Convert an array of raw data into array of a byte data.
    Parameters:
      `rawData` - The input raw data.
      `minmax` - the range of the raw data.
      `w` - the width of the raw data.
      `h` - the height of the raw data.
      `isTransposed` - if the data is transposed.
      `invalidValues` - list of values out of range.
      `byteData` - the data in.
    Returns:
      the byte array of pixel data.

  - ### getBytes

    public static byte[] getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, List<Number> invalidValues, boolean convertByteData, byte[] byteData)
    Convert an array of raw data into array of a byte data.
    Parameters:
      `rawData` - The input raw data.
      `minmax` - the range of the raw data.
      `w` - the width of the raw data.
      `h` - the height of the raw data.
      `isTransposed` - if the data is transposed.
      `invalidValues` - list of values out of range.
      `convertByteData` - the converted data out.
      `byteData` - the data in.
    Returns:
      the byte array of pixel data.

  - ### getBytes

    public static byte[] getBytes(Object rawData, double[] minmax, long w, long h, boolean isTransposed, List<Number> invalidValues, boolean convertByteData, byte[] byteData, List<Integer> list)
    Convert an array of raw data into array of a byte data.
    Parameters:
      `rawData` - The input raw data.
      `minmax` - the range of the raw data.
      `w` - the width of the raw data.
      `h` - the height of the raw data.
      `isTransposed` - if the data is transposed.
      `invalidValues` - the list of invalid values.
      `convertByteData` - the converted data out.
      `byteData` - the data in.
      `list` - the list of integers.
    Returns:
      the byte array of pixel data.

  - ### newInstance

    public static Object newInstance(Class<?> cls, Object[] initargs) throws Exception
    Create and initialize a new instance of the given class.
    Parameters:
      `cls` - the class of the instance
      `initargs` - array of objects to be passed as arguments.
    Returns:
      a new instance of the given class.
    Throws:
      `Exception` - if a failure occurred

  - ### autoContrastCompute

    public static int autoContrastCompute(Object data, double[] params, boolean isUnsigned)
    Computes autocontrast parameters (gain equates to contrast and bias equates to brightness) for integers. The computation is based on the following scaling

              int_8       [0, 127]
              uint_8      [0, 255]
              int_16      [0, 32767]
              uint_16     [0, 65535]
              int_32      [0, 2147483647]
              uint_32     [0, 4294967295]
              int_64      [0, 9223372036854775807]
              uint_64     [0, 18446744073709551615] // Not supported.

    Parameters:
      `data` - the raw data array of signed/unsigned integers
      `params` - the auto gain parameter. params[0]=gain, params[1]=bias,
      `isUnsigned` - the flag to indicate if the data array is unsigned integer.
    Returns:
      non-negative if successful; otherwise, returns negative

  - ### autoContrastApply

    public static Object autoContrastApply(Object dataIN, Object dataOUT, double[] params, double[] minmax, boolean isUnsigned)
    Apply autocontrast parameters to the original data in place (destructive)
    Parameters:
      `dataIN` - the original data array of signed/unsigned integers
      `dataOUT` - the converted data array of signed/unsigned integers
      `params` - the auto gain parameter. params[0]=gain, params[1]=bias
      `minmax` - the data range. minmax[0]=min, minmax[1]=max
      `isUnsigned` - the flag to indicate if the data array is unsigned integer
    Returns:
      the data array with the auto contrast conversion; otherwise, returns null

  - ### autoContrastConvertImageBuffer

    public static int autoContrastConvertImageBuffer(Object src, byte[] dst, boolean isUnsigned)
    Converts image raw data to bytes. The integer data is converted to byte data based on the following rule

                 uint_8       x
                 int_8       (x & 0x7F) << 1
                 uint_16     (x >> 8) & 0xFF
                 int_16      (x >> 7) & 0xFF
                 uint_32     (x >> 24) & 0xFF
                 int_32      (x >> 23) & 0xFF
                 uint_64     (x >> 56) & 0xFF
                 int_64      (x >> 55) & 0xFF

    Parameters:
      `src` - the source data array of signed integers or unsigned shorts
      `dst` - the destination data array of bytes
      `isUnsigned` - the flag to indicate if the data array is unsigned integer.
    Returns:
      non-negative if successful; otherwise, returns negative

  - ### autoContrastComputeMinMax

    public static int autoContrastComputeMinMax(Object data, double[] minmax)
    Computes autocontrast parameters by

            min = mean - 3 * std.dev
            max = mean + 3 * std.dev

    Parameters:
      `data` - the raw data array
      `minmax` - the min and max values.
    Returns:
      non-negative if successful; otherwise, returns negative

  - ### findMinMax

    public static int findMinMax(Object data, double[] minmax, Object fillValue)
    Finds the min and max values of the data array
    Parameters:
      `data` - the raw data array
      `minmax` - the mmin and max values of the array.
      `fillValue` - the missing value or fill value. Exclude this value when check for min/max
    Returns:
      non-negative if successful; otherwise, returns negative

  - ### findDataDist

    public static int findDataDist(Object data, int[] dataDist, double[] minmax)
    Finds the distribution of data values
    Parameters:
      `data` - the raw data array
      `dataDist` - the data distirbution.
      `minmax` - the data range
    Returns:
      non-negative if successful; otherwise, returns negative

  - ### computeStatistics

    public static int computeStatistics(Object data, double[] avgstd, Object fillValue)
    Computes mean and standard deviation of a data array
    Parameters:
      `data` - the raw data array
      `avgstd` - the statistics: avgstd[0]=mean and avgstd[1]=stdev.
      `fillValue` - the missing value or fill value. Exclude this value when compute statistics
    Returns:
      non-negative if successful; otherwise, returns negative

  - ### saveAsBinary

    public static void saveAsBinary(DataOutputStream out, Object data, ByteOrder order) throws Exception
    Save the data as binary
    Parameters:
      `out` - the output stream
      `data` - the raw data array
      `order` - the order of bytes
    Throws:
      `Exception` - if a failure occurred

  - ### getBinaryDataFromFile

    public static boolean getBinaryDataFromFile(Object dataOut, String fileName, ByteOrder order)
    Reads data from a binary file into a buffer.
    Parameters:
      `dataOut` - the output stream
      `fileName` - the file to read binary data from
      `order` - the new byte order, either BIG_ENDIAN or LITTLE_ENDIAN
    Returns:
      true if successful; otherwise, false.

  - ### toBinaryString

    public static final String toBinaryString(long v, int nbytes)
    Returns a string representation of the long argument as an unsigned integer in base 2. This is different from Long.toBinaryString(long i). This function add padding (0's) to the string based on the nbytes. For example, if v=15, nbytes=1, the string will be "00001111".
    Parameters:
      `v` - the long value
      `nbytes` - number of bytes in the integer
    Returns:
      the string representation of the unsigned long value represented by the argument in binary (base 2).

  - ### toBinaryString

    public static final String toBinaryString(BigDecimal v, int nbytes)
    Returns a string representation of the BigDecimal argument as an unsigned integer in base 2. This is different from BigDecimal.toBinaryString(long i). This function add padding (0's) to the string based on the nbytes. For example, if v=15, nbytes=1, the string will be "00001111".
    Parameters:
      `v` - the BigDecimal value
      `nbytes` - number of bytes in the integer
    Returns:
      the string representation of the BigDecimal value represented by the argument in binary (base 2).

  - ### toBinaryString

    public static final String toBinaryString(BigInteger v, int nbytes)
    Returns a string representation of the BigInteger argument as an unsigned integer in base 2. This is different from BigInteger.toBinaryString(long i). This function add padding (0's) to the string based on the nbytes. For example, if v=15, nbytes=1, the string will be "00001111".
    Parameters:
      `v` - the BigInteger value
      `nbytes` - number of bytes in the integer
    Returns:
      the string representation of the BigInteger value represented by the argument in binary (base 2).

  - ### toHexString

    public static final String toHexString(long v, int nbytes)
    Returns a string representation of the long argument as an unsigned integer in base 16. This is different from Long.toHexString(long i). This function add padding (0's) to the string based on the nbytes. For example, if v=42543, nbytes=4, the string will be "0000A62F".
    Parameters:
      `v` - the long value
      `nbytes` - number of bytes in the integer
    Returns:
      the string representation of the unsigned long value represented by the argument in hexadecimal (base 16).

  - ### toHexString

    public static final String toHexString(BigInteger v, int nbytes)
    Returns a string representation of the BigInteger argument as an unsigned integer in base 16. This is different from BigInteger.toString(16). This function adds padding (0's) to the string based on the nbytes. For example, if v=42543, nbytes=4, the string will be "0000A62F".
    Parameters:
      `v` - the BigInteger value
      `nbytes` - number of bytes in the integer
    Returns:
      the string representation of the BigInteger value represented by the argument in hexadecimal (base 16).

  - ### toHexString

    public static final String toHexString(BigDecimal v, int nbytes)
    Returns a string representation of the BigDecimal argument as an unsigned integer in base 16. This is different from BigDecimal.toString(16). This function adds padding (0's) to the string based on the nbytes. For example, if v=42543, nbytes=4, the string will be "0000A62F".
    Parameters:
      `v` - the BigDecimal value
      `nbytes` - number of bytes in the integer
    Returns:
      the string representation of the BigDecimal value represented by the argument in hexadecimal (base 16).

  - ### applyBitmask

    public static final boolean applyBitmask(Object theData, BitSet theMask, ViewProperties.BITMASK_OP op)
    Apply bitmask to a data array.
    Parameters:
      `theData` - the data array which the bitmask is applied to.
      `theMask` - the bitmask to be applied to the data array.
      `op` - the bitmask op to be applied
    Returns:
      true if bitmask is applied successfully; otherwise, false.

  - ### getHDF5UserBlock

    public static byte[] getHDF5UserBlock(String filename)
    Read HDF5 user block data into byte array.
    Parameters:
      `filename` - the HDF5 file from which to get the user block
    Returns:
      a byte array of user block, or null if there is user data.

  - ### setHDF5UserBlock

    public static boolean setHDF5UserBlock(String fin, String fout, byte[] buf)
    Write HDF5 user block data into byte array.
    Parameters:
      `fin` - the input filename
      `fout` - the output filename
      `buf` - the data to write into the user block
    Returns:
      a byte array of user block, or null if there is user data.

  - ### isHDF4

    public static boolean isHDF4(String filename)
    look at the first 4 bytes of the file to see if it is an HDF4 file. byte[0]=14, byte[1]=3, byte[2]=19, byte[3]=1 or if it is a netCDF file byte[0]=67, byte[1]=68, byte[2]=70, byte[3]=1
    Parameters:
      `filename` - the file to test if HDF4
    Returns:
      true if the file is of type HDF4

  - ### isHDF5

    public static boolean isHDF5(String filename)
    look at the first 8 bytes of the file to see if it is an HDF5 file. byte[0]=-199 which is 137 in unsigned byte, byte[1]=72, byte[2]=68, byte[3]=70, byte[4]=13, byte[5]=10, byte[6]=26, byte[7]=10
    Parameters:
      `filename` - the file to test if HDF5
    Returns:
      true if the file is of type HDF5

  - ### isNetcdf

    public static boolean isNetcdf(String filename)
    look at the first 4 bytes of the file to see if it is a netCDF file byte[0]=67, byte[1]=68, byte[2]=70, byte[3]=1 or
    Parameters:
      `filename` - the file to test if netcdf
    Returns:
      true if the file is of type netcdf

  - ### launchBrowser

    public static final void launchBrowser(String url) throws Exception
    Launch default browser for a given URL.
    Parameters:
      `url` - the URL to open.
    Throws:
      `Exception` - if a failure occurred

  - ### createNewFile

    public static FileFormat createNewFile(String filename, String dir, String type, List<FileFormat> openFiles) throws Exception
    Create a new HDF file with default file creation properties
    Parameters:
      `filename` - the file to create
      `dir` - the directory for file
      `type` - the type of the file
      `openFiles` - the list of already opened files
    Returns:
      the FileFormat instance of the newly created file
    Throws:
      `Exception` - if a failure occurred

  - ### checkNewFile

    public static final File checkNewFile(String path, String ext)
    Check and find a non-exist file.
    Parameters:
      `path` - -- the path that the new file will be checked.
      `ext` - -- the extention of the new file.
    Returns:
      -- the new file.

  - ### isNaNINF

    public static final boolean isNaNINF(double val)
    Check if a given number if NaN or INF.
    Parameters:
      `val` - the number to be checked
    Returns:
      true if the number is Nan or INF; otherwise, false.

  - ### checkValidJavaArrayIndex

    public static boolean checkValidJavaArrayIndex(long value)
    Since Java does not allow array indices to be larger than int type, check the given value to see if it is within the valid range of a Java int.
    Parameters:
      `value` - The value to check
    Returns:
      false if the value is outside the range of a Java int, true otherwise.

  - ### showError

    public static void showError(org.eclipse.swt.widgets.Shell parent, String title, String errorMsg)
    Show an SWT error dialog with the given error message.
    Parameters:
      `parent` - The parent Shell of the MessageDialog
      `title` - The title to set for the MessageDialog
      `errorMsg` - The error message to display in the MessageDialog

  - ### showInformation

    public static void showInformation(org.eclipse.swt.widgets.Shell parent, String title, String infoMsg)
    Show an SWT Information dialog with the given message.
    Parameters:
      `parent` - The parent Shell of the MessageDialog
      `title` - The title to set for the MessageDialog
      `infoMsg` - The message to display in the MessageDialog

  - ### showConfirm

    public static boolean showConfirm(org.eclipse.swt.widgets.Shell parent, String title, String confMsg)
    Show an SWT Confirm dialog with the given message.
    Parameters:
      `parent` - The parent Shell of the MessageDialog
      `title` - The title to set for the MessageDialog
      `confMsg` - The message to display in the MessageDialog
    Returns:
      The status of the dialog after closing

  - ### showWarning

    public static void showWarning(org.eclipse.swt.widgets.Shell parent, String title, String warnMsg)
    Show an SWT Warning dialog with the given message.
    Parameters:
      `parent` - The parent Shell of the MessageDialog
      `title` - The title to set for the MessageDialog
      `warnMsg` - The message to display in the MessageDialog