october 15-17, 2008hdf and hdf-eos workshop xii1 hdf-java products peter cao the hdf group hdf and...

24
October 15-17, 2008 HDF and HDF-EOS Workshop XII 1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Upload: allison-hall

Post on 17-Jan-2018

232 views

Category:

Documents


0 download

DESCRIPTION

October 15-17, 2008HDF and HDF-EOS Workshop XII3 Java Wrapper HDF

TRANSCRIPT

Page 1: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 1

HDF-Java Products

Peter CaoThe HDF Group

HDF and HDF-EOS Workshop XIIOctober 15, 2008

Page 2: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 2

What are the HDF-Java products?

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

Page 3: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 3

Java Wrapper

HDF

Page 4: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 4

Java Wrapper

HDF

Pure JavaLibrary

HDF

Java Native Interface

a programming framework that allows Java code to call and be called by applications and libraries written in other languages

Page 5: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 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

implement Hard to maintain (new features or

format changes)

Page 6: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 6

HDF JNI

• Pros: Easy to implement Easy to maintain

HDF

HDF

Java Native Interface

• Cons: Requires data conversion between C

and Java HDF JNI is platform dependent

Page 7: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Java Wrapper

October 15-17, 2008 HDF and HDF-EOS Workshop XII 7

HDF Java Native Interface

HDFLibrary.javaH5.java

libjhdf.so (or dll)

libjhdf5.so (or dll)

HDF4 library

HDF5 library

Page 8: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Java Wrapper: C versus Java

October 15-17, 2008 HDF and HDF-EOS Workshop XII 8

hid_t H5Fcreate (const char *name, unsigned flags, hid_t create_id, hid_t access_id );

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

herr_t H5Fclose (hid_t file_id );

public static native int H5Fcreate (String name,

int flags,int create_id,int access_id);

public static native int H5Fopen (String name,int flags,int access_id);

public static native int H5Fclose (int file_id);

C Java

Page 9: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 9

Object Package

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

Page 10: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Java Wrapper: simple dataset read

October 15-17, 2008 HDF and HDF-EOS Workshop XII 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);

Page 11: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: the easy way

October 15-17, 2008 HDF and HDF-EOS Workshop XII 11

theData = Dataset.read();

Page 12: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: main purposes

October 15-17, 2008 HDF and HDF-EOS Workshop XII 12

• Simplifies access to HDF files• Separates applications from libraries

Modular design Client server model

• Makes testing and maintenance easy

Page 13: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: levels of objects

October 15-17, 2008 HDF and HDF-EOS Workshop XII 13

Common Objectsncsa.hdf.object

jhdfobj.jar

HDF4ncsa.hdf.object.h4

jhdf4obj.jar

HDF5ncsa.hdf.object.h5

jhdf5obj.jar

Abstract classes

Implementation

Page 14: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: abstract classes

October 15-17, 2008 HDF and HDF-EOS Workshop XII 14

HObject

CompoundDSScalarDS

DatasetGroup

FileFormat

Page 15: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: HDF4 implementation

October 15-17, 2008 HDF and HDF-EOS Workshop XII 15

H4Group H4GRImageH4SDS H4Vdata

Group ScalarDS CompounDS

FileFormat

H4File

Page 16: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: HDF5 implementation

October 15-17, 2008 HDF and HDF-EOS Workshop XII 16

H5Group H5ScalarDS H5CompoundDS

Group ScalarDS CompounDS

FileFormat

H5File

Page 17: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Object Package: file create

October 15-17, 2008 HDF and HDF-EOS Workshop XII 17

import ncsa.hdf.object.*;

public class H5FileCreate{ private static String fname = "H5FileCreate.h5";

public static void main( String args[] ) throws Exception { FileFormat fileFormat = FileFormat.getFileFormat(FileFormat.FILE_TYPE_HDF5);

fileFormat.createFile(fname, FileFormat.FILE_CREATE);

}}

Page 18: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 18

HDFView

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

Page 19: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

HDFView: basic components

October 15-17, 2008 HDF and HDF-EOS Workshop XII 19

Page 20: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

HDFView: GUI components

October 15-17, 2008 HDF and HDF-EOS Workshop XII 20

HDFView(GUI)TreeView MetaDataView

TableView ImageView TextView

UserImp

UserImpUserImpUserImp

UserImp

Page 21: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

HDFView: all together

October 15-17, 2008 HDF and HDF-EOS Workshop XII 21

Page 22: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 22

What are the HDF-Java products?

HDF-Java

HDF

JavaWrapper

ObjectPackage

Viewer Editor

Page 23: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

October 15-17, 2008 HDF and HDF-EOS Workshop XII 23

This report is based upon work supported in part by a Cooperative Agreement with the National Aeronautics and Space Administration (NASA) under NASA Awards NNX06AC83A and NNX08AO77A. Any opinions, findings, and 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.

Thank You!

Page 24: October 15-17, 2008HDF and HDF-EOS Workshop XII1 HDF-Java Products Peter Cao The HDF Group HDF and HDF-EOS Workshop XII October 15, 2008

Questions/comments?

October 15-17, 2008 HDF and HDF-EOS Workshop XII 24