Top Banner
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
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.

Jan 17, 2018

Download

Documents

Allison Hall

October 15-17, 2008HDF and HDF-EOS Workshop XII3 Java Wrapper HDF
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: 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