# Presentation: 184182

## Development of a CF Conventions API

- Russ Rew
- GO-ESSP Workshop, LLNL
- 2006-06-19

## CFlib Goals

- Goals of a C API for CF conventions:
- Support the creation and access of datasets conforming to CF Conventions
- Provide a higher-level interface than netCDF for coordinate systems to locate data in space and time and to identify and compare physical quantities
- Reduce programming effort needed to create datasets that conform to CF conventions or to correctly interpret CF-conforming data
- Preserve existing intellectual rigor of CF
- Anticipate likely changes and additions to CF

## Current CF API Efforts

- What exists now?
- Some netCDF Java capabilities for reading CF conventions to create coordinate-system objects
- Climate Model Output Rewriter (CMOR) in Fortran 90 to convert netCDF data to CF conventions for PCMDI archives
- Other frameworks with IO library interfaces for CF?
- Jonathan Gregory’s draft specification for a CF processing library
- Ed Hartnett’s early draft of some CF API requirements and early prototype of some CF APIs for ESMF

## Some CFlib Issues

- Is it the right time to develop a CF API?
- Is CF 1.0 mature and stable enough for API standardization?
- Is the current conventions document an adequate specification?
- Would it be better to delay until agreement is reached on the next CF version?
- Have sufficient resources been identified to develop and maintain CFlib?
- Some support available from ESMF (0.25 FTE for near future)
- Should Unidata seek resources for CFlib?
- Would an Open Source community development effort be more desirable or practical?

## More CFlib Issues 

- Sociological issues:
- What is relationship of CF governance to CFlib?
- How would decisions be made for an Open Source effort to develop CFlib?
- Technical issues:
- Should CFlib API be designed to be independent of netCDF and udunits?
- What should be the relationship of CFlib to Unidata’s Common Data Model or to netCDF-4?
- Is a Fortran-77 interface needed for CFlib?
- How important is preserving complete COARDS convention compatibility?

**Notes:**
Why would anyone use software with this many limitations?
But note that there is no longer any 2 Gbyte size limit, with 64-bit offsets
NetCDF-4 addresses all limitations but last, which requires database

## Commitment to Backward Compatibility

- CF conventions must preserve access to earlier forms of CF-compliant data.
- A CF conventions API must respect the version specified by the Conventions attribute.
- Future changes to CF should be based on experience with working reference implementations.

- Because preserving access to archived data for future generations is sacrosanct

**Notes:**
You don’t get many guarantees in the realm of software, but here’s the closest you’re likely to see.
I suspect honoring this guarantee will be easier than creating the border of this slide in PowerPoint.

## NetCDF-4 Features Affecting Conventions 

- Multiple unlimited dimensions
- Compound types (structs)
- Variable-length types for ragged arrays
- String type
- Unsigned numeric types
- Unicode names
- Uses for Groups

**Notes:**
But note that there is no longer any 2 Gbyte size limit, with 64-bit offsets
NetCDF-4 addresses all limitations but last, which requires database

## Guidelines for Quality Standards

- Some lessons from “The Rise and Fall of CORBA” (Henning, 2006)
- Standards consortia need iron-clad rules to ensure that they standardize existing best practice (don't innovate in standards!)
- No standard should be approved without a reference implementation.
- No standard should be approved without having been used to implement a few projects of realistic complexity.
- To create quality software [or standards], the ability to say "no" is usually far  more important than the ability to say "yes."

## Data is Part of Our Legacy

- “Eternal Bits: How can we preserve digital files and save our collective memory?,” MacKenzie Smith, *IEEE Spectrum*, July 2005

- MacKenzie Smith, Associate Director for Technology at the MIT Libraries,
- Project director at MIT for DSpace, a groundbreaking digital repository system

## Questions?