SlideShare une entreprise Scribd logo
1  sur  64
Implementation of HDFEOS5 and HDF5 in NCL
Wei Huang, Dave Brown, Mary Haley,
Rick Brownrigg
CISL/NCAR

Dennis Shea, Adam Phillips
CGD/NCAR

huangwei@ucar.edu
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization

2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization
◦ Free available as binaries, or open source

2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization
◦ Free available as binaries, or open source
◦ Supports NetCDF (3 and 4), GRIB (1 and 2),
HDF, HDF-EOS (as end of 2008)

2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization
◦ Free available as binaries, or open source
◦ Supports NetCDF (3 and 4), GRIB (1 and 2),
HDF, HDF-EOS (as end of 2008)
◦ Newly added HDF5 and HDF-EOS5 (in 2009)

2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization
◦ Free available as binaries, or open source
◦ Supports NetCDF (3 and 4), GRIB (1 and 2),
HDF, HDF-EOS (as end of 2008)
◦ Newly added HDF5 and HDF-EOS5 (in 2009)
◦ High quality graphics

2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization
◦ Free available as binaries, or open source
◦ Supports NetCDF (3 and 4), GRIB (1 and 2),
HDF, HDF-EOS (as end of 2008)
◦ Newly added HDF5 and HDF-EOS5 (in 2009)
◦ High quality graphics
◦ Hundreds of example scripts, lots of sample data
2/17/2014

CISL/NCAR
What is NCL
◦ NCL stands for NCAR Command Language
 check http://www.ncl.ucar.edu for more information

◦ NCL is developed at CISL/NCAR, for scientific
data analysis and visualization
◦ Free available as binaries, or open source
◦ Supports NetCDF (3 and 4), GRIB (1 and 2),
HDF, HDF-EOS (as end of 2008)
◦ Newly added HDF5 and HDF-EOS5 (in 2009)
◦ High quality graphics
◦ Hundreds of example scripts, lots of sample data
◦ PyNIO, Python interface for same NCL file I/O
2/17/2014

CISL/NCAR
HDF-EOS5 Implementation


Start with HDF-EOS Code
◦ Reconstruct function structure
◦ Create new HDF-EOS5 functions
◦ Variables follow the NetCDF data model

2/17/2014

CISL/NCAR
HDF-EOS5 Implementation


Start with HDF-EOS Code
◦ Reconstruct function structure
◦ Create new HDF-EOS5 functions
◦ Variables follow the NetCDF data model



How NCL open HDF-EOS5 files
◦ Command: f = addfile(filename, “r”)
 Filename has the form: body.suffix





NetCDF has suffix: nc, cdf, netcdf
Grib has: gr, gr1, grb, grb1, grib, gr2, grb2, grib2
HDF has: hdf, h4
HDF-EOS has: hdfeos, he2, he4
2/17/2014

CISL/NCAR
HDF-EOS5 Implementation
(continue)


HDF-EOS5 has suffix: he5
◦ Function addfile check file suffix, and when
suffix is he5, it knows to move function
pointers put to HDF-EOS5 functions
◦ HDF-EOS5 uses HDF5, but we do not need to
deal with HDF5 directly

2/17/2014

CISL/NCAR
HDF-EOS5 Sample

2/17/2014

CISL/NCAR
HDF-EOS5 Sample (continue)

2/17/2014

CISL/NCAR
HDF-EOS5 Sample (continue)

Reflectivity of the ground pixel
2/17/2014

CISL/NCAR
More HDF-EOS5 info


Visit NCL web site:
 http://www.ncl.ucar.edu/Applications/HDF.shtml



For Sample Plots and Sample Scripts

Currently at Beta Version
 May provide user binary on request


2/17/2014

CISL/NCAR
2/17/2014

CISL/NCAR
HDF5 Implementation


HDF5 is handled differently in NCL from
HDF in many ways
◦ Not just simply copy/modify from existing
HDF code

2/17/2014

CISL/NCAR
HDF5 Implementation


HDF5 is handled differently in NCL from
HDF in many ways
◦ Not just simply copy/modify from existing
HDF code



HDF5 Tools are useful:
◦ h5dump, h5ls, hdfview
◦ Help us understand data
structural/attribute/value, and coding

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)


Read Data on Demand
◦ Data structures are saved in memory, but not data
itself (sometimes, it is impossible)
◦ Data are read when in need

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)


First, HDF5 Has a Group (Root Group)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)
First, HDF5 Has a Group (Root Group)
 Second, a Group Has:


◦ Attributes
 Name, Type, Value, ……

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)
First, HDF5 Has a Group (Root Group)
 Second, a Group Has:


◦ Attributes
 Name, Type, Value, ……

◦ Datasets
 Attributes
 Name, Type, Dimensions, Value, ……

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)
First, HDF5 Has a Group (Root Group)
 Second, a Group Has:


◦ Attributes
 Name, Type, Value, ……

◦ Datasets
 Attributes
 Name, Type, Dimensions, Value, ……

◦ Links
◦ Groups
2/17/2014

CISL/NCAR
HDF5 Implementation (continue)
First, HDF5 Has a Group (Root Group)
 Second, a Group Has:


◦ Attributes
 Name, Type, Value, ……

◦ Datasets
 Attributes
 Name, Type, Dimensions, Value, ……

◦ Links
◦ Groups


Let us have a visual view
2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out


f = addfile(“MOD13A2A.h5", "r”)
◦ ;print(f)

