Skip to main content

The NetCDF Climate Forcast Conventions compliance checker

Project description

# CF Checker

The CF Checker is a utility that checks the contents of a NetCDF file complies with the Climate and Forecasts (CF) Metadata Convention.

## Prerequisites

## Installation

To install from [PyPI](https://pypi-hypernode.com/pypi/cfchecker):

pip install cfchecker

Alternatively, to install from source:

  1. Download the cfchecker package from [cfchecker releases](https://github.com/cedadev/cf-checker/releases)

  2. Unpack the library:

    tar -zxf cfchecker-${version}.tar.gz

    cd cfchecker-${version}

  3. Install the package:

    • To install to a central location:

      python setup.py install

    • To install to a non standard location:

      python setup.py install –prefix=<directory>

      If directory you are installing into is not on PYTHONPATH you will need to add it.

## Running the CF Checker

cfchecks [-a|–area_types area_types.xml] [-s|–cf_standard_names standard_names.xml] [-v|–version CFVersion] file1 [file2…]

### Environment Variables

The following parameters can be set on the command-line or through environment variables:

  1. CF_STANDARD_NAMES (or CL option -s) : The path or URL to the CF standard names table

  2. CF_AREA_TYPES or (CL option -a) : The path or URL to the CF area types tables

### Wrapper script

A wrapper to cfchecks, called cf-checker, is provided in the src/ directory, which will maintain local copies of the standard names table and the area types table, and will refresh these local copies only if the age of the file (based on its modification time) is more than a specified maximum, defaulting to 1 day. This allows for running the checker repeatedly without refetching the tables on each invocation, while still keeping them reasonably up to date.

For a usage message, type cf-checker -h

Note that the wrapper defaults to storing the downloaded files in /var/spool/cf-checker, so if the script is used unmodified then this directory should be created or else an alternative value should be passed as a command line option (-d). Ensure either that all users have write permission to the directory used, or else that a user that does have write permission runs a cron job to refresh the tables. For the latter purpose, it is permissible to run the wrapper without specifying any data files to check, in which it will do no more than update the tables; this is still conditional on age, so for this purpose it is recommended to run the wrapper with a maximum age of zero (-t 0), and to run the cron job at intervals not exceeding the default maximum age.

The wrapper is maintained by CEDA and not by NCAS CMS.

### Running the Test script

In the release tarball there is a test_files directory containing a test.sh script which runs a series of test files through the CF Checker and confirms the checker is working as expected. It is a very elementary system, which will be rewritten soon. Before running it you will need to edit the location of the cfchecker script in the tests.sh file:

cfchecker=”<location of cfchecks>”

Then just run the tests.sh script:

./tests.sh

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cfchecker-1.1.1.3.tar.gz (26.7 kB view details)

Uploaded Source

File details

Details for the file cfchecker-1.1.1.3.tar.gz.

File metadata

  • Download URL: cfchecker-1.1.1.3.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cfchecker-1.1.1.3.tar.gz
Algorithm Hash digest
SHA256 f1ed5e5e8397217212b2219c79fad55f698cdb5567cbc68b318b35b94ee3f930
MD5 03d28417b886e3e35b8dc66018c20ff4
BLAKE2b-256 8abb7ae7f00c1cf5358e05a8b2b6b751915d98059fa1cea7c7983a4161c061d9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page