Top Banner
IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA
12

IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Jan 20, 2018

Download

Documents

Julian Holland

Enter the IOOS Compliance Checker 2 We tried to solve the following problems: A command line based tool that could be perform quick metadata checks Capable of generating human readable reports Supports different degrees of compliance An extensible framework that could be extended to support future standards
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

IOOS Compliance Checker

Luke Campbell, Software Engineer, RPS ASA

Page 2: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Background

2

• We needed a tool that would validate data with the standards we used:• ACDD• CF 1.6

• We needed a tool that could conform to how standards are implemented.• These standards aren't satisfied in a simple manner (i.e. true/false)• There are varying levels of compliance for our standards

Page 3: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Enter the IOOS Compliance Checker

2

• We tried to solve the following problems:• A command line based tool that could be perform quick metadata checks• Capable of generating human readable reports• Supports different degrees of compliance• An extensible framework that could be extended to support future standards

Page 4: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Where we are today

2

• The compliance checker is a very active project that is still under development• The project is actively being contributed to by 7 developers from different

organizations and each have different goals for the project.

• There is also an active fork by JPL

Page 5: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Compliance Checker Design

2

Page 6: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Getting Started

2

• The latest version of Compliance Checker is 1.1.1• Has support for Unix and Windows platforms

• For windows installations we recommend using Anaconda and using the "IOOS" binstar channel which includes the latest version of Compliance Checker

• Unix platforms that have python can install compliance checker with a pip install compliance-checker

• Anaconda users can install compliance checker with aconda install compliance-checker

Page 7: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Using Compliance Checker

2

usage: cchecker.py [-h] [--test {gliderdac,acdd,cf,ioos}] [--criteria [{lenient,normal,strict}]] [--verbose] dataset_location [dataset_location ...]

positional arguments: dataset_location Defines the location of the dataset to be checked.

optional arguments: -h, --help show this help message and exit --test {gliderdac,acdd,cf,ioos}, -t {gliderdac,acdd,cf,ioos}, --test= {gliderdac,acdd,cf,ioos}, -t= {gliderdac,acdd,cf,ioos} Select the Checks you want to perform. --criteria [{lenient,normal,strict}], -c [{lenient,normal,strict}] Define the criteria for the checks. Either Strict, Normal, or Lenient. Defaults to Normal. --verbose, -v Increase output. May be specified up to three times.

Page 8: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Criteria

2

The compliance checker has three degrees of "leniency". Each degree corresponds to meeting the priority of each check defined by the corresponding standard:•lenient only checks the high priority checks•normal checks high and medium priority checks•strict checks all: high, medium and low priority checks

For example ACDD 1.1 has a suggested attributes section which includes a "publisher_name". Compliance checker considers the suggested section a low priority. If a dataset does not contain the "publisher_name" global attribute the dataset will only fail if the criteria is set to strict.

Page 9: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Demo

2

• GLOS Datasets• CF

cchecker.py -t cf --criteria normal http://tds.glos.us/thredds/dodsC/SST/LakeErieSST-Agg

• GliderDACcchecker.py -t gliderdac --criteria strict SG609_20150318T231830_delayed_OLD.nc

cchecker.py -t gliderdac --criteria strict SG609_20150318T231830_delayed.nccchecker.py -t acdd --criteria strict SG609_20150318T231830_delayed.nc• CBIBScchecker.py -t acdd --criteria normal cbibs-Currents_44043_2014-08-01.nccchecker.py -t cf --criteria normal cbibs-Currents_44043_2014-08-01.nc

• MARACOOS Stationcchecker.py -t cf --criteria strict station_700_2015_02_26.nc

Page 10: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Future

2

• HTML Output• Plugin based system to improve extendability• More control over checks• Web Service (Currently under discussion)• NCEI Archiving Compliance Checking

Page 11: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Support IOOS Compliance Checker

2

You can help us by using the compliance checker. If you have a dataset that fails but you think it should pass, please initiate a discussion. Our strict interpretation of the standards are not perfect. The standards are not perfect and don't cover every situation neatly.

Page 12: IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA.

Questions?

2

Image Source XKCD: https://xkcd.com/927/