;NCL treats “;” as comments thereafter

◦ printVarSummary(f)

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
Variable: f
filename:
MOD13A2A
path: MOD13A2A.h5
file global attributes:
ArchiveMetadata.0_GLOSDS :
GROUP
= ARCHIVEDMETADATA
GROUPTYPE
= MASTERGROUP
….

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
dimensions:
YDim:MODIS_Grid_16DAY_1km_VI = 1200
XDim:MODIS_Grid_16DAY_1km_VI = 1200

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
variables:
group </HDF4_DIMGROUP>
group </MODIS_Grid_16DAY_1km_VI>
HDF4_OBJECT_NAME : MODIS_Grid_16DAY_1km_VI
HDF4_OBJECT_TYPE : Vgroup
HDF4_REF_NUM : 2

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
short 1_km_16_days_EVI ( YDim:MODIS_Grid_16DAY_1km_VI,
XDim:MODIS_Grid_16DAY_1km_VI )
HDF4_REF_NUM : 6
_FillValue : -3000
add_offset :

0

add_offset_err :
long_name :

0

1 km 16 days EVI

scale_factor : 10000
scale_factor_err :
units :

0

EVI

valid_range : ( -2000, 10000 )
…...

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
f = addfile(“MOD13A2A.h5", "r”)
printVarSummary(f)
Variable: f
(0)
filename:

MOD13A2A

path: MOD13A2A.h5
file global attributes:
ArchiveMetadata.0_GLOSDS :
GROUP
= ARCHIVEDMETADATA

GROUPTYPE
….

= MASTERGROUP

dimensions:
YDim:MODIS_Grid_16DAY_1km_VI = 1200
XDim:MODIS_Grid_16DAY_1km_VI = 1200
variables:
group </HDF4_DIMGROUP>

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
grps = getfilegroups(f, "/", 0)
print(grps)

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
grps = getfilegroups(f, "/", 0)
print(grps)

Variable: grps
Type: string
Total Size: 16 bytes

4 values
Number of Dimensions: 1
Dimensions and sizes: [4]
Coordinates:
(0)

/HDF4_DIMGROUP

(1)

/MODIS_Grid_16DAY_1km_VI

(2)

/MODIS_Grid_16DAY_1km_VI/Data Fields

(3)

/MODIS_Grid_16DAY_1km_VI/Grid Attributes

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
grps2 = getfilegroups(f, "/MODIS_Grid_16DAY_1km_VI", 0)
print(grps2)

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
grps2 = getfilegroups(f, "/MODIS_Grid_16DAY_1km_VI", 0)
print(grps2)
Variable: grps2
Type: string
Total Size: 8 bytes
2 values
Number of Dimensions: 1
Dimensions and sizes: [2]
Coordinates:
(0) /MODIS_Grid_16DAY_1km_VI/Data Fields
(1) /MODIS_Grid_16DAY_1km_VI/Grid Attributes
2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
v1 = f->1_km_16_days_red_reflectance
printVarSummary(v1)

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
v1 = f->1_km_16_days_red_reflectance
printVarSummary(v1)
Variable: v1
Type: short
Total Size: 2880000 bytes
1440000 values
Number of Dimensions: 2

Dimensions and sizes:

[YDim:MODIS_Grid_16DAY_1km_VI | 1200] x[XDim:MODIS_Grid_16DAY_1km_VI | 1200]

Coordinates:
Number Of Attributes: 13
_FillValue : -1000

long_name : 1 km 16 days red reflectance
……
2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
vn = grps2(0)+"/1 km 16 days blue reflectance”
v2 = f->$vn$
printVarSummary(v2)

2/17/2014

CISL/NCAR
Sample Script to Read HDF5 and
Some Print-out (continue)
vn = grps2(0)+"/1 km 16 days blue reflectance”
v2 = f->$vn$
printVarSummary(v2)
Variable: v2
Type: short
Total Size: 2880000 bytes
1440000 values
Number of Dimensions: 2
Dimensions and sizes: [YDim:MODIS_Grid_16DAY_1km_VI | 1200] x [XDim:MODIS_Grid_16DAY_1km_VI | 1200]
Coordinates:
Number Of Attributes: 13
……
_FillValue : -1000
long_name : 1 km 16 days blue reflectance
……

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
HDF5 Implementation (continue)

2/17/2014

