diff --git a/CHANGES.md b/CHANGES.md index 5fc64e6..481acf7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,18 @@ See https://github.com/cedadev/cf-checker/milestones?state=closed for full details of each release. ----------------------------------------------------------------- +## March 2018 + +CF Checker release 3.1.0 + +This is a development release to include addition checks for CF-1.7 comformance. + +### Other Noteworthy Changes + +[#35](https://github.com/cedadev/cf-checker/issues/35): Improve execution speed + +[#29](https://github.com/cedadev/cf-checker/issues/29): Include checks against region names table + ## 03.05.2017 CF Checker release 3.0.1 diff --git a/README.md b/README.md index 4c5c4b0..b9aa56c 100644 --- a/README.md +++ b/README.md @@ -42,14 +42,17 @@ Alternatively, to install from source: ## Running the CF Checker -`cfchecks [-a area_types.xml] [-s standard_names.xml] [-t cache_time_days ] [-v CFVersion] [-x] [--cachedir ] file1 [file2...]` +`cfchecks [-a ] [-r ] [-s ] [-v ] [-x] [-t ] file1 [file2...]` + +For further details and for other available command line options please see the help by running `cfchecks -h` ### 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 +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 table +3. `CF_REGION_NAMES` or (CL option `-r`): The path or URL to the CF region names table ### Wrapper script @@ -64,7 +67,7 @@ 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: +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 cfchecks script in the `tests.sh` file: cfchecker="" diff --git a/src/cfchecker/__init__.py b/src/cfchecker/__init__.py index 5120f1b..3c51b2f 100644 --- a/src/cfchecker/__init__.py +++ b/src/cfchecker/__init__.py @@ -1 +1 @@ -__version__ = '3.0.6-dev' +__version__ = '3.1.0-rc1' diff --git a/src/cfchecker/cfchecks.py b/src/cfchecker/cfchecks.py index d97ccfe..fff1888 100644 --- a/src/cfchecker/cfchecks.py +++ b/src/cfchecker/cfchecks.py @@ -2664,6 +2664,14 @@ def chkDescription(self, varName): else: self._add_error("No region names specified", varName, code="3.3") + if hasattr(var, 'positive'): + # Check that positive attribute is consistent with sign implied by standard_name + if (re.match("height", name, re.I) and not re.match("up", var.positive, re.I)) or \ + (re.match("depth", name, re.I) and not re.match("down", var.positive, re.I)): + self._add_warn("Positive attribute inconsistent with sign conventions implied by the standard_name", + varName, code="4.3") + + #--------------------------------- def getStringValue(self, varName): #--------------------------------- diff --git a/test_files/CF_1_0_OK.check b/test_files/CF_1_0_OK.check index be4b768..89a4a23 100644 --- a/test_files/CF_1_0_OK.check +++ b/test_files/CF_1_0_OK.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CF_1_0_OK.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CF_1_7.check b/test_files/CF_1_7.check index e5b85b4..3707a91 100644 --- a/test_files/CF_1_7.check +++ b/test_files/CF_1_7.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CF_1_7.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.7 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Area Type Table Version 7 (14 March 2018) @@ -20,6 +20,8 @@ ERROR: (5): co-ordinate variable not monotonic ------------------ Checking variable: depth ------------------ +WARN: (4.3): Positive attribute inconsistent with sign conventions implied by the standard_name +ERROR: (3.1): Units are not consistent with those given in the standard_name table. ERROR: (5): co-ordinate variable not monotonic ------------------ @@ -128,6 +130,6 @@ Checking variable: crs ERROR: (5.6): Attribute longitude_of_prime_meridian of incorrect data type (Appendix F) ERROR: (5.6): reference_ellipsoid_name, prime_meridian_name, horizontal_datum_name and geographic_crs_name must all be definied if any one is defined -ERRORS detected: 24 -WARNINGS given: 3 +ERRORS detected: 25 +WARNINGS given: 4 INFORMATION messages: 2 diff --git a/test_files/CF_1_7.nc.gz b/test_files/CF_1_7.nc.gz index 3285767..024193b 100644 Binary files a/test_files/CF_1_7.nc.gz and b/test_files/CF_1_7.nc.gz differ diff --git a/test_files/CRM018_test1.check b/test_files/CRM018_test1.check index e5837b2..96e15d8 100644 --- a/test_files/CRM018_test1.check +++ b/test_files/CRM018_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM018_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM021_test1.check b/test_files/CRM021_test1.check index 28be9fc..ff5cc4b 100644 --- a/test_files/CRM021_test1.check +++ b/test_files/CRM021_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM021_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM024_test1.check b/test_files/CRM024_test1.check index ebba17d..e15f704 100644 --- a/test_files/CRM024_test1.check +++ b/test_files/CRM024_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM024_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM026_test2.check b/test_files/CRM026_test2.check index f3dcba3..b17dddb 100644 --- a/test_files/CRM026_test2.check +++ b/test_files/CRM026_test2.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM026_test2.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM027_test1.check b/test_files/CRM027_test1.check index d332eca..0aadc64 100644 --- a/test_files/CRM027_test1.check +++ b/test_files/CRM027_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM027_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM027_test2.check b/test_files/CRM027_test2.check index 3afa8a3..743dad3 100644 --- a/test_files/CRM027_test2.check +++ b/test_files/CRM027_test2.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM027_test2.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM028_test1.check b/test_files/CRM028_test1.check index d032361..1988624 100644 --- a/test_files/CRM028_test1.check +++ b/test_files/CRM028_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM028_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM032_test1.check b/test_files/CRM032_test1.check index 266d6ac..ce578e3 100644 --- a/test_files/CRM032_test1.check +++ b/test_files/CRM032_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM032_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM033_test1.check b/test_files/CRM033_test1.check index dac9265..cd55b57 100644 --- a/test_files/CRM033_test1.check +++ b/test_files/CRM033_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM033_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM035.check b/test_files/CRM035.check index 7a353c9..03b0db2 100644 --- a/test_files/CRM035.check +++ b/test_files/CRM035.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM035.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM037.check b/test_files/CRM037.check index d013e71..415c0b2 100644 --- a/test_files/CRM037.check +++ b/test_files/CRM037.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM037.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM038.check b/test_files/CRM038.check index 33a4d25..e57533d 100644 --- a/test_files/CRM038.check +++ b/test_files/CRM038.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM038.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/CRM041.check b/test_files/CRM041.check index 8b0156b..a16d251 100644 --- a/test_files/CRM041.check +++ b/test_files/CRM041.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: CRM041.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/GregRappa.check b/test_files/GregRappa.check index e7a7c68..35aa45c 100644 --- a/test_files/GregRappa.check +++ b/test_files/GregRappa.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: GregRappa.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/Trac020_test1.check b/test_files/Trac020_test1.check index 0a04ac0..113b479 100644 --- a/test_files/Trac020_test1.check +++ b/test_files/Trac020_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: Trac020_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/Trac020_test2.check b/test_files/Trac020_test2.check index b97af11..845b887 100644 --- a/test_files/Trac020_test2.check +++ b/test_files/Trac020_test2.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: Trac020_test2.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/Trac022.check b/test_files/Trac022.check index e6aa668..04444b2 100644 --- a/test_files/Trac022.check +++ b/test_files/Trac022.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: Trac022.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/Trac049_test1.check b/test_files/Trac049_test1.check index 79f9675..921d527 100644 --- a/test_files/Trac049_test1.check +++ b/test_files/Trac049_test1.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: Trac049_test1.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.4 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Area Type Table Version 7 (14 March 2018) diff --git a/test_files/Trac049_test2.check b/test_files/Trac049_test2.check index 1c00545..7a7b8a0 100644 --- a/test_files/Trac049_test2.check +++ b/test_files/Trac049_test2.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: Trac049_test2.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.4 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Area Type Table Version 7 (14 March 2018) diff --git a/test_files/UpgradeVn.pl b/test_files/UpgradeVn.pl index 3472ab8..1233cd4 100755 --- a/test_files/UpgradeVn.pl +++ b/test_files/UpgradeVn.pl @@ -13,7 +13,7 @@ # Before running simply alter the variables $checkerVN and # $standardNameVN as appropriate. #-------------------------------------------------------------------------- -$checkerVN="3.0.6-dev"; +$checkerVN="3.1.0-rc1"; $standardNameVN="50 (2018-03-14T11:01:19Z)"; $areaTypeVN="7 (14 March 2018)"; diff --git a/test_files/badc_units.check b/test_files/badc_units.check index abf3883..39bef09 100644 --- a/test_files/badc_units.check +++ b/test_files/badc_units.check @@ -1,7 +1,7 @@ CHECKING NetCDF FILE: badc_units.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) WARNING (7.1): Data for variable time lies outside cell boundaries diff --git a/test_files/cell_measures.check b/test_files/cell_measures.check index bcaf7d1..c371ed4 100644 --- a/test_files/cell_measures.check +++ b/test_files/cell_measures.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: cell_measures.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/cell_methods.check b/test_files/cell_methods.check index 58d2ce8..a60a718 100644 --- a/test_files/cell_methods.check +++ b/test_files/cell_methods.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: cell_methods.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/complex.check b/test_files/complex.check index 3cc87c7..e73432f 100644 --- a/test_files/complex.check +++ b/test_files/complex.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: complex.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/example_5.10.check b/test_files/example_5.10.check index 12c4492..0905acc 100644 --- a/test_files/example_5.10.check +++ b/test_files/example_5.10.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: example_5.10.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.7 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Area Type Table Version 7 (14 March 2018) diff --git a/test_files/example_6.2.check b/test_files/example_6.2.check index eec9ce5..2c46cde 100644 --- a/test_files/example_6.2.check +++ b/test_files/example_6.2.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: example_6.2.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.7 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Area Type Table Version 7 (14 March 2018) diff --git a/test_files/flag_tests.check b/test_files/flag_tests.check index 251f9e6..5d71052 100644 --- a/test_files/flag_tests.check +++ b/test_files/flag_tests.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: flag_tests.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.3 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/formula_terms.check b/test_files/formula_terms.check index b3d26ec..bb89a86 100644 --- a/test_files/formula_terms.check +++ b/test_files/formula_terms.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: formula_terms.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/hfogo_O1_labelVariable_KT.check b/test_files/hfogo_O1_labelVariable_KT.check index 07dbe24..f8c1681 100644 --- a/test_files/hfogo_O1_labelVariable_KT.check +++ b/test_files/hfogo_O1_labelVariable_KT.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: hfogo_O1_labelVariable_KT.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.0 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Standardized Region Name Table Version 2 (12 June 2013) diff --git a/test_files/issue27.check b/test_files/issue27.check index 23a5f01..89b1e11 100644 --- a/test_files/issue27.check +++ b/test_files/issue27.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: issue27.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.6 Using Standard Name Table Version 50 (2018-03-14T11:01:19Z) Using Area Type Table Version 7 (14 March 2018) diff --git a/test_files/stdName_test.check b/test_files/stdName_test.check index 61c5536..59e2b18 100644 --- a/test_files/stdName_test.check +++ b/test_files/stdName_test.check @@ -1,6 +1,6 @@ CHECKING NetCDF FILE: stdName_test.nc ===================== -Using CF Checker Version 3.0.6-dev +Using CF Checker Version 3.1.0-rc1 Checking against CF Version CF-1.7 Using Standard Name Table Version 2 (2006-09-26T18:12:43Z) Using Area Type Table Version 7 (14 March 2018)