SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

What's hot (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
 

Similar to Implementation of HDF-EOS5 and HDF5 into NCL

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
The HDF-EOS Tools and Information Center
 
HDF5 Tools Update
HDF5 Tools UpdateHDF5 Tools Update

Similar to 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
 

More from The HDF-EOS Tools and Information Center

More from 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
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

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