Visualizing and Analyzing ofVisualizing and Analyzing ofHDF-EOS and HDF data with NCLHDF-EOS and HDF data with NCL
Wei Huang, Dave Brown, Mary Haley, Rick Brownrigg
CISL/NCAR
Dennis Shea, Adam PhilipsCGD/NCAR
What is NCLWhat is NCL◦NCL stands for NCAR Command Language
http://www.ncl.ucar.edu for more information
◦NCL is developed at CISL/NCAR, for scientific data analysis and visualization
◦Free available as binaries, open source◦Supports NetCDF (3 and 4), GRIB (1 and 2),
HDF, HDF-EOS 2 and 5 (as Spring of 2010)◦Newly added HDF5 and OpenDap (in 2010)◦High quality graphics◦Lots of example scripts
04/22/23 CISL/NCAR
HDF-EOS5 Released April, 2010HDF-EOS5 Released April, 2010HDF-EOS5 included NCL◦5.2.0 released in April, 2010◦5.2.1 released in July, 2010
HDF, and HDF-EOS2/5 Examples◦ http://www.ncl.ucar.edu/Applications/HDF.shtml◦Use “ncl_filedump” to check variables in HDF, and
HDF-EOS2/5 files◦Use “ncl_convert2nc” to convert HDF-EOS2/5 and
HDF files to NetCDF files
04/22/23 CISL/NCAR
HDF-EOS5 SampleHDF-EOS5 Sample
04/22/23 CISL/NCAR
HDF-EOS5 Sample (continue)HDF-EOS5 Sample (continue)
04/22/23 CISL/NCAR
HDF-EOS5 Sample (continue)HDF-EOS5 Sample (continue)
04/22/23 CISL/NCAR
Reflectivity of the ground pixel
HDF5 in Beta ReleaseHDF5 in Beta Release
04/22/23 CISL/NCAR
Sample Script to Read HDF5Sample Script to Read HDF5 f = addfile(”./data/MOD13A2A.h5", "r”)
◦ printVarSummary(f)
grps = getfilegroups(f, "/", 0)◦ print(grps)
grps2 = getfilegroups(f, "/MODIS_Grid_16DAY_1km_VI", 0)◦ print(grps2)
v1 = f->1_km_16_days_red_reflectance◦ printVarSummary(v1)
vn = grps2(0)+"/1 km 16 days blue reflectance” v2 = f->$vn$
◦ printVarSummary(v2)
04/22/23 CISL/NCAR
Group in HDF5 and Sample ScriptGroup in HDF5 and Sample Script f = addfile(”./data/NISESSMI.h5", "r")
◦ print(f)
gn = "/Northern Hemisphere” g1 = f=>$gn$
◦ print(g1)
g2n = "/Northern Hemisphere/Data Fields” g2 = g1=>$g2n$
◦ print(g2)
vn = "/Northern Hemisphere/Data Fields/Age" v1 = g1->$vn$
◦ printVarSummary(v1)
v2 = g2->$vn$◦ printVarSummary(v2)
04/22/23 CISL/NCAR
HDF5 Sample PlotHDF5 Sample Plot
04/22/23 CISL/NCAR
HDF5 Sample Plot (continue)HDF5 Sample Plot (continue)
04/22/23 CISL/NCAR
HDF5 Sample Plot (continue)HDF5 Sample Plot (continue)
04/22/23 CISL/NCAR
HDF5 Sample Plot (continue)HDF5 Sample Plot (continue)
04/22/23 CISL/NCAR
Read Compound data from HDF5Read Compound data from 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
04/22/23 CISL/NCAR
Print-outPrint-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>
04/22/23 CISL/NCAR
04/22/23 CISL/NCAR
HDF-EOS5 OpenDapHDF-EOS5 OpenDapUsing liboc-dap-0.0.2
In Alpha Version
04/22/23 CISL/NCAR
HDF-EOS5 OpenDap HDF-EOS5 OpenDap -- a sample script-- a sample script
url = "http://acdisc.gsfc.nasa.gov/opendap/HDF-EOS5/Aura_OMI_Level3/OMAEROe.003/2010/"
filename = url + "OMI-Aura_L3-OMAEROe_2010m0712_v003-2010m0714t203639.he5”
f = addfile(filename,"r”)
◦ print(f) vis_aerosol = f->SingleScatteringAlbedoPassedThresholdMean
◦ printVarSummary(vis_aerosol)
lat = f->Latitude
◦ printVarSummary(lat) lon = f->Longitude
◦ printVarSummary(lon)
04/22/23 CISL/NCAR
HDF-EOS5 OpenDap –sample plotHDF-EOS5 OpenDap –sample plot
04/22/23 CISL/NCAR
ConclusionConclusionHDF-EOS5 is already released◦5.2.0 in April, 2010◦5.2.1 in July, 2010
HDF5 will be released soon◦Being tested with lots of data◦In Beta Version
HDF-EOS5 OpenDap is on the way◦With limited test◦In Alpha Version
04/22/23 CISL/NCAR
Questions?Questions?
Thank You!
04/22/23 CISL/NCAR
Write HDF5 with NCLWrite HDF5 with NCLWrite HDF5 with Options:◦Compression
At File Level At Variable Level
◦Chunking At File Level At Variable Level
04/22/23 CISL/NCAR
Sample Script to Write HDF5Sample Script to Write HDF5
04/22/23 CISL/NCAR