CISL/NCAR
Another Sample Script to Read HDF5
fn = "K1VHR_23SEP2008_2330_L02_SST.h5”
f = addfile(fn, "r”)
print(f)

lon1d = f->/SST/SST_Composite.Longitude
lat1d = f->/SST/SST_Composite.Latitude
sst1d = f->/SST/SST_Dataset.SST

2/17/2014

CISL/NCAR
Print-out
filename:
K1VHR_23SEP2008_2330_L02_SST
file global attributes:
dimensions:
DIM_000 = 36381
variables:
group </PRODUCT_INFORMATION>
group </PRODUCT_METADATA>
group </PRODUCT_METADATA/PRODUCT_DETAILS>
group </PRODUCT_METADATA/PROJECTION_PARAMETERS>
group </SST>
compound <SST_Composite> (Latitude, Longitude, SST) (DIM_000)
compound <SST_Dataset>

(Latitude, Longitude, SST) (DIM_000)

group </SST/GP_PARAM_INFO>

2/17/2014

CISL/NCAR
Plot for Compound Dataset

2/17/2014

CISL/NCAR
Add This Lines to Generate above Plot
dimlon = dimsizes(lon1d)

res@mpLimitMode

= "Corners”

dimlat = dimsizes(lat1d)

res@mpLeftCornerLatF

= lat1d(0)

sst1d@long_name = "SST”

res@mpLeftCornerLonF = lon1d(0)

sst1d@units = "K”

res@mpRightCornerLatF = lat1d(dimlat(0) - 1)

sst1d@_FillValue = -999.

res@mpRightCornerLonF = lon1d(dimlon(0) - 1)

wks = gsn_open_wks ("x11",”K1VHR”)

res@sfXArray = lon1d

res

res@sfYArray = lat1d

= True

res@cnFillOn

= True

res@cnLinesOn

plot = gsn_csm_contour_map (wks, sst1d, res)

= False

res@cnLineLabelsOn = False
res@cnFillMode

= "RasterFill”

res@cnRasterSmoothingOn = True
res@gsnSpreadColors = True
res@gsnAddCyclic

= False

res@lbLabelAutoStride = True
res@tiMainString

= fn

2/17/2014

CISL/NCAR
Summary


No need to become an expert on HDFEOS5 or HDF5 interfaces
◦ User can “check” and “go”

2/17/2014

CISL/NCAR
Summary


No need to become an expert on HDFEOS5 or HDF5 interfaces
◦ User can “check” and “go”



NCL with HDF-EOS5 is in Beta Version
◦ Will be released early 2010
◦ User may ask for binary

2/17/2014

CISL/NCAR
Summary


No need to become an expert on HDFEOS5 or HDF5 interfaces
◦ User can “check” and “go”



NCL with HDF-EOS5 is in Beta Version
◦ Will be released early 2010
◦ User may ask for binary



NCL with HDF5 is in Alpha Version
◦ Will be released Later 2010
◦ Try to be a friendly user for early beta test
2/17/2014

CISL/NCAR
Conclusion


HDF-EOS5 is handled well in NCL
◦
◦
◦
◦
◦

Swath data tested
Grid data tested
Prototype for Point data
Prototype for Zonal-Average data
Currently in Beta Version

2/17/2014

CISL/NCAR
Conclusion


HDF-EOS5 is handled well in NCL
◦
◦
◦
◦
◦



Swath data tested
Grid data tested
Prototype for Point data
Prototype for Zonal-Average data
Currently in Beta Version

Lots of can be done with HDF5 in NCL
◦ Some satellite data tested
◦ Currently in Alpha Version
2/17/2014

CISL/NCAR
2/17/2014

CISL/NCAR
2/17/2014

CISL/NCAR
A Full NCL Script
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl”
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl”
f = addfile("NISESSMI.h5", "r”)
grps1 = getfilegroups(f, "/Southern Hemisphere/", 0)
vs = grps1(0)+"/Extent”
v1 = f->$vs$
grps2 = getfilegroups(f, "/Northern Hemisphere/", 0)
vn = grps2(0)+"/Extent”
v2 = f->$vn$
wks = gsn_open_wks ("ps","NISESSMI”)
gsn_define_colormap(wks,"rainbow”)
2/17/2014

CISL/NCAR
A Full NCL Script (Continue)
res
= True
res@tiMainString = "NISESSMI.h5”
res@cnFillOn
= True
res@cnLinesOn
= False
res@cnLineLabelsOn = False
res@gsnSpreadColors = True
res@lbLabelAutoStride= True
res@lbOrientation = "Vertical”
res@cnFillMode
= "RasterFill"
; faster
res@cnRasterSmoothingOn = True
res@tiMainString = vs
plot1 = gsn_csm_contour (wks, tofloat(v1), res)
res@tiMainString = vn
plot2 = gsn_csm_contour (wks, tofloat(v2), res)
2/17/2014

CISL/NCAR

Contenu connexe

Tendances

2019 IRIS-HEP AS workshop: Particles and decays
2019 IRIS-HEP AS workshop: Particles and decays2019 IRIS-HEP AS workshop: Particles and decays
2019 IRIS-HEP AS workshop: Particles and decaysHenry Schreiner
 
2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...
2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...
2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...Dr.-Ing. Thomas Hartmann
 
Hadoop Jute Record Python
Hadoop Jute Record PythonHadoop Jute Record Python
Hadoop Jute Record PythonPaul Tarjan
 
Nov HUG 2009: Hadoop Record Reader In Python
Nov HUG 2009: Hadoop Record Reader In PythonNov HUG 2009: Hadoop Record Reader In Python
Nov HUG 2009: Hadoop Record Reader In PythonYahoo Developer Network
 
DUG'20: 07 - Storing High-Energy Physics data in DAOS
DUG'20: 07 - Storing High-Energy Physics data in DAOSDUG'20: 07 - Storing High-Energy Physics data in DAOS
DUG'20: 07 - Storing High-Energy Physics data in DAOSAndrey Kudryavtsev
 
2019 IRIS-HEP AS workshop: Boost-histogram and hist
2019 IRIS-HEP AS workshop: Boost-histogram and hist2019 IRIS-HEP AS workshop: Boost-histogram and hist
2019 IRIS-HEP AS workshop: Boost-histogram and histHenry Schreiner
 
NeuLion IBC2017 展示概要
NeuLion IBC2017 展示概要NeuLion IBC2017 展示概要
NeuLion IBC2017 展示概要Taro Hagiya
 
PyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming PackagesPyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming PackagesHenry Schreiner
 
NAT64 en LACNIC 18: Experimentos con NAT64 sin estado
NAT64 en LACNIC 18: Experimentos con NAT64 sin estadoNAT64 en LACNIC 18: Experimentos con NAT64 sin estado
NAT64 en LACNIC 18: Experimentos con NAT64 sin estadoCarlos Martinez Cagnazzo
 

Tendances (20)

MODIS Reprojection Tool
MODIS Reprojection ToolMODIS Reprojection Tool
MODIS Reprojection Tool
 
2019 IRIS-HEP AS workshop: Particles and decays
2019 IRIS-HEP AS workshop: Particles and decays2019 IRIS-HEP AS workshop: Particles and decays
2019 IRIS-HEP AS workshop: Particles and decays
 
ACAT 2017: GooFit 2.0
ACAT 2017: GooFit 2.0ACAT 2017: GooFit 2.0
ACAT 2017: GooFit 2.0
 
NASA HDF/HDF-EOS Data Access Challenges
NASA HDF/HDF-EOS Data Access ChallengesNASA HDF/HDF-EOS Data Access Challenges
NASA HDF/HDF-EOS Data Access Challenges
 
Hadoop
HadoopHadoop
Hadoop
 
HDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFView
HDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFViewHDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFView
HDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFView
 
Pybind11 - SciPy 2021
Pybind11 - SciPy 2021Pybind11 - SciPy 2021
Pybind11 - SciPy 2021
 
2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...
2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...
2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermedia...
 
Tools to improve the usability of NASA HDF Data
Tools to improve the usability of NASA HDF DataTools to improve the usability of NASA HDF Data
Tools to improve the usability of NASA HDF Data
 
HDF Tools Tutorial
HDF Tools TutorialHDF Tools Tutorial
HDF Tools Tutorial
 
Hadoop Jute Record Python
Hadoop Jute Record PythonHadoop Jute Record Python
Hadoop Jute Record Python
 
Nov HUG 2009: Hadoop Record Reader In Python
Nov HUG 2009: Hadoop Record Reader In PythonNov HUG 2009: Hadoop Record Reader In Python
Nov HUG 2009: Hadoop Record Reader In Python
 
DUG'20: 07 - Storing High-Energy Physics data in DAOS
DUG'20: 07 - Storing High-Energy Physics data in DAOSDUG'20: 07 - Storing High-Energy Physics data in DAOS
DUG'20: 07 - Storing High-Energy Physics data in DAOS
 
PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8
 
2019 IRIS-HEP AS workshop: Boost-histogram and hist
2019 IRIS-HEP AS workshop: Boost-histogram and hist2019 IRIS-HEP AS workshop: Boost-histogram and hist
2019 IRIS-HEP AS workshop: Boost-histogram and hist
 
NeuLion IBC2017 展示概要
NeuLion IBC2017 展示概要NeuLion IBC2017 展示概要
NeuLion IBC2017 展示概要
 
Using HDF5 and Python: The H5py module
Using HDF5 and Python: The H5py moduleUsing HDF5 and Python: The H5py module
Using HDF5 and Python: The H5py module
 
PyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming PackagesPyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming Packages
 
Introduction to HDF5 Data and Programming Models
Introduction to HDF5 Data and Programming ModelsIntroduction to HDF5 Data and Programming Models
Introduction to HDF5 Data and Programming Models
 
NAT64 en LACNIC 18: Experimentos con NAT64 sin estado
NAT64 en LACNIC 18: Experimentos con NAT64 sin estadoNAT64 en LACNIC 18: Experimentos con NAT64 sin estado
NAT64 en LACNIC 18: Experimentos con NAT64 sin estado
 

Similaire à Implementation of HDF-EOS5 and HDF5 into NCL

Similaire à Implementation of HDF-EOS5 and HDF5 into NCL (20)

Introduction to NetCDF-4
Introduction to NetCDF-4Introduction to NetCDF-4
Introduction to NetCDF-4
 
HDF Update for DAAC Managers (2017-02-27)
HDF Update for DAAC Managers (2017-02-27)HDF Update for DAAC Managers (2017-02-27)
HDF Update for DAAC Managers (2017-02-27)
 
Ensuring Long Term Access to Remotely Sensed HDF4 Data with Layout Maps
Ensuring Long Term Access to Remotely Sensed HDF4 Data with Layout MapsEnsuring Long Term Access to Remotely Sensed HDF4 Data with Layout Maps
Ensuring Long Term Access to Remotely Sensed HDF4 Data with Layout Maps
 
Access HDF5 Datasets via OPeNDAP's Data Access Protocol (DAP)
Access HDF5 Datasets via OPeNDAP's Data Access Protocol (DAP)Access HDF5 Datasets via OPeNDAP's Data Access Protocol (DAP)
Access HDF5 Datasets via OPeNDAP's Data Access Protocol (DAP)
 
HDF Update
HDF UpdateHDF Update
HDF Update
 
HDF Update
HDF UpdateHDF Update
HDF Update
 
Integrating HDF5 with SRB
Integrating HDF5 with SRBIntegrating HDF5 with SRB
Integrating HDF5 with SRB
 
Easy Access of NASA HDF data via OPeNDAP
Easy Access of NASA HDF data via OPeNDAPEasy Access of NASA HDF data via OPeNDAP
Easy Access of NASA HDF data via OPeNDAP
 
HDF OPeNDAP update
HDF OPeNDAP updateHDF OPeNDAP update
HDF OPeNDAP update
 
Using HDF5 tools for performance tuning and troubleshooting
Using HDF5 tools for performance tuning and troubleshootingUsing HDF5 tools for performance tuning and troubleshooting
Using HDF5 tools for performance tuning and troubleshooting
 
HDF5 Documentation
HDF5 DocumentationHDF5 Documentation
HDF5 Documentation
 
Real IO and Parallel NetCDF4 Performance
Real IO and Parallel NetCDF4 PerformanceReal IO and Parallel NetCDF4 Performance
Real IO and Parallel NetCDF4 Performance
 
HDF Updae
HDF UpdaeHDF Updae
HDF Updae
 
HDF Project Update
HDF Project UpdateHDF Project Update
HDF Project Update
 
HDF OPeNDAP project update and demo
HDF OPeNDAP project update and demoHDF OPeNDAP project update and demo
HDF OPeNDAP project update and demo
 
HDF5 iRODS
HDF5 iRODSHDF5 iRODS
HDF5 iRODS
 
HDF Update
HDF UpdateHDF Update
HDF Update
 
Easy Remote Access Via OPeNDAP
Easy Remote Access Via OPeNDAPEasy Remote Access Via OPeNDAP
Easy Remote Access Via OPeNDAP
 
HDF5 Tools Update
HDF5 Tools UpdateHDF5 Tools Update
HDF5 Tools Update
 
Support for NPP/NPOESS by The HDF Group
Support for NPP/NPOESS by The HDF GroupSupport for NPP/NPOESS by The HDF Group
Support for NPP/NPOESS by The HDF Group
 

Plus de The HDF-EOS Tools and Information Center

STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...The HDF-EOS Tools and Information Center
 

Plus de The HDF-EOS Tools and Information Center (20)

Cloud-Optimized HDF5 Files
Cloud-Optimized HDF5 FilesCloud-Optimized HDF5 Files
Cloud-Optimized HDF5 Files
 
Accessing HDF5 data in the cloud with HSDS
Accessing HDF5 data in the cloud with HSDSAccessing HDF5 data in the cloud with HSDS
Accessing HDF5 data in the cloud with HSDS
 
The State of HDF
The State of HDFThe State of HDF
The State of HDF
 
Highly Scalable Data Service (HSDS) Performance Features
Highly Scalable Data Service (HSDS) Performance FeaturesHighly Scalable Data Service (HSDS) Performance Features
Highly Scalable Data Service (HSDS) Performance Features
 
Creating Cloud-Optimized HDF5 Files
Creating Cloud-Optimized HDF5 FilesCreating Cloud-Optimized HDF5 Files
Creating Cloud-Optimized HDF5 Files
 
HDF5 OPeNDAP Handler Updates, and Performance Discussion
HDF5 OPeNDAP Handler Updates, and Performance DiscussionHDF5 OPeNDAP Handler Updates, and Performance Discussion
HDF5 OPeNDAP Handler Updates, and Performance Discussion
 
Hyrax: Serving Data from S3
Hyrax: Serving Data from S3Hyrax: Serving Data from S3
Hyrax: Serving Data from S3
 
Accessing Cloud Data and Services Using EDL, Pydap, MATLAB
Accessing Cloud Data and Services Using EDL, Pydap, MATLABAccessing Cloud Data and Services Using EDL, Pydap, MATLAB
Accessing Cloud Data and Services Using EDL, Pydap, MATLAB
 
HDF - Current status and Future Directions
HDF - Current status and Future DirectionsHDF - Current status and Future Directions
HDF - Current status and Future Directions
 
HDFEOS.org User Analsys, Updates, and Future
HDFEOS.org User Analsys, Updates, and FutureHDFEOS.org User Analsys, Updates, and Future
HDFEOS.org User Analsys, Updates, and Future
 
HDF - Current status and Future Directions
HDF - Current status and Future Directions HDF - Current status and Future Directions
HDF - Current status and Future Directions
 
H5Coro: The Cloud-Optimized Read-Only Library
H5Coro: The Cloud-Optimized Read-Only LibraryH5Coro: The Cloud-Optimized Read-Only Library
H5Coro: The Cloud-Optimized Read-Only Library
 
MATLAB Modernization on HDF5 1.10
MATLAB Modernization on HDF5 1.10MATLAB Modernization on HDF5 1.10
MATLAB Modernization on HDF5 1.10
 
HDF for the Cloud - Serverless HDF
HDF for the Cloud - Serverless HDFHDF for the Cloud - Serverless HDF
HDF for the Cloud - Serverless HDF
 
HDF5 <-> Zarr
HDF5 <-> ZarrHDF5 <-> Zarr
HDF5 <-> Zarr
 
HDF for the Cloud - New HDF Server Features
HDF for the Cloud - New HDF Server FeaturesHDF for the Cloud - New HDF Server Features
HDF for the Cloud - New HDF Server Features
 
Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3
Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3
Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3
 
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
 
HDF5 and Ecosystem: What Is New?
HDF5 and Ecosystem: What Is New?HDF5 and Ecosystem: What Is New?
HDF5 and Ecosystem: What Is New?
 
HDF5 Roadmap 2019-2020
HDF5 Roadmap 2019-2020HDF5 Roadmap 2019-2020
HDF5 Roadmap 2019-2020
 

Dernier

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Implementation of HDF-EOS5 and HDF5 into NCL

  • 1. Implementation of HDFEOS5 and HDF5 in NCL Wei Huang, Dave Brown, Mary Haley, Rick Brownrigg CISL/NCAR Dennis Shea, Adam Phillips CGD/NCAR huangwei@ucar.edu
  • 2. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information 2/17/2014 CISL/NCAR
  • 3. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization 2/17/2014 CISL/NCAR
  • 4. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization ◦ Free available as binaries, or open source 2/17/2014 CISL/NCAR
  • 5. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization ◦ Free available as binaries, or open source ◦ Supports NetCDF (3 and 4), GRIB (1 and 2), HDF, HDF-EOS (as end of 2008) 2/17/2014 CISL/NCAR
  • 6. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization ◦ Free available as binaries, or open source ◦ Supports NetCDF (3 and 4), GRIB (1 and 2), HDF, HDF-EOS (as end of 2008) ◦ Newly added HDF5 and HDF-EOS5 (in 2009) 2/17/2014 CISL/NCAR
  • 7. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization ◦ Free available as binaries, or open source ◦ Supports NetCDF (3 and 4), GRIB (1 and 2), HDF, HDF-EOS (as end of 2008) ◦ Newly added HDF5 and HDF-EOS5 (in 2009) ◦ High quality graphics 2/17/2014 CISL/NCAR
  • 8. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization ◦ Free available as binaries, or open source ◦ Supports NetCDF (3 and 4), GRIB (1 and 2), HDF, HDF-EOS (as end of 2008) ◦ Newly added HDF5 and HDF-EOS5 (in 2009) ◦ High quality graphics ◦ Hundreds of example scripts, lots of sample data 2/17/2014 CISL/NCAR
  • 9. What is NCL ◦ NCL stands for NCAR Command Language  check http://www.ncl.ucar.edu for more information ◦ NCL is developed at CISL/NCAR, for scientific data analysis and visualization ◦ Free available as binaries, or open source ◦ Supports NetCDF (3 and 4), GRIB (1 and 2), HDF, HDF-EOS (as end of 2008) ◦ Newly added HDF5 and HDF-EOS5 (in 2009) ◦ High quality graphics ◦ Hundreds of example scripts, lots of sample data ◦ PyNIO, Python interface for same NCL file I/O 2/17/2014 CISL/NCAR
  • 10. HDF-EOS5 Implementation  Start with HDF-EOS Code ◦ Reconstruct function structure ◦ Create new HDF-EOS5 functions ◦ Variables follow the NetCDF data model 2/17/2014 CISL/NCAR
  • 11. HDF-EOS5 Implementation  Start with HDF-EOS Code ◦ Reconstruct function structure ◦ Create new HDF-EOS5 functions ◦ Variables follow the NetCDF data model  How NCL open HDF-EOS5 files ◦ Command: f = addfile(filename, “r”)  Filename has the form: body.suffix     NetCDF has suffix: nc, cdf, netcdf Grib has: gr, gr1, grb, grb1, grib, gr2, grb2, grib2 HDF has: hdf, h4 HDF-EOS has: hdfeos, he2, he4 2/17/2014 CISL/NCAR
  • 12. HDF-EOS5 Implementation (continue)  HDF-EOS5 has suffix: he5 ◦ Function addfile check file suffix, and when suffix is he5, it knows to move function pointers put to HDF-EOS5 functions ◦ HDF-EOS5 uses HDF5, but we do not need to deal with HDF5 directly 2/17/2014 CISL/NCAR
  • 15. HDF-EOS5 Sample (continue) Reflectivity of the ground pixel 2/17/2014 CISL/NCAR
  • 16. More HDF-EOS5 info  Visit NCL web site:  http://www.ncl.ucar.edu/Applications/HDF.shtml  For Sample Plots and Sample Scripts Currently at Beta Version  May provide user binary on request  2/17/2014 CISL/NCAR
  • 18. HDF5 Implementation  HDF5 is handled differently in NCL from HDF in many ways ◦ Not just simply copy/modify from existing HDF code 2/17/2014 CISL/NCAR
  • 19. HDF5 Implementation  HDF5 is handled differently in NCL from HDF in many ways ◦ Not just simply copy/modify from existing HDF code  HDF5 Tools are useful: ◦ h5dump, h5ls, hdfview ◦ Help us understand data structural/attribute/value, and coding 2/17/2014 CISL/NCAR
  • 20. HDF5 Implementation (continue)  Read Data on Demand ◦ Data structures are saved in memory, but not data itself (sometimes, it is impossible) ◦ Data are read when in need 2/17/2014 CISL/NCAR
  • 21. HDF5 Implementation (continue)  First, HDF5 Has a Group (Root Group) 2/17/2014 CISL/NCAR
  • 22. HDF5 Implementation (continue) First, HDF5 Has a Group (Root Group)  Second, a Group Has:  ◦ Attributes  Name, Type, Value, …… 2/17/2014 CISL/NCAR
  • 23. HDF5 Implementation (continue) First, HDF5 Has a Group (Root Group)  Second, a Group Has:  ◦ Attributes  Name, Type, Value, …… ◦ Datasets  Attributes  Name, Type, Dimensions, Value, …… 2/17/2014 CISL/NCAR
  • 24. HDF5 Implementation (continue) First, HDF5 Has a Group (Root Group)  Second, a Group Has:  ◦ Attributes  Name, Type, Value, …… ◦ Datasets  Attributes  Name, Type, Dimensions, Value, …… ◦ Links ◦ Groups 2/17/2014 CISL/NCAR
  • 25. HDF5 Implementation (continue) First, HDF5 Has a Group (Root Group)  Second, a Group Has:  ◦ Attributes  Name, Type, Value, …… ◦ Datasets  Attributes  Name, Type, Dimensions, Value, …… ◦ Links ◦ Groups  Let us have a visual view 2/17/2014 CISL/NCAR
  • 32. Sample Script to Read HDF5 and Some Print-out  f = addfile(“MOD13A2A.h5", "r”) ◦ ;print(f) ;NCL treats “;” as comments thereafter ◦ printVarSummary(f) 2/17/2014 CISL/NCAR
  • 33. Sample Script to Read HDF5 and Some Print-out (continue) Variable: f filename: MOD13A2A path: MOD13A2A.h5 file global attributes: ArchiveMetadata.0_GLOSDS : GROUP = ARCHIVEDMETADATA GROUPTYPE = MASTERGROUP …. 2/17/2014 CISL/NCAR
  • 34. Sample Script to Read HDF5 and Some Print-out (continue) dimensions: YDim:MODIS_Grid_16DAY_1km_VI = 1200 XDim:MODIS_Grid_16DAY_1km_VI = 1200 2/17/2014 CISL/NCAR
  • 35. Sample Script to Read HDF5 and Some Print-out (continue) variables: group </HDF4_DIMGROUP> group </MODIS_Grid_16DAY_1km_VI> HDF4_OBJECT_NAME : MODIS_Grid_16DAY_1km_VI HDF4_OBJECT_TYPE : Vgroup HDF4_REF_NUM : 2 2/17/2014 CISL/NCAR
  • 36. Sample Script to Read HDF5 and Some Print-out (continue) short 1_km_16_days_EVI ( YDim:MODIS_Grid_16DAY_1km_VI, XDim:MODIS_Grid_16DAY_1km_VI ) HDF4_REF_NUM : 6 _FillValue : -3000 add_offset : 0 add_offset_err : long_name : 0 1 km 16 days EVI scale_factor : 10000 scale_factor_err : units : 0 EVI valid_range : ( -2000, 10000 ) …... 2/17/2014 CISL/NCAR
  • 37. Sample Script to Read HDF5 and Some Print-out (continue) f = addfile(“MOD13A2A.h5", "r”) printVarSummary(f) Variable: f (0) filename: MOD13A2A path: MOD13A2A.h5 file global attributes: ArchiveMetadata.0_GLOSDS : GROUP = ARCHIVEDMETADATA GROUPTYPE …. = MASTERGROUP dimensions: YDim:MODIS_Grid_16DAY_1km_VI = 1200 XDim:MODIS_Grid_16DAY_1km_VI = 1200 variables: group </HDF4_DIMGROUP> 2/17/2014 CISL/NCAR
  • 38. Sample Script to Read HDF5 and Some Print-out (continue) grps = getfilegroups(f, "/", 0) print(grps) 2/17/2014 CISL/NCAR
  • 39. Sample Script to Read HDF5 and Some Print-out (continue) grps = getfilegroups(f, "/", 0) print(grps) Variable: grps Type: string Total Size: 16 bytes 4 values Number of Dimensions: 1 Dimensions and sizes: [4] Coordinates: (0) /HDF4_DIMGROUP (1) /MODIS_Grid_16DAY_1km_VI (2) /MODIS_Grid_16DAY_1km_VI/Data Fields (3) /MODIS_Grid_16DAY_1km_VI/Grid Attributes 2/17/2014 CISL/NCAR
  • 40. Sample Script to Read HDF5 and Some Print-out (continue) grps2 = getfilegroups(f, "/MODIS_Grid_16DAY_1km_VI", 0) print(grps2) 2/17/2014 CISL/NCAR
  • 41. Sample Script to Read HDF5 and Some Print-out (continue) grps2 = getfilegroups(f, "/MODIS_Grid_16DAY_1km_VI", 0) print(grps2) Variable: grps2 Type: string Total Size: 8 bytes 2 values Number of Dimensions: 1 Dimensions and sizes: [2] Coordinates: (0) /MODIS_Grid_16DAY_1km_VI/Data Fields (1) /MODIS_Grid_16DAY_1km_VI/Grid Attributes 2/17/2014 CISL/NCAR
  • 42. Sample Script to Read HDF5 and Some Print-out (continue) v1 = f->1_km_16_days_red_reflectance printVarSummary(v1) 2/17/2014 CISL/NCAR
  • 43. Sample Script to Read HDF5 and Some Print-out (continue) v1 = f->1_km_16_days_red_reflectance printVarSummary(v1) Variable: v1 Type: short Total Size: 2880000 bytes 1440000 values Number of Dimensions: 2 Dimensions and sizes: [YDim:MODIS_Grid_16DAY_1km_VI | 1200] x[XDim:MODIS_Grid_16DAY_1km_VI | 1200] Coordinates: Number Of Attributes: 13 _FillValue : -1000 long_name : 1 km 16 days red reflectance …… 2/17/2014 CISL/NCAR
  • 44. Sample Script to Read HDF5 and Some Print-out (continue) vn = grps2(0)+"/1 km 16 days blue reflectance” v2 = f->$vn$ printVarSummary(v2) 2/17/2014 CISL/NCAR
  • 45. Sample Script to Read HDF5 and Some Print-out (continue) vn = grps2(0)+"/1 km 16 days blue reflectance” v2 = f->$vn$ printVarSummary(v2) Variable: v2 Type: short Total Size: 2880000 bytes 1440000 values Number of Dimensions: 2 Dimensions and sizes: [YDim:MODIS_Grid_16DAY_1km_VI | 1200] x [XDim:MODIS_Grid_16DAY_1km_VI | 1200] Coordinates: Number Of Attributes: 13 …… _FillValue : -1000 long_name : 1 km 16 days blue reflectance …… 2/17/2014 CISL/NCAR
  • 52. Another Sample Script to Read HDF5 fn = "K1VHR_23SEP2008_2330_L02_SST.h5” f = addfile(fn, "r”) print(f) lon1d = f->/SST/SST_Composite.Longitude lat1d = f->/SST/SST_Composite.Latitude sst1d = f->/SST/SST_Dataset.SST 2/17/2014 CISL/NCAR
  • 53. Print-out filename: K1VHR_23SEP2008_2330_L02_SST file global attributes: dimensions: DIM_000 = 36381 variables: group </PRODUCT_INFORMATION> group </PRODUCT_METADATA> group </PRODUCT_METADATA/PRODUCT_DETAILS> group </PRODUCT_METADATA/PROJECTION_PARAMETERS> group </SST> compound <SST_Composite> (Latitude, Longitude, SST) (DIM_000) compound <SST_Dataset> (Latitude, Longitude, SST) (DIM_000) group </SST/GP_PARAM_INFO> 2/17/2014 CISL/NCAR
  • 54. Plot for Compound Dataset 2/17/2014 CISL/NCAR
  • 55. Add This Lines to Generate above Plot dimlon = dimsizes(lon1d) res@mpLimitMode = "Corners” dimlat = dimsizes(lat1d) res@mpLeftCornerLatF = lat1d(0) sst1d@long_name = "SST” res@mpLeftCornerLonF = lon1d(0) sst1d@units = "K” res@mpRightCornerLatF = lat1d(dimlat(0) - 1) sst1d@_FillValue = -999. res@mpRightCornerLonF = lon1d(dimlon(0) - 1) wks = gsn_open_wks ("x11",”K1VHR”) res@sfXArray = lon1d res res@sfYArray = lat1d = True res@cnFillOn = True res@cnLinesOn plot = gsn_csm_contour_map (wks, sst1d, res) = False res@cnLineLabelsOn = False res@cnFillMode = "RasterFill” res@cnRasterSmoothingOn = True res@gsnSpreadColors = True res@gsnAddCyclic = False res@lbLabelAutoStride = True res@tiMainString = fn 2/17/2014 CISL/NCAR
  • 56. Summary  No need to become an expert on HDFEOS5 or HDF5 interfaces ◦ User can “check” and “go” 2/17/2014 CISL/NCAR
  • 57. Summary  No need to become an expert on HDFEOS5 or HDF5 interfaces ◦ User can “check” and “go”  NCL with HDF-EOS5 is in Beta Version ◦ Will be released early 2010 ◦ User may ask for binary 2/17/2014 CISL/NCAR
  • 58. Summary  No need to become an expert on HDFEOS5 or HDF5 interfaces ◦ User can “check” and “go”  NCL with HDF-EOS5 is in Beta Version ◦ Will be released early 2010 ◦ User may ask for binary  NCL with HDF5 is in Alpha Version ◦ Will be released Later 2010 ◦ Try to be a friendly user for early beta test 2/17/2014 CISL/NCAR
  • 59. Conclusion  HDF-EOS5 is handled well in NCL ◦ ◦ ◦ ◦ ◦ Swath data tested Grid data tested Prototype for Point data Prototype for Zonal-Average data Currently in Beta Version 2/17/2014 CISL/NCAR
  • 60. Conclusion  HDF-EOS5 is handled well in NCL ◦ ◦ ◦ ◦ ◦  Swath data tested Grid data tested Prototype for Point data Prototype for Zonal-Average data Currently in Beta Version Lots of can be done with HDF5 in NCL ◦ Some satellite data tested ◦ Currently in Alpha Version 2/17/2014 CISL/NCAR
  • 63. A Full NCL Script load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl” load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl” f = addfile("NISESSMI.h5", "r”) grps1 = getfilegroups(f, "/Southern Hemisphere/", 0) vs = grps1(0)+"/Extent” v1 = f->$vs$ grps2 = getfilegroups(f, "/Northern Hemisphere/", 0) vn = grps2(0)+"/Extent” v2 = f->$vn$ wks = gsn_open_wks ("ps","NISESSMI”) gsn_define_colormap(wks,"rainbow”) 2/17/2014 CISL/NCAR
  • 64. A Full NCL Script (Continue) res = True res@tiMainString = "NISESSMI.h5” res@cnFillOn = True res@cnLinesOn = False res@cnLineLabelsOn = False res@gsnSpreadColors = True res@lbLabelAutoStride= True res@lbOrientation = "Vertical” res@cnFillMode = "RasterFill" ; faster res@cnRasterSmoothingOn = True res@tiMainString = vs plot1 = gsn_csm_contour (wks, tofloat(v1), res) res@tiMainString = vn plot2 = gsn_csm_contour (wks, tofloat(v2), res) 2/17/2014 CISL/NCAR