Www.hdfgroup.org The HDF Group November 3-5, 2009HDF/HDF-EOS Workshop XIII1 HDF-Java Products Peter Cao The HDF Group The 13 th HDF and HDF-EOS Workshop.

Post on 14-Dec-2015

229 Views

Category:

Documents

11 Downloads

Preview:

Click to see full reader

Transcript

www.hdfgroup.org

The HDF Group

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 1

HDF-Java Products

Peter Cao The HDF Group The 13th HDF and HDF-EOS Workshop November 3-5, 2009

www.hdfgroup.org

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.orgNovember 3-5, 2009 HDF/HDF-EOS Workshop XIII 3

What are the HDF-Java products?

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

www.hdfgroup.orgNovember 3-5, 2009 HDF/HDF-EOS Workshop XIII 4

Java Wrapper

HDF

Pure JavaLibrary

HDF

JNI a programming framework that allows Java code to call and be called by applications and libraries written in other languagesNetCDF-Java library

www.hdfgroup.orgNovember 3-5, 2009 HDF/HDF-EOS Workshop XIII 5

Pure Java Library

• Pros:• True platform independence• Direct access to file (no data

conversion between C and Java)

HDF

Pure JavaLibrary

• Cons: Substantial amount of work to support

features in the C library.

www.hdfgroup.orgNovember 3-5, 2009 HDF/HDF-EOS Workshop XIII 6

HDF JNI

• Pros:• Easy to implement• Easy to keep up with the library changes

HDF

HDF

• Cons: Requires data conversion between C and

Java The JNI is platform dependent

www.hdfgroup.org

Java Wrapper

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 7

HDF C Native Impl.

Java C

H5.java h5Imp.c

www.hdfgroup.org

Java Wrapper: C versus Java

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 8

hid_t H5Fopen (

const char *name, unsigned flags, hid_t access_id );

public static native int H5Fopen (

String name,int flags,int access_id);

Java C

www.hdfgroup.orgNovember 3-5, 2009 HDF/HDF-EOS Workshop XIII 9

Object Package

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

www.hdfgroup.org

Java Wrapper: read data

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 10

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);

Is there an easy way?A very simple example.

www.hdfgroup.org

Object Package: the easy way

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 11

theData = Dataset.read();

www.hdfgroup.org

Object Package: main purposes

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 12

For the application developers• Less function calls• Easy to extend for specific needs

www.hdfgroup.org

Object Package: basic objects

File

DatasetGroup

Attribute

Datatype

http://www.hdfgroup.org/hdf-java-html/hdf-object/

www.hdfgroup.orgNovember 3-5, 2009 HDF/HDF-EOS Workshop XIII 14

HDFView

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

www.hdfgroup.org

HDFView

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 15

www.hdfgroup.org

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

Features to support NPOESS data

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 17

• 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 3http://www.hdfgroup.org/ftp/HDF5/hdf-java/v25p3/

www.hdfgroup.org

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

HDF5 1.8 support

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 19

• New capabilities.

• Performance improvements.

Take advantages of HDF5 1.8 library

www.hdfgroup.org

HDF5 1.8 support

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 20

• 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/

www.hdfgroup.org

HDF5 1.8 support: New APIs

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 21

High Medium

Low

No. of APIs 53 46 71Comp. Date

Feb. 2010

Mar. 2010

?

www.hdfgroup.org

HDF5 1.8 support: possible changes

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 22

• Package names• “org.hdfgroup.hdf.”• “hdf.”• “ncsa.hdf.”

• Class structure• H5, H5D, H5F, etc.

www.hdfgroup.org

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

The HDF Group

Thank You!

Questions/comments?

November 3-5, 2009 HDF/HDF-EOS Workshop XIII 24

top related