The HDFView is a Java-based tool for browsing and editing NCSA HDF4 and HDF5 files.
HDFView allows users to browse through any HDF4 and HDF5 file; starting with a tree
view of all top-level objects in an HDF file's hierarchy. HDFView allows
a user to descend through the hierarchy and navigate among the file's data
objects. The content of a data object is loaded only when the object is
selected, providing interactive and efficient access to HDF4 and HDF5 files. HDFView
editing features allow a user to create, delete, and modify the value of
HDF objects and attributes.
The HDFView user interface is designed to be easy to use and intuitive.
HDFView was implemented by using JavaTM
2 Platform that is designed to be machine-independent. The interface and
features of the HDFView are the same for all platforms. HDFView displays
the structure of the HDF file in a tree with data groups and data objects
represented as conventional folders and icons. Users can easily expand
or collapse folders to navigate the hierarchical structure of an HDF file.
1.1 About This Release
This release includes bug fixes, new features, test suite, and improved documentation.
HDF libraries
This release was built with HDF4.2r2 and HDF5-1.6.6
Platforms
This release was built and tested for the follwing platforms:
32-bit Java 2 SDK
Linux
Solaris
Mac PowerPC
Mac Intel
Windows (Vista/XP/2000)
64-bit Java 2 SDK
Linux 64-bit AMD
Solaris 64-bit
The following platforms are droped from this release
AIX
Irix
OSF1
New features
There are a lot of new features added to the release. The following is a list
of major new features.
Support for compound datatypes containing 2D arrays (or greater)
Create/display named datatypes in an HDF5 file
Copy object to same group w/different name
Allow creation of dataset with enum type/named datatype
Support for "filtering fillvalue" to Image Viewer
Show actual palette that results from palette manipulation
Add ability to create a chunked dataset with compound datatype
Deal with large number of 8kx8k 3D images by reuse the memory data buffer
Add -geometry switch to set the window size and location
Support large Fonts in GUI components
Mouse Grab/Move to browse an image
Shift+Mouse_drag to select an image region
Add autogain algorithm for image Brightness/Contrast
Bug fix
There are many bug fixes in HDF-Java 2.4. One of the major bugs is the
memory leak as explained in the following.
In HDF-Java 2.3 or earlier version, an attribute and datatype were left open when
the file structure was retrieved from a file. The following code will build up the
memory leak until the machine is out of memory.
while (true)
{
H5File f=new H5File(fname, H5File.READ);
f.open();
f.close();
}
Another memory leak is at compound datasets. When a compound dataset is open, we
keep the datatypes of the compound fields in memory so that we can reuse them for
better perfomance. However, these datatypes were not closed when the file is closed.
The following code will make the JVM run out of memory.
while (true)
{
final H5File file = new H5File(fname, H5File.READ);
final Dataset dset = (Dataset)file.get("/Table0");
dset.init();
file.close();
}
Other enhancements
Test suite
Using the junit test frame, we build a test suite to test all the public APIs
in the object package (ncsa.hdf.object) and the HDF5 object package (ncsa.hdf.object.h5).
The test suite is added into the source configuration to make it easy to run by "make check"
Improved documentation
All the public APIs in the object package (ncsa.hdf.object) and the HDF5 object package
(ncsa.hdf.object.h5) are fully documented.
1.2 Features
This version fixed bugs from previous versions and added a few new and
enhanced features. It is a continuous work from previous HDFView with a major
new feature: replaceable I/O and GUI modules.
version is user-configurable to support HDF4 or HDF5 or both. Users
can choose HDFView features to support HDF4 or HDF5 or both when installing
HDFView or compiling from the source code.
The following is a list of the browsing and editing features of HDFView. Details
of the features are discussed in their related chapters.
1.2.1 Browsing Features
Display data with optional GUI modules.
Support netCDF and fits file format with read-only.
Animation display of 3D images.
Display HDF5 user block in text, oct, hex and etc.
Option to show char dataset as text.
Display nested compound dataset.
Show multi-dimension compound dataset.
Show text attributes and text dataset in selected fonts.
Change image brightness
Open multiple HDF4 or HDF5 files.
Display file hierarchy in a tree and allow users to navigate among the
file's data objects.
Show dataset as an image, a table or text.
Allow users to select a subset of dataset to display.
Show attributes and other general information of data objects.
Display line plot for selected table data, and histogram for selected
image area.
Display simple compound dataset (non-nested compound datatype) in a table.
Support simple image manipulation: zooming image in/out, flipping image
horizontally or vertically, and showing palette for index RGB image.
Allow displaying any of three dimensions of a multiple dimension dataset.
Allow users to specify stride of dataset selection.
Allow users to selection select fields/members of VData/compound dataset
to display.
Display file information, such as file size, total number of datasets.
Open file as read only.
Show preview image for selecting subset.
Support multiple color tables for HDF5 images.
Display color table in separate red/green/blue lines.
Quick view of metadata.
View variable-length datasets (in compound or nested compound)
View ENUM dataset
View compound/varaible-length attributes
Show indicator of attributes (objects with attribute attached)
Slider bar for modifying image threshold range
Support for HDF5-SRB (object level access to remote files on distributed system)
Support for compound datatypes containing 2D arrays (or greater)
Create/display named datatypes in HDF5
Create link in hdf5
Improve ability to manipulate palette
Select row/colunm data as X axis for xy plot in the table view
1.2.2 Editing Features
Add more user options such as default starting directory or file extension.
Rename HDF5 object.
Edit HDF5 compound dataset.
Change and save user options such as recent files, delimiter, and font size.
Save current file into the same type (HDF4 to HDF4, HDF5 to HDF5).
Add/delete object in the file (no deletion for HDF4).
Copy/paste object in the same file.
Copy/paste object between files of the same file format (HDF4 to HDF4, HDF5 to HDF5).
Add/delete a group and all its decendents (no deletion for HDF4).
Modify and save data values in spreadsheet.
Create new dataset with simple datatype such as SDS, atomic data array.
Copy/paste data values of dataset.
Save single dataset into ASCII text file.
Save a single image to JPEG file.
Add/delete attribute (no deletion for HDF4).
Modify and save attibute value.
Convert JPEG image file into HDF4/HDF5 file.
Save HDF4/HDF5 image into JPEG image file.
Save single data object into HDF file.
Update datasets of references when a file is saved into a new file.
Import data values from text file.
Create new dataset/image out of existing dataset/image.
Modify string dataset.
Simple math calculation and statistic summary.
Create empty image with default image attributes.
Modify image color table.
Create empty HDF5 compound dataset.
Add and modify user blocks.
1.3 Limitations
The current implementation of HDFView has the following limitations.
HDFView does not support undo operation; all the changes will go
to the physical file, and the editing results cannot be recovered.
Deleting object/attribute in HDF4 is not supported.
HDFView does not support conversion between HDF4 and HDF5.
HDFView does not display named datatypes.
HDFView supports only indexed image with RGB color model or 24-bit true
color image. It does not support other color models such as CMYK and HSV.
Opening a large image or dataset may cause an "out of memory" error due to
the limitations of the Java virtual machine.
HDFView is implemented in JavaTM 2 Platform.
It builds and runs on jdk1.5.x. It does not buid on jdk1.4.x or earlier version.
1.4 System Requirements
The HDFView is distributed in two forms: No_VM_bundled and VM_bundled. The No_VM_bundled
distribution does not contain the Java Runtime Environment (JRE) while the VM_bundled
distribution bundles the JRE.
To run HDFView with No_VM_bundled distribution, JDK1.5+ is required. The HDFView
does not compile on jdk1.4.x or earlier version.
HDFView 1.3 has been built and tested on the following platforms:
Linux
Solaris
Windows 95/98/2000/NT/XP
MAC OS X
The HDFView uses the HDF4 and HDF5 Java Native Interfaces, which calls the
HDF4 and HDF5 library. These native interfaces are included in the distribution.
For more information (source and pre-built) on the HDF4/5 Java Native Interface,
visit website at
/hdf-java-html/JNI/
The NoVM_bundled binary distribution does not contain the Java 2 Runtime Environment.
The NoVM_bundled requires JDK1.5.0 or above. Before you install the NoVM_bundled
distribution, you must have JDK1.5.0 or above installed on your machine. If you don't
have a Java 2 VM, you must download and install one. As all releases of Macintosh
OS X include a fully functional Java 2 Virtual Machine, there is no need for a
Mac OS X JRE.
JRE1.5.0 is bundled in the VM_bundled distribution. You do not need any aditional
software to run HDFView.
Download and installation of HDFView requires acceptance of the Java 2 Runtime
Environment license agreement. Please read the
Java 2 Runtime Environment Binary Code License Agreement before you
download the VM_bundled distribution. The installation program will not
install HDFView unless you accept the Java 2 Runtime Environment
License Agreement.
Install on Unix or MAC OS X
After downloading the installation file, cd to the directory where you
downloaded the installer. At the prompt type:
sh ./hdfview-xxx.bin,
where xxx is the Unix OS name such as solaris, linux or macosx. The installer
will guide you to select the Java Virtual Machine and HDFView home directory
(where you want to install the HDFView).
Install on Windows
After downloading, double-click
hdfview-windows.exe.
The installer will guide you to select the Java Virtual Machine and
HDFView home directory (where you want to install the HDFView). After
installing, you can launch the HDFView from
Start -> Program Files -> NCSA HDFView