ioos / compliance-checker

Python tool to check your datasets against compliance standards
http://ioos.github.io/compliance-checker/
Apache License 2.0
108 stars 58 forks source link

Improve CF conformance #919

Closed benjwadams closed 2 years ago

benjwadams commented 2 years ago

Version of compliance checker running:

Latest

Describe the checker this affects: The ACDD, IOOS, and CF checkers are currently considered in scope for the purposes of the issue tracking on this repository. Issues with other plugins should be placed into their respective repositories.

CF

Attach a minimal CDL or NetCDF file which is able to reproduce the issue

N/A

To Reproduce: List the steps or command line to run to reproduce the issue

Describe the issue below: Any additional detail or information relevant to the issue

Improve CF conformance. Label implementation and tests of CF conformance.

benjwadams commented 2 years ago

WIP Checklist based on CF 1.9 conformance doc: https://cfconventions.org/Data/cf-documents/requirements-recommendations/conformance-1.9.html

2.1 Filename Requirements:

2.2 Data Types Requirements:

The following has been verified:

2.3 Naming Conventions Recommendations:

2.4 Dimensions Requirements:

Recommendations:

2.5.1 Missing data, valid and actual range of data Requirements:

Recommendations:

Note: no function checks for missing value and _FillValue equality.

2.6.1 Identification of Conventions Requirements:

2.6.2 Description of File Contents Requirements:

Recommendations:

2.6.3 External variables Requirements:

2.7 Groups Requirements:

In the referring group

In the ancestor group (starting from the direct ancestor and proceeding toward the root group, until it is found)

By the lateral search algorithm for coordinate variables only.

Recommendations:

3 Description of the Data Recommendations:

3.1 Units Requirements:

Recommendations:

3.3 Standard Name Requirements:

Recommendations:

3.5 Flags Requirements:

Recommendations:

4 Coordinate Types Requirements:

4.3 Vertical (height or depth) Coordinate Requirements:

Recommendations:

4.3.3 Parameterized Vertical Coordinate Requirements:

4.4 Time Coordinate Requirements:

Recommendations:

4.4.1 Calendar Requirements:

Recommendations:

5 Coordinate Systems and Domain Requirements:

Recommendations:

5.6 Grid Mappings and Projections Requirements:

Note that in its simplest form the attribute comprises just a grid_mapping_name as a single word.

Recommendations:

5.8 Domain Variables Requirements:

Recommendations:

6.1 Labels Requirements:

7.1 Cell Boundaries Requirements:

Recommendations:

7.2 Cell Measures Requirements:

7.3 Cell Methods Requirements:

dim1: [dim2: [dim3: ...]] method [where type1 [over type2]] [within|over days|years] [(comment)] where brackets indicate optional words. The valid values for dim1 [dim2 [dim3 …​] ] are the names of dimensions of the data variable, names of scalar coordinate variables of the data variable, valid standard names, or the word area. The valid values of method are contained in Appendix E. The valid values for type1 are the name of a string-valued auxiliary or scalar coordinate variable with a standard_name of area_type, or any string value allowed for a variable of standard_name of area_type. If type2 is a string-valued auxiliary coordinate variable, it must be sized to contain a single string. If it is a variable of type string, it must be scalar or one-dimensional with a length of one. If it is a variable of type char, it must be one-dimensional or two-dimensional with a leading dimension (the number of strings) of length one. When the method refers to a climatological time axis, the suffixes for within and over may be appended.

Recommendations:

7.4 Climatological Statistics Requirements:

7.5 Geometries Requirements:

8.1 Packed Data Requirements:

Recommendations:

8.2 Compression by Gathering Requirements:

8.3 Lossy Compression by Coordinate Subsampling Requirements:

Recommendations:

Appendix D Parametric Vertical Coordinates Requirements:

Recommendations:

benjwadams commented 2 years ago

@jamesdoyle21, please split the unchecked boxes here into separate GitHub issues.

jamesdoyle21 commented 2 years ago

@benjwadams These are now each in their own git issue. I did not assign any of them, I will let you work that out with @leilabbb

benjwadams commented 2 years ago

Closing issue in favor of individual issue breakouts.