GRIDSPEC Integration and Development in the LibCF Library

Project Description

LibCF is a C/Fortran library that supports the creation of scientific data files conforming to the Climate and Forecast (CF) conventions, using the netCDF API (Application Programming Interface). LibCF is being developed at Unidata, and released with the netCDF library distribution.

GRIDSPEC is a draft of a proposal for a set of CF conventions for the representation of gridded data for Earth system models. A set of GRIDSPEC command-line tools was developed at GFDL by V. Balaji and Zhi Liang. The GRIDSPEC standard has been further developed by Dave Kindig and Alex Pletzer at Tech X, as part of the libCF library.

Recent work at Unidata includes the implementation of the first iteration of the Princeton API for handling GRIDSPEC data.

The Princeton API elevates both grids and weights to full library object status, in the same way that the netCDF library treats variables and attributes. In the Princeton API, like a netCDF variable, a GRIDSPEC grid can be defined, interrogated, and saved to a netCDF file. Similarly, weights can be calculated, shared, or saved to a netCDF file.

The LibCF library (daily snapshot) now includes an implementation of the Princeton API, though some additional work remains. The implementation includes test code and is built and tested every day as part of an agile development process.

The development of the Princeton API has driven a requirement into the underlying netCDF library: for data files that are kept in memory. These diskless files will enable the GRIDSPEC code to be simplified further.

Further funding for the LibCF/GRIDSPEC integration project will continue to leverage on existing efforts at Unidata and in the community to work with gridded data sets in an interoperable way. We welcome further involvement by any interested member of the community. The LibCF/GRIDSPEC library is free software and is available for download from the LibCF SourceForge site.

Recent Accomplishments

Unidata's role is to achieve the integration of GRIDSPEC functionality and the developing GRIDSPEC standard into the LibCF library. The scope of this document is only Unidata's involvement in this project, so many significant accomplishments by other project participants are not listed below.

Integration of the GRISPEC functionality into the LibCF library has been fully achieved. All GRISPEC programmers are working together within the LibCF codebase. The GRISPEC implementation was completely rewritten by the Tech X programmers, with the Princeton API as the goal. This reimplementation effort has resulted in significant improvement in the usefullness of the GRIDSPEC code, and has also resulted in a revised GRIDSPEC standard being submitted to the CF Conventions standards process.

Recent Contributions by Unidata:

  • Moved libCF/GRIDSPEC development to open source development site SourceForge.
  • Assisted in development of GRIDSPEC API in accordance with netCDF customs and precedents.
  • Assisted with integration of new GRIDSPEC implementation into LibCF library with changes to build system.
  • Created documentation set with Doxygen.
  • Established daily test/build/release cycle.
  • Co-authored poster for AGU Fall 2010 meeting.

Continued Development

Continued development in aid of the GRISPEC project at Unidata will include the follow:

  • Addition of "diskless file" to the netCDF library. This will allow simplification of the GRIDSPEC API for handling regridding weight files.
  • Parallelization of the Tech X algorithms for regridding. The original algorithms, provided by GFDL, are parallelized, but the new implementation by Dave and Alex is still sequential only.
  • Continued development of documentation and API in accordance with changes in the GRIDSPEC standard as it goes through the CF conventions process.

Acknowledgements

The tremendous progress in the GRISPEC standard and the accompanying implementation in the LibCF library has been largely due to the hard work of Dave Kindig and Alex Pletzer at Tech X, who have reimplemented the GRIDSPEC code, and submitted a revised GRIDSPEC standard to the CF conventions group.

The enabling of community supported standards development is an integral part of the Unidata mission. We thank the Global Interoperability Program for funding this effort.

References

Balaji, V, Liang, Zhi. Gridspec: A standard for the description of grids used in Earth System models. https://arxiv.org/abs/1911.08638

David Kindig, Alex Pletzer, V. Balaji, Steve C Hankin, Edward J Hartnett, Charles Doutriaux, Jeff Painter, Andrey Sobol, Matt Wrobel. Using the LibCF/GRIDSPEC extensions to interpret data on mosaic grids with CDAT (poster). http://assets.unidata.ucar.edu/Presentations/posters/gridspec_agu_fall2010_api.pdf

Original GFDL Gridspec tools: https://github.com/LiamBindle/gridspec_tools

Unidata NetCDF home page: https://www.unidata.ucar.edu/software/netcdf/

News@Unidata
News and information from the Unidata Program Center
News@Unidata
News and information from the Unidata Program Center

Welcome

FAQs

Developers’ blog

Recent Entries:
Take a poll!

What if we had an ongoing user poll in here?

Browse By Topic
  • feed Community (449)
Browse by Topic
March 2011
SunMonTueWedThuFriSat
  
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Today