Supporting HDF5 in GrADS Jennifer M. Adams and Brian E. Doty IGES/COLA
What is GrADS? GrADS is an interactive desktop tool used for easy access, analysis, and visualization of earth science data. Two data models: gridded and in situ Handles many data formats: binary, GRIB, BUFR, netCDF, and HDF4 OPeNDAP-enabled client and server (GDS)
Outline GrADS Development The Ensemble Dimension GrADS and HDF
GrADS Development Fifth ensemble dimension New interfaces for GRIB2 and HDF5 Internal data handling in double precision Mask for missing data Graphics improvements New output options for GIS applications Third data model: Quasi-regular grids
Ensemble Handling A true 5th dimension for ensemble members ‘set X, Y, Z, T, or E’ A virtual dimension for forecast time offset ‘display sst(ft=2)’ ‘display sst(ftime=24hr)’
GrADS Metadata Requirements for Ensemble Members Unique name / number Initial time Length One time axis must span all members All members must share common grid
The GrADS-GDS Coupled System The GDS serves any GrADS data set GrADS is a client for all GDS data sets The NetCDFification of the ensemble metadata must be meaningful to GrADS Emerging metadata standard for ensembles
Ensembles: Same Length, Same Initial Time Time Axis ----> Ensemble Member
Ensembles: Same Length, Different Initial Times Time Axis ----> Ensemble Member
Ensembles: Same Length, Different Initial Times Time Axis ----> Ensemble Member
Ensembles: Same Length, Different Initial Times Time Axis ----> Ensemble Member
Ensembles: Same Length, Different Initial Times Time Axis ----> Ensemble Member
NCEP CFS: Different Lengths, Different Initial Times Time Axis ----> Ensemble Member
“ new = variable (ft=2) ” Time Axis ----> Ensemble Member
“ new = ftloop (variable, ftime=12hr, ftime=48hr) ” Time Axis ----> Ensemble Member
GrADS and HDF: A Brief History GrADS reads HDF4 and NC files Metadata must be COARDS-compliant Uses NC v2 API GrADS writes HDF4 and NC files Uses LATS interface and NC v2 API GrADS becomes a DODS client NC v3 API is added New interface for non-compliant HDF4 and NC files External metadata is user-provided Uses SD and NC APIs
GrADS 1.9 Executables NetCDFHDF4DODSLibraries gradsc ---Core libs gradshdf ReadRead/Write-Core libs + libdf + libmfhdf gradsnc Read/Write--Core libs + libnetcdf gradsdods Read/Write-ReadCore libs + libnc-dap Core libs: X11, readline, zlib, png, gd Extra dependent libs: udunits, jpeg, szip, xml2, curl, dap, gadap
GrADS and HDF: Current Events GrADS (now GPL) must drop (copyrighted) LATS New interfaces to be written for NC and HDF output HDF4 handling isolated using SD API exclusively NC handling reworked using v3 API, ready for v4
GrADS 2.0 Executables NetCDFHDF4OPeNDAPLibraries grads Read (Write TBA) - Core libs + libdf + libmfhdf + libnetcdf gradsdap Read (Write TBA) Read Core libs + libdf + libmfhdf + libnc-dap Core libs: X11, readline, zlib, png, gd, jpeg, jasper, grib2c Extra dependent libs: udunits, szip, xml2, curl, dap, gadap
GrADS and HDF5: The Future First Option: Link with NetCDF-4 library Very easy Only supports HDF5 created with NetCDF-4 Destined to repeat HDF4 history? Second Option: Link with HDF5 library Requires a new HDF5 interface More general support of HDF5 Keeps NetCDF interface independent Necessary for quasi-regular swath data?