Catching up here. Sounds like one change we've decided to make is to remove 
`status_flag` from the recommended usage, so that 
```
 sea_water_practical_salinity_qc_flat_line_test:standard_name = 
"flat_line_test_quality_flag status_flag";
````

becomes
```
 sea_water_practical_salinity_qc_flat_line_test:standard_name = 
"flat_line_test_quality_flag";
```

On the other points:

* "replace 'Result' at the start of the descriptions with 'A quality flag that 
reports the result'" -- The latter wording would be better for searches (in 
case someone searches for "quality" in the description) so I like that.
* `quality_flag_flat_line_test` versus `flat_line_test_quality_flag`
   * I predict most people are going to find these standard names through 
shared code, examples, open-source libraries, and searching the standard name 
list, so whether or not they are in ABC order can be a consideration but should 
not drive the decision.
  * I also love the idea of updating the CF document with example usage if/when 
this proposal is accepted, and I think that will go a long way to improve 
discovery and understanding. We've got a great start here with some example 
usage.
  * According to the [CF standard name submission 
guidelines](http://cfconventions.org/faq.html#stdnames_ask), "The order [of 
facets] is not rule-based; the goal is to make the name as clear and natural as 
possible", so we have some leeway to decide what we think is best.
  * So my personal preference is to keep it as `flat_line_test_quality_flag`
  * After speaking with the other proposers, we agreed to keep the original 
names, and make sure to focus on having clear examples, both in CF docs and our 
own documentation.

I've updated the original proposal again to reflect these changes: I removed 
`status_flag` from the examples, added "A quality flag that reports" wording, 
and kept the originally proposed names. See below.

Based on what I'm reading in this thread, it sounds like we're reaching a 
consensus? What are the next steps at this point, and the timing for those? 
Thank you!

---


**Updated proposal:**


We are proposing adding quality test flag names to the Standard Name list. 
Adding these flags allows us to define exactly which dataset variable 
represents the results of a particular quality test for a particular data 
variable. While the list below is not comprehensive -- that is, it does not 
contain a full list of every possible quality test that could be run -- as it 
stands it we meet our needs for the foreseeable future. If accepted, we expect 
others will propose expanding this list to include other testing methods as 
needed.

Proposed names:

| Name                                | Description                             
                                                                                
                                                                                
                                             | Units |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------|
| aggregate_quality_flag              | This flag is a summary of all quality 
tests run for another data variable, and is set to the highest-level (worst 
case) flag found. The linkage between the data variable and this variable is 
achieved using the ancillary_variables attribute.     | 1     |
| gap_test_quality_flag               | A quality flag that reports the result 
of the Timing/Gap test, which checks that data has been received within the 
expected time window and has the correct time stamp. The linkage between the 
data variable and this variable is achieved using the ancillary_variables 
attribute. | 1     |
| syntax_test_quality_flag            | A quality flag that reports the result 
of the Syntax test, which checks that the data contains no indicators of flawed 
transmission. The linkage between the data variable and this variable is 
achieved using the ancillary_variables attribute.                               
     | 1     |
| location_test_quality_flag          | A quality flag that reports the result 
of the Location test, which checks that a location is within reasonable bounds. 
The linkage between the data variable and this variable is achieved using the 
ancillary_variables attribute.                                                  
| 1     |
| gross_range_test_quality_flag       | A quality flag that reports the result 
of the Gross Range test, which checks that values are within reasonable range 
bounds. The linkage between the data variable and this variable is achieved 
using the ancillary_variables attribute.                                        
    | 1     |
| climatology_test_quality_flag       | A quality flag that reports the result 
of the Climatology test, which checks that values are within reasonable range 
bounds for a given time and location. The linkage between the data variable and 
this variable is achieved using the ancillary_variables attribute.              
| 1     |
| spike_test_quality_flag             | A quality flag that reports the result 
of the Spike test, which checks that the difference between two points in a 
series of values is within reasonable bounds. The linkage between the data 
variable and this variable is achieved using the ancillary_variables attribute. 
       | 1     |
| rate_of_change_test_quality_flag    | A quality flag that reports the result 
of the Rate of Change test, which checks that the first order difference of a 
series of values is within reasonable bounds. The linkage between the data 
variable and this variable is achieved using the ancillary_variables attribute. 
     | 1     |
| flat_line_test_quality_flag         | A quality flag that reports the result 
of the Flat Line test, which checks for consecutively repeated values within a 
tolerance. The linkage between the data variable and this variable is achieved 
using the ancillary_variables attribute.                                        
| 1     |
| multi_variate_test_quality_flag     | A quality flag that reports the result 
of the Multi-variate test, which checks that values are reasonable when 
compared with related variables. The linkage between the data variable and this 
variable is achieved using the ancillary_variables attribute.                   
      | 1     |
| attenuated_signal_test_quality_flag | A quality flag that reports the result 
of the Attenuated Signal test, which checks for near-flat-line conditions using 
a range or standard deviation. The linkage between the data variable and this 
variable is achieved using the ancillary_variables attribute.                   
| 1     |
| neighbor_test_quality_flag          | A quality flag that reports the result 
of the Neighbor test, which checks that values are reasonable when compared 
with nearby measurements. The linkage between the data variable and this 
variable is achieved using the ancillary_variables attribute.                   
         | 1     |                                                              
                                | 1     |

Example usage:

```
variables:

    float sea_water_practical_salinity(time, z);
        sea_water_practical_salinity:units = "1";
        sea_water_practical_salinity:long_name = "Salinity";
        sea_water_practical_salinity:standard_name = 
"sea_water_practical_salinity";
        sea_water_practical_salinity:ancillary_variables = 
"sea_water_practical_salinity_qc_agg 
sea_water_practical_salinity_qc_flat_line_test";

    int sea_water_practical_salinity_qc_agg(time, z);
        sea_water_practical_salinity_qc_agg:long_name = "Salinity Aggregate 
Flag";
        sea_water_practical_salinity_qc_agg:standard_name = 
"aggregate_quality_flag";
        sea_water_practical_salinity_qc_agg:missing_value = 2;
        sea_water_practical_salinity_qc_agg:flag_meanings = "PASS NOT_EVALUATED 
SUSPECT FAIL MISSING";
        sea_water_practical_salinity_qc_agg:flag_values = 1, 2, 3, 4, 9;

    int sea_water_practical_salinity_qc_flat_line_test(time, z);
        sea_water_practical_salinity_qc_flat_line_test:long_name = "Salinity 
Flat Line Test Flag";
        sea_water_practical_salinity_qc_flat_line_test:standard_name = 
"flat_line_test_quality_flag";
        sea_water_practical_salinity_qc_flat_line_test:missing_value = 2;
        sea_water_practical_salinity_qc_flat_line_test:flag_meanings = "PASS 
NOT_EVALUATED SUSPECT FAIL MISSING";
        sea_water_practical_salinity_qc_flat_line_test:flag_values = 1, 2, 3, 
4, 9;
```



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/216#issuecomment-565064929

This list forwards relevant notifications from Github.  It is distinct from 
[email protected], although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
[email protected].

Reply via email to