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

IOOS Compliance Checker Luke Campbell, Software Engineer, RPS ASA

Embed Size (px)

DESCRIPTION

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

Citation preview

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/