Hi John,

Thanks, I think we have reached a near conclusion to our discussions
about how best to encode a 'single' profile CTD cast following CF standard v1.6.

This not been easy as CF allows more than 1 way to do it and the standard is large. Thanks also Jonathon, Roy, Nan, Jim, Upendra, Thierry, Karl for your valuable inputs,
hope I haven't missed anyone else!

Jonathon, thanks for clarifying that 'axis' attribute will be allowed on
'auxilliary coordinate variables', yes the standard was confusing.

To summarise I will use a 'Scalar' method for simplicity, noting that
the 'Vector' method is also acceptable.

Attached for reference is the netCDF file and CDL (.txt) of the same.
Convention attribute has been updated to 'CF-1.6'

Andrew



----- Original Message ----- From: "John Caron" <[email protected]>
To: <[email protected]>
Sent: Wednesday, May 02, 2012 2:21 AM
Subject: Re: [CF-metadata] Ocean CTD data following CF Conventions v1.6


On 4/30/2012 8:40 PM, andrew walsh wrote:
Hi John and CF-Metadata list,

Based on your earlier advice I decided using the Scalar way to represent
the coordinate lat, long and time rather than Vector way i.e lat(lat0, lon(lon), time(time)
mainly for reason of simplicity.

the correct other choice is lat(profile), lon(profile), time(profile). not sure if you caught that.

the scalar choice is fine for 1 profile per file. the other is used to store multiple profiles in one file.


I have run the Scalar sample through the BADC netCDF checker (*Note)
at http://titania.badc.rl.ac.uk/cgi-bin/cf-checker.pl and I now get this error
on each of the lat, lon, time variables:

ERROR (4): Axis attribute is not allowed for auxillary coordinate variables.
I don't get this error with the Vector approach. It looks like the checker thinks my scalar lat, lon, time are 'auxilliary coordinate variables' and axis attributes
are not allowed on these. Is the checker interpreting things correctly?

i think we recently clarified that axis is acceptable on auxiliary coordinates. OTOH, its unecessary, as long as you follow the other rules for identifying coordinates (chapter 4).

_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

netcdf ScalarCTDFinal {
dimensions:
        pressure = UNLIMITED ; // (9 currently)
variables:
        double time ;
                time:standard_name = "time" ;
                time:units = "days since 1950-01-01 00:00:00" ;
                time:axis = "T" ;
                time:valid_min = 0 ;
                time:valid_max = 999999 ;
        byte time_qc_flag ;
                time_qc_flag:long_name = "quality control flag for time (primary 
Level 1 flag)" ;
                time_qc_flag:quality_control_convention = "Proposed IODE qc scheme 
March 2012" ;
                time_qc_flag:valid_min = 1 ;
                time_qc_flag:valid_max = 9 ;
                time_qc_flag:flag_values = 1b, 2b, 3b, 4b, 9b ;
                time_qc_flag:flag_meanings = "good not_evaluated_or_unknown suspect 
bad missing" ;
        double latitude ;
                latitude:standard_name = "latitude" ;
                latitude:units = "degrees_north" ;
                latitude:axis = "Y" ;
                latitude:valid_min = -90 ;
                latitude:valid_max = 90 ;
        double longitude ;
                longitude:standard_name = "longitude" ;
                longitude:units = "degrees_east" ;
                longitude:axis = "X" ;
                longitude:valid_min = -180 ;
                longitude:valid_max = 180 ;
        byte position_qc_flag ;
                position_qc_flag:long_name = "quality control flag for position 
(primary Level 1 flag)" ;
                position_qc_flag:quality_control_convention = "Proposed IODE qc 
scheme March 2012" ;
                position_qc_flag:valid_min = 1 ;
                position_qc_flag:valid_max = 9 ;
                position_qc_flag:flag_values = 1b, 2b, 3b, 4b, 9b ;
                position_qc_flag:flag_meanings = "good not_evaluated_or_unknown 
suspect bad missing" ;
        double pressure(pressure) ;
                pressure:standard_name = "sea_water_pressure" ;
                pressure:units = "decibars" ;
                pressure:axis = "Z" ;
                pressure:valid_min = 0 ;
                pressure:valid_max = 12000 ;
                pressure:positive = "down" ;
        double temperature(pressure) ;
                temperature:_FillValue = -99.99 ;
                temperature:standard_name = "sea_water_temperature" ;
                temperature:units = "degrees_C" ;
                temperature:valid_min = -2 ;
                temperature:valid_max = 40 ;
                temperature:ancillary_variables = "temperature_whole_profile_flag 
temperature_qc_flag temperature_sd_test" ;
                temperature:coordinates = "time latitude longitude pressure" ;
        byte temperature_whole_profile_flag ;
                temperature_whole_profile_flag:long_name = "qc flag for whole 
temperature profile (primary Level 1 flag)" ;
                temperature_whole_profile_flag:quality_control_convention = 
"Proposed IODE qc scheme March 2012" ;
                temperature_whole_profile_flag:valid_min = 1 ;
                temperature_whole_profile_flag:valid_max = 9 ;
                temperature_whole_profile_flag:flag_values = 1b, 2b, 3b, 4b, 9b 
;
                temperature_whole_profile_flag:flag_meanings = "good 
not_evaluated_or_unknown suspect bad missing" ;
        byte temperature_qc_flag(pressure) ;
                temperature_qc_flag:long_name = "quality control flag for 
temperature (primary Level 1 flag)" ;
                temperature_qc_flag:standard_name = "sea_water_temperature 
status_flag" ;
                temperature_qc_flag:quality_control_convention = "Proposed IODE qc 
scheme March 2012" ;
                temperature_qc_flag:valid_min = 1 ;
                temperature_qc_flag:valid_max = 9 ;
                temperature_qc_flag:flag_values = 1b, 2b, 3b, 4b, 9b ;
                temperature_qc_flag:flag_meanings = "good not_evaluated_or_unknown 
suspect bad missing" ;
                temperature_qc_flag:coordinates = "time latitude longitude 
pressure" ;
        byte temperature_sd_test(pressure) ;
                temperature_sd_test:long_name = "qc flag for monthly temperature 3 
standard deviation test (secondary Level 2 flag)" ;
                temperature_sd_test:quality_control_convention = "Proposed IODE qc 
scheme March 2012" ;
                temperature_sd_test:valid_min = 0 ;
                temperature_sd_test:valid_max = 2 ;
                temperature_sd_test:flag_values = 0b, 1b, 2b ;
                temperature_sd_test:flag_meanings = "passed failed unknown" ;
                temperature_sd_test:coordinates = "time latitude longitude 
pressure" ;
        double salinity(pressure) ;
                salinity:_FillValue = -99.99 ;
                salinity:standard_name = "sea_water_salinity" ;
                salinity:units = "psu" ;
                salinity:valid_min = 0 ;
                salinity:valid_max = 45 ;
                salinity:ancillary_variables = "salinity_whole_profile_flag 
salinity_qc_flag salinity_sd_test" ;
                salinity:coordinates = "time latitude longitude pressure" ;
        byte salinity_whole_profile_flag ;
                salinity_whole_profile_flag:long_name = "qc flag for whole salinity 
profile (primary Level 1 flag)" ;
                salinity_whole_profile_flag:quality_control_convention = "Proposed 
IODE qc scheme March 2012" ;
                salinity_whole_profile_flag:valid_min = 1 ;
                salinity_whole_profile_flag:valid_max = 9 ;
                salinity_whole_profile_flag:flag_values = 1b, 2b, 3b, 4b, 9b ;
                salinity_whole_profile_flag:flag_meanings = "good 
not_evaluated_or_unknown suspect bad missing" ;
        byte salinity_qc_flag(pressure) ;
                salinity_qc_flag:long_name = "quality control flag for salinity 
(primary Level 1 flag)" ;
                salinity_qc_flag:standard_name = "sea_water_salinity 
status_flag" ;
                salinity_qc_flag:quality_control_convention = "Proposed IODE qc 
scheme March 2012" ;
                salinity_qc_flag:valid_min = 1 ;
                salinity_qc_flag:valid_max = 9 ;
                salinity_qc_flag:flag_values = 1b, 2b, 3b, 4b, 9b ;
                salinity_qc_flag:flag_meanings = "good not_evaluated_or_unknown 
suspect bad missing" ;
                salinity_qc_flag:coordinates = "time latitude longitude 
pressure" ;
        byte salinity_sd_test(pressure) ;
                salinity_sd_test:long_name = "qc flag for monthly salinity 3 
standard deviation test (secondary Level 2 flag)" ;
                salinity_sd_test:quality_control_convention = "Proposed IODE qc 
scheme March 2012" ;
                salinity_sd_test:valid_min = 0 ;
                salinity_sd_test:valid_max = 2 ;
                salinity_sd_test:flag_values = 0b, 1b, 2b ;
                salinity_sd_test:flag_meanings = "passed failed unknown" ;
                salinity_sd_test:coordinates = "time latitude longitude 
pressure" ;
        int profile ;
                profile:long_name = "profile identifier" ;
                profile:cf_role = "profile_id" ;

// global attributes:
                :Conventions = "CF-1.6" ;
                :featureType = "profile" ;
                :cdm_data_type = "Profile" ;
data:

time = 22509.0081018517 ;

time_qc_flag = 1 ;

latitude = -10.5688 ;

longitude = 142.11713 ;

position_qc_flag = 1 ;

pressure = 4, 5, 6, 7, 8, 9, 10, 11, 12 ;

temperature = 24.737, 24.737, 24.739, 24.738, 24.737, 24.736, 24.7375, 24.737, 24.735 ;

temperature_whole_profile_flag = 1 ;

temperature_qc_flag = 1, 1, 1, 1, 1, 1, 1, 1, 1 ;

temperature_sd_test = 0, 0, 0, 0, 0, 0, 0, 0, 0 ;

salinity = 35.2028, 35.2032, 35.2013, 35.2018, 35.2022, 35.2019, 35.2019, 35.2024, 35.204 ;

salinity_whole_profile_flag = 1 ;

salinity_qc_flag = 1, 1, 1, 1, 1, 1, 1, 1, 1 ;

salinity_sd_test = 0, 0, 0, 0, 0, 0, 0, 0, 0 ;

profile = 123456 ;
}

Attachment: ScalarCTD2.nc
Description: Binary data

_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to