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)