120 likes | 268 Views
Unidata’s CDM: netCDF , OPeNDAP , HDF. Ethan Davis 10 January 2014 ESIP Winter Meeting – OPeNDAP BoF. OPeNDAP support in netCDF libraries. netCDF libraries netCDF -C (and Fortran, C++, perl , R, python, ...) netCDF -Java (implements the CDM) OPeNDAP support Existing DAP2 support
E N D
Unidata’s CDM:netCDF, OPeNDAP, HDF Ethan Davis 10 January 2014 ESIP Winter Meeting – OPeNDAPBoF
OPeNDAP support in netCDF libraries • netCDF libraries • netCDF-C (and Fortran, C++, perl, R, python, ...) • netCDF-Java (implements the CDM) • OPeNDAP support • Existing DAP2 support • Client: netCDF-C and netCDF-Java/CDM • Server: THREDDS Data Server (TDS) • DAP4 development • Client: netCDF-Java/CDM • Server: THREDDS Data Server (TDS) • Future DAP4 support (real soon now!) • Client: netCDF-C
C Library Architecture Application Data Access API Dispatch NetCDF-3 NetCDF-4 HDF5 HDF4 OPeNDAP …
CDM Architecture THREDDS Catalog.xml Scientific Feature Types Application Datatype Adapter NetCDF-Java/ CDM architecture NetcdfDataset CoordSystem Builder OPeNDAP NetcdfFile I/O service provider NetCDF-3 NIDS NcML NetCDF-4 GRIB cdmremote HDF4 GINI Nexrad Remote Datasets DMSP … Local Files
NetCDFClassicdata model(aka netCDF-3) • Multidimensional arrays of primitive values • byte, char, short, int, float, double • Key/value attributes • Shared dimensions • Fortran77
OPeNDAP and netCDF-3 • DAP2 carried this data model pretty well • Some translation required • String vs char* • Shared dimensions vs Grids/Maps • DAP2 extras • Sequences, relational queries • HDF-5 extras • Groups, structures, variable length arrays,...
OPeNDAP and netCDF-4 • netCDF-4 extends classic model: • Groups; Structures; Sequences/varLength arrays • Mapping into DAP2: • Shared dims vs Grids • Primitive types • No Groups in DAP2 • No relational queries in CDM • DAP4 will carry the netCDF enhanced data model • Still netCDF-4 doesn't do relational queries • Something for CDM scientific data types (efficient?) • Server-side (TDS) for efficient "relational" queries
Commitment to Backward Compatibility Because preserving access to archived data for future generations issacrosanct: • NetCDF-4 provides both read and write access to all earlier forms of netCDF data. • Existing C and Fortran netCDFprograms will continue to work after recompiling and relinking. • Future versions of netCDF will continue to support both data access compatibility and API compatibility.