aodn / imos-toolbox

Graphical tool for QC'ing and NetCDF'ing oceanographic datasets
GNU General Public License v3.0
45 stars 30 forks source link

Incorrect `coordinates` attributes in ADCP files processed with 2.6.11 #737

Closed mhidas closed 3 years ago

mhidas commented 3 years ago

We've just received some ADCP data processed with the latest version of the toolbox, and one file failed the compliance checks (both CF and IMOS), hopefully due to a simple variable attribute issue:

------------------------------------------------------------------------------------------------------------------------
                                             IOOS Compliance Checker Report
                                                         cf:1.6
                                                http://cfconventions.org
------------------------------------------------------------------------------------------------------------------------
                                                   Corrective Actions 
IMOS_ANMN-NRS_AETVZ_20201028T231500Z_NRSNSI-ADCP_FV01_NRSNSI-ADCP-25-2020-10-Sentinel-or-Monitor-Workhorse-ADCP-63_END-20210309T231600Z_C-20210423T035526Z.nc has 4 potential issues

                                                         Errors
------------------------------------------------------------------------------------------------------------------------
Name                                                       Reasoning  
§5.0 Auxiliary Coordinates of PERG1 must have a subset of  auxiliary coordinate specified by the coordinates attribute,
PERG1's dimensions:                                        DIST_ALONG_BEAMS, is not a variable in this dataset
§5.0 Auxiliary Coordinates of PERG2 must have a subset of  auxiliary coordinate specified by the coordinates attribute,
PERG2's dimensions:                                        DIST_ALONG_BEAMS, is not a variable in this dataset
§5.0 Auxiliary Coordinates of PERG3 must have a subset of  auxiliary coordinate specified by the coordinates attribute,
PERG3's dimensions:                                        DIST_ALONG_BEAMS, is not a variable in this dataset
§5.0 Auxiliary Coordinates of PERG4 must have a subset of  auxiliary coordinate specified by the coordinates attribute,
PERG4's dimensions:                                        DIST_ALONG_BEAMS, is not a variable in this dataset

------------------------------------------------------------------------------------------------------------------------
                                             IOOS Compliance Checker Report
                                                        imos:1.4
                   http://content.aodn.org.au/Documents/IMOS/Conventions/IMOS_NetCDF_Conventions.pdf                    
------------------------------------------------------------------------------------------------------------------------
                                                   Corrective Actions                                                   
IMOS_ANMN-NRS_AETVZ_20201028T231500Z_NRSNSI-ADCP_FV01_NRSNSI-ADCP-25-2020-10-Sentinel-or-Monitor-Workhorse-ADCP-63_END-20210309T231600Z_C-20210423T035526Z.nc has 4 potential issues

                                                        Required                                                        
------------------------------------------------------------------------------------------------------------------------
Name    Reasoning
PERG1:  Coordinates attribute must contain a blank-separated list of
        valid variable names
PERG2:  Coordinates attribute must contain a blank-separated list of
        valid variable names
PERG3:  Coordinates attribute must contain a blank-separated list of
        valid variable names
PERG4:  Coordinates attribute must contain a blank-separated list of
        valid variable names

These variables have attribute PERG1:coordinates = "TIME LATITUDE LONGITUDE DIST_ALONG_BEAMS". However, there is no DIST_ALONG_BEAMS variable in this file. As the comment on other variables says

adcpBinMappingPP.m: data in beam coordinates originally referenced to DIST_ALONG_BEAMS has been vertically bin-mapped to HEIGHT_ABOVE_SENSOR using tilt information.

Does that also apply to the PERGx variables? In that case, they just need their coordinates attribute updated. Or, if these variables have not been bin-mapped, then DIST_ALONG_BEAMS should still be included as a variable.

ocehugo commented 3 years ago

Thanks, @mhidas, confirmed & fix is here

These variables are not remapped, so the problem here is on the wrong removal of the DIST_ALONG_BEAMS dimensions. The current logic is removing the dimensions inadvertently and we are having PERG variables with coordinates that don't exist.

Also, since we don't run/have any compliance check at the toolbox level, this kind of stuff goes undetected.