The HDF-Java products include three components: HDF4 and HDF5 Java wrappers, HDF-Java object package, and HDFView. The Java wrappers provide standard Java APIs that allow applications to call the C HDF4 and HDF5 libraries from Java. The HDF-Java object package implements HDF data objects, e.g. Groups and Datasets, in an object-oriented form and makes it easy for applications to use the libraries. The HDFView is a visual tool for browsing and editing HDF4 and HDF5 files.
This presentation will include recent work on supporting HDF5 1.8 APIs and new features. As part of the HDF-NPOESS project, some enhancements have been added to HDFView to support region references and quality flags. The presentation will show these features along with other new features added to HDFView since HDF-Java 2.5 release.
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
HDF-Java Products
1. The HDF Group
HDF-Java Products
Peter Cao
The HDF Group
The 13th HDF and HDF-EOS Workshop
November 3-5, 2009
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
1
www.hdfgroup.org
2. Outline
• HDF-Java products
• Short demo of NPOESS features
• Full support of HDF5 1.8 in HDF-Java
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
2
www.hdfgroup.org
3. What are the HDF-Java products?
HDF-Java
HDF
Java
Wrapper
November 3-5, 2009
Object
Package
HDF/HDF-EOS Workshop XIII
Viewer
Editor
3
www.hdfgroup.org
4. Java Wrapper
Pure Java
Library
HDF
JNI
NetCDF-Java library
a programming framework that
allows Java code to call and be
called by applications and
libraries written in other
languages
HDF
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
4
www.hdfgroup.org
5. Pure Java Library
• Pros:
• True platform independence
• Direct access to file (no data
conversion between C and Java)
Pure Java
Library
• Cons:
HDF
November 3-5, 2009
− Substantial amount of work to support
features in the C library.
HDF/HDF-EOS Workshop XIII
5
www.hdfgroup.org
6. HDF JNI
• Pros:
HDF
• Easy to implement
• Easy to keep up with the library
changes
• Cons:
HDF
November 3-5, 2009
− Requires data conversion between C and
Java
− The JNI is platform dependent
HDF/HDF-EOS Workshop XIII
6
www.hdfgroup.org
8. Java Wrapper: C versus Java
C
Java
public static native int
H5Fopen (
String name,
int flags,
int access_id);
November 3-5, 2009
hid_t
H5Fopen (
const char *name,
unsigned flags,
hid_t access_id );
HDF/HDF-EOS Workshop XIII
8
www.hdfgroup.org
10. Java Wrapper: read data
A very simple example.
Is there an easy way?
int fid, did, sid, tid, rank;
long dims[], maxDims[];
Object theData;
fid = H5.H5Fopen( fname, HDF5Constants.H5F_ACC_RDWR, HDF5Constants.H5P_DEFAULT);
did = H5.H5Dopen(fid, dname);
sid = H5.H5Dget_space(did);
tid = H5.H5Dget_type(did);
rank = H5.H5Sget_simple_extent_ndims(sid);
dims = new long[rank];
maxDims = new long[rank];
H5.H5Sget_simple_extent_dims(sid, dims, maxDims);
theData = allocateArray(tid, dims);
H5.H5Dread( did, tid, HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL, HDF5Constants.H5P_DEFAULT, theData);
H5.H5Sclose(sid);
H5.H5Tclose(tid);
H5.H5Dclose(did);
H5.H5Fclose(fid);
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
10
www.hdfgroup.org
11. Object Package: the easy way
theData = Dataset.read();
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
11
www.hdfgroup.org
12. Object Package: main purposes
For the application developers
• Less function calls
• Easy to extend for specific needs
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
12
www.hdfgroup.org
16. Outline
• HDF-Java products
• Short demo of advanced features to
support NPOESS data
• Full support of HDF5 1.8 in HDF-Java
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
16
www.hdfgroup.org
17. Features to support NPOESS data
• Aggregated granules
• dataset pointed by an object reference
• Granules
• Subset pointed a region reference
• Quality Flags
• bits of quality flags packed in one byte
• HDFView version 2.5 patch 3
http://www.hdfgroup.org/ftp/HDF5/hdf-java/v25p3/
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
17
www.hdfgroup.org
18. Outline
• HDF-Java products
• Short demo of advanced features to
support NPOESS data
• Full support of HDF5 1.8 in HDF-Java
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
18
www.hdfgroup.org
19. HDF5 1.8 support
Take advantages of HDF5 1.8 library
• New capabilities.
• Performance improvements.
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
19
www.hdfgroup.org
20. HDF5 1.8 support
• Support HDF5 1.8 APIs in JHI5
• Use new APIs in the hdf-java objects
• Add 1.8 features in HDFView
www.hdfgroup.uiuc.edu/RFC/HDF5/hdf-java/
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
20
www.hdfgroup.org
21. HDF5 1.8 support: New APIs
No. of APIs
High
53
Comp. Date
Feb. 2010 Mar. 2010 ?
November 3-5, 2009
Medium
46
HDF/HDF-EOS Workshop XIII
Low
71
21
www.hdfgroup.org
22. HDF5 1.8 support: possible changes
• Package names
• “org.hdfgroup.hdf.”
• “hdf.”
• “ncsa.hdf.”
• Class structure
• H5, H5D, H5F, etc.
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
22
www.hdfgroup.org
23. Acknowledgements
This work was supported by cooperative agreement
number NNX08AO77A from the National
Aeronautics and Space Administration (NASA).
Any opinions, findings, conclusions, or
recommendations expressed in this material are
those of the author[s] and do not necessarily reflect
the views of the National Aeronautics and Space
Administration.
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
23
www.hdfgroup.org
24. The HDF Group
Thank You!
Questions/comments?
November 3-5, 2009
HDF/HDF-EOS Workshop XIII
24
www.hdfgroup.org