loading page

NCO-JSON: A Flexible, Complete JavaScript Object Notation for netCDF
  • Charles Zender
Charles Zender
University of California Irvine

Corresponding Author:zender@uci.edu

Author Profile

Abstract

JavaScript Object Notation (JSON) is an increasingly popular text format for data exchange. netCDF encapsulates the Common Data Model (CDM) and a binary format for machine-independent and network-transparent storage of scientific data and metadata. Previous netCDF-to-JSON translators have been custom solutions with incomplete features, or based on more complex formats than the CDM. Here we describe a flexible JSON format that describes any classic or extended format netCDF dataset. This format, called NCO-JSON, expresses the richness of the CDM and increases interoperability between web services and netCDF data. NCO-JSON requires no reserved keywords and so is completely compatible with all netCDF datasets. It allows for selectable levels of fidelity to the original data and metadata. The most concise and human-legible form of NCO-JSON is also lossy. By design it distinguishes only the three atomic JSON datatypes (float, string, and int). This suffices for many purposes yet cannot guarantee bit-for-bit reproducibility of many netCDF datatypes, especially in round-trip translations. NCO-JSON uses a more complex object notation to encode the additional type information required to reproduce netCDF datasets with full fidelity. We present the rules and design of the NCO-JSON format, show results with real-world datasests, quantify the space advantages vs. alternate formats (both JSON and XML), and discuss corner cases and possible extensions.