Top Banner
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 13 th HDF and HDF-EOS Workshop November 3-5, 2009
24

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.

Dec 14, 2015

Download

Documents

Keon Cunliffe
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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.

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

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

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

Page 5: 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.

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.

Page 6: 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.

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

Page 7: 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.

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

Page 8: 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.

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

Page 9: 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.

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

Object Package

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

Page 10: 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.

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.

Page 11: 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.

www.hdfgroup.org

Object Package: the easy way

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

theData = Dataset.read();

Page 12: 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.

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

Page 13: 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.

www.hdfgroup.org

Object Package: basic objects

File

DatasetGroup

Attribute

Datatype

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

Page 14: 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.

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

HDFView

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

Page 15: 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.

www.hdfgroup.org

HDFView

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

Page 16: 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.

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

Page 17: 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.

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/

Page 18: 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.

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

Page 19: 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.

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

Page 20: 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.

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/

Page 21: 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.

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

?

Page 22: 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.

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.

Page 23: 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.

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

Page 24: 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.

www.hdfgroup.org

The HDF Group

Thank You!

Questions/comments?

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