From 9cd2a52f29ba328c50f4645cfa29ee4c81d53c94 Mon Sep 17 00:00:00 2001 From: Emma Gardner <71495379+emmerbodc@users.noreply.github.com> Date: Tue, 11 Jun 2024 09:17:44 +0100 Subject: [PATCH] updated seaglider and slocum files (#249) * edits from review Fixed some typos, formatting on organisations, consistencies on OG1.0, reference to EDMO, and changed title for the google docs to vocab collection reference tables to avoid over use of OG1. * Added examples files from a slocum and seaglider Files generated from BODC processing chain * added cut down files and updated file names * added updated examples files following corrections * new slocum file based on checker updated the slocum example file based on feedback from the OG format checker * updated seaglider example based on checker --- .../sg558_20240206T000000_R.cdl | 121 +++++++++--------- .../sg558_20240206T000000_R.nc | Bin 76908 -> 76094 bytes .../unit_345_20231112T000000_R.cdl | 102 ++++++++------- .../unit_345_20231112T000000_R.nc | Bin 59936 -> 59536 bytes 4 files changed, 110 insertions(+), 113 deletions(-) diff --git a/og_format_examples_files/sg558_20240206T000000_R.cdl b/og_format_examples_files/sg558_20240206T000000_R.cdl index 2ccbe77..8dc18e1 100644 --- a/og_format_examples_files/sg558_20240206T000000_R.cdl +++ b/og_format_examples_files/sg558_20240206T000000_R.cdl @@ -132,21 +132,21 @@ variables: PSAL:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; PSAL:ancillary_variables = "PSAL_QC" ; PSAL:sensor = "INSTRUMENT_WATER TEMPERATURE SENSOR_0363" ; - float LATITUDE_GPS(N_MEASUREMENTS) ; + double LATITUDE_GPS(N_MEASUREMENTS) ; LATITUDE_GPS:_FillValue = NaNf ; LATITUDE_GPS:long_name = "Latitude north relative to WGS84 by unspecified GPS system" ; LATITUDE_GPS:units = "degree_north" ; - LATITUDE_GPS:valid_min = -90L ; - LATITUDE_GPS:valid_max = 90L ; + LATITUDE_GPS:valid_min = -90.0 ; + LATITUDE_GPS:valid_max = 90.0 ; LATITUDE_GPS:ancillary_variables = "LATITUDE_GPS_QC" ; LATITUDE_GPS:standard_name = "" ; LATITUDE_GPS:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; - float LONGITUDE_GPS(N_MEASUREMENTS) ; + double LONGITUDE_GPS(N_MEASUREMENTS) ; LONGITUDE_GPS:_FillValue = NaNf ; LONGITUDE_GPS:long_name = "Longitude east relative to WGS84 by unspecified GPS system" ; LONGITUDE_GPS:units = "degree_east" ; - LONGITUDE_GPS:valid_min = -180L ; - LONGITUDE_GPS:valid_max = 180L ; + LONGITUDE_GPS:valid_min = -180.0 ; + LONGITUDE_GPS:valid_max = 180.0 ; LONGITUDE_GPS:ancillary_variables = "LONGITUDE_GPS_QC" ; LONGITUDE_GPS:standard_name = "" ; LONGITUDE_GPS:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; @@ -158,12 +158,12 @@ variables: GLIDER_ROLL:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; GLIDER_ROLL:ancillary_variables = "GLIDER_ROLL_QC" ; GLIDER_ROLL:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; - float LATITUDE(N_MEASUREMENTS) ; + double LATITUDE(N_MEASUREMENTS) ; LATITUDE:_FillValue = NaNf ; LATITUDE:long_name = "Latitude north" ; LATITUDE:units = "degree_north" ; - LATITUDE:valid_min = -90L ; - LATITUDE:valid_max = 90L ; + LATITUDE:valid_min = -90.0 ; + LATITUDE:valid_max = 90.0 ; LATITUDE:ancillary_variables = "LATITUDE_QC" ; LATITUDE:standard_name = "" ; LATITUDE:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; @@ -178,12 +178,12 @@ variables: GLIDER_PITCH:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; GLIDER_PITCH:ancillary_variables = "GLIDER_PITCH_QC" ; GLIDER_PITCH:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; - float LONGITUDE(N_MEASUREMENTS) ; + double LONGITUDE(N_MEASUREMENTS) ; LONGITUDE:_FillValue = NaNf ; LONGITUDE:long_name = "Longitude east" ; LONGITUDE:units = "degree_east" ; - LONGITUDE:valid_min = -180L ; - LONGITUDE:valid_max = 180L ; + LONGITUDE:valid_min = -180.0 ; + LONGITUDE:valid_max = 180.0 ; LONGITUDE:ancillary_variables = "LONGITUDE_QC" ; LONGITUDE:standard_name = "" ; LONGITUDE:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; @@ -198,69 +198,69 @@ variables: GLIDER_DEPTH:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; GLIDER_DEPTH:ancillary_variables = "GLIDER_DEPTH_QC" ; GLIDER_DEPTH:sensor = "INSTRUMENT_DATA LOGGERS_sg558" ; - float TIME_GPS_QC(N_MEASUREMENTS) ; - TIME_GPS_QC:_FillValue = NaNf ; + byte TIME_GPS_QC(N_MEASUREMENTS) ; + TIME_GPS_QC:_FillValue = 0b ; TIME_GPS_QC:long_name = "quality flag" ; - float TEMP_CPU_CHLA_QC(N_MEASUREMENTS) ; - TEMP_CPU_CHLA_QC:_FillValue = NaNf ; + byte TEMP_CPU_CHLA_QC(N_MEASUREMENTS) ; + TEMP_CPU_CHLA_QC:_FillValue = 0b ; TEMP_CPU_CHLA_QC:long_name = "quality flag" ; - float FLUORESCENCE_CHLA_QC(N_MEASUREMENTS) ; - FLUORESCENCE_CHLA_QC:_FillValue = NaNf ; + byte FLUORESCENCE_CHLA_QC(N_MEASUREMENTS) ; + FLUORESCENCE_CHLA_QC:_FillValue = 0b ; FLUORESCENCE_CHLA_QC:long_name = "quality flag" ; - float DPHASE_DOXY_QC(N_MEASUREMENTS) ; - DPHASE_DOXY_QC:_FillValue = NaNf ; + byte DPHASE_DOXY_QC(N_MEASUREMENTS) ; + DPHASE_DOXY_QC:_FillValue = 0b ; DPHASE_DOXY_QC:long_name = "quality flag" ; - float MOLAR_DOXY_QC(N_MEASUREMENTS) ; - MOLAR_DOXY_QC:_FillValue = NaNf ; + byte MOLAR_DOXY_QC(N_MEASUREMENTS) ; + MOLAR_DOXY_QC:_FillValue = 0b ; MOLAR_DOXY_QC:long_name = "quality flag" ; - float TPHASE_DOXY_QC(N_MEASUREMENTS) ; - TPHASE_DOXY_QC:_FillValue = NaNf ; + byte TPHASE_DOXY_QC(N_MEASUREMENTS) ; + TPHASE_DOXY_QC:_FillValue = 0b ; TPHASE_DOXY_QC:long_name = "quality flag" ; - float TEMP_DOXY_QC(N_MEASUREMENTS) ; - TEMP_DOXY_QC:_FillValue = NaNf ; + byte TEMP_DOXY_QC(N_MEASUREMENTS) ; + TEMP_DOXY_QC:_FillValue = 0b ; TEMP_DOXY_QC:long_name = "quality flag" ; - float OXYSAT_DOXY_QC(N_MEASUREMENTS) ; - OXYSAT_DOXY_QC:_FillValue = NaNf ; + byte OXYSAT_DOXY_QC(N_MEASUREMENTS) ; + OXYSAT_DOXY_QC:_FillValue = 0b ; OXYSAT_DOXY_QC:long_name = "quality flag" ; - float PRES_QC(N_MEASUREMENTS) ; - PRES_QC:_FillValue = NaNf ; + byte PRES_QC(N_MEASUREMENTS) ; + PRES_QC:_FillValue = 0b ; PRES_QC:long_name = "quality flag" ; - float SIGMA_T_QC(N_MEASUREMENTS) ; - SIGMA_T_QC:_FillValue = NaNf ; + byte SIGMA_T_QC(N_MEASUREMENTS) ; + SIGMA_T_QC:_FillValue = 0b ; SIGMA_T_QC:long_name = "quality flag" ; - float CNDC_QC(N_MEASUREMENTS) ; - CNDC_QC:_FillValue = NaNf ; + byte CNDC_QC(N_MEASUREMENTS) ; + CNDC_QC:_FillValue = 0b ; CNDC_QC:long_name = "quality flag" ; CNDC_QC:vocabulary = "" ; CNDC_QC:RTQC_methodology = "" ; CNDC_QC:RTQC_methodology_vocabulary = "" ; CNDC_QC:RTQC_methodology_doi = "" ; - float TEMP_QC(N_MEASUREMENTS) ; - TEMP_QC:_FillValue = NaNf ; + byte TEMP_QC(N_MEASUREMENTS) ; + TEMP_QC:_FillValue = 0b ; TEMP_QC:long_name = "quality flag" ; - float PSAL_QC(N_MEASUREMENTS) ; - PSAL_QC:_FillValue = NaNf ; + byte PSAL_QC(N_MEASUREMENTS) ; + PSAL_QC:_FillValue = 0b ; PSAL_QC:long_name = "quality flag" ; - float LATITUDE_GPS_QC(N_MEASUREMENTS) ; - LATITUDE_GPS_QC:_FillValue = NaNf ; + byte LATITUDE_GPS_QC(N_MEASUREMENTS) ; + LATITUDE_GPS_QC:_FillValue = 0b ; LATITUDE_GPS_QC:long_name = "quality flag" ; - float LONGITUDE_GPS_QC(N_MEASUREMENTS) ; - LONGITUDE_GPS_QC:_FillValue = NaNf ; + byte LONGITUDE_GPS_QC(N_MEASUREMENTS) ; + LONGITUDE_GPS_QC:_FillValue = 0b ; LONGITUDE_GPS_QC:long_name = "quality flag" ; - float GLIDER_ROLL_QC(N_MEASUREMENTS) ; - GLIDER_ROLL_QC:_FillValue = NaNf ; + byte GLIDER_ROLL_QC(N_MEASUREMENTS) ; + GLIDER_ROLL_QC:_FillValue = 0b ; GLIDER_ROLL_QC:long_name = "quality flag" ; - float LATITUDE_QC(N_MEASUREMENTS) ; - LATITUDE_QC:_FillValue = NaNf ; + byte LATITUDE_QC(N_MEASUREMENTS) ; + LATITUDE_QC:_FillValue = 0b ; LATITUDE_QC:long_name = "quality flag" ; - float GLIDER_PITCH_QC(N_MEASUREMENTS) ; - GLIDER_PITCH_QC:_FillValue = NaNf ; + byte GLIDER_PITCH_QC(N_MEASUREMENTS) ; + GLIDER_PITCH_QC:_FillValue = 0b ; GLIDER_PITCH_QC:long_name = "quality flag" ; - float LONGITUDE_QC(N_MEASUREMENTS) ; - LONGITUDE_QC:_FillValue = NaNf ; + byte LONGITUDE_QC(N_MEASUREMENTS) ; + LONGITUDE_QC:_FillValue = 0b ; LONGITUDE_QC:long_name = "quality flag" ; - float GLIDER_DEPTH_QC(N_MEASUREMENTS) ; - GLIDER_DEPTH_QC:_FillValue = NaNf ; + byte GLIDER_DEPTH_QC(N_MEASUREMENTS) ; + GLIDER_DEPTH_QC:_FillValue = 0b ; GLIDER_DEPTH_QC:long_name = "quality flag" ; string PARAMETER(N_PARAM) ; PARAMETER:long_name = "name of parameter computed from glider measurements" ; @@ -332,9 +332,9 @@ variables: DEPLOYMENT_TIME:standard_name = "time" ; DEPLOYMENT_TIME:units = "seconds since 1970-01-01T00:00:00Z" ; DEPLOYMENT_TIME:axis = "T" ; - string DEPLOYMENT_LATITUDE ; + double DEPLOYMENT_LATITUDE ; DEPLOYMENT_LATITUDE:long_name = "latitude of deployment" ; - string DEPLOYMENT_LONGITUDE ; + double DEPLOYMENT_LONGITUDE ; DEPLOYMENT_LONGITUDE:long_name = "longitude of deployment" ; // global attributes: @@ -351,15 +351,14 @@ variables: :geospatial_vertical_units = "m" ; :time_coverage_start = "2024-02-06T17:05Z" ; :time_coverage_end = "2024-02-23T20:50Z" ; - :institution = "UEA" ; - :institution_role = "contact point" ; - :institution_role_vocabulary = "https://edmo.seadatanet.org/" ; - :institution_id = "" ; - :institution_id_vocabulary = "EDMO" ; + :contributing_institutions = "UEA" ; + :contributing_institutions_vocabulary = "https://edmo.seadatanet.org/" ; + :contributing_institutions_role = "contact point" ; + :contributing_institutions_role_vocabulary = "https://vocab.nerc.ac.uk/collection/W08/current/CONT0003/" ; :contributor_name = "Karen Heywood" ; :contributor_email = "k.heywood@uea.ac.uk" ; - :contributor_role = "principal investigator" ; - :contributor_role_vocabulary = "https://vocab.nerc.ac.uk/collection/C86/current/SDNPR008/" ; + :contributor_role = "PI" ; + :contributor_role_vocabulary = "https://vocab.nerc.ac.uk/collection/W08/current/CONT0004/" ; :contributor_id = "" ; :publisher_name = "NOC" ; :publisher_email = "glidersbodc@bodc.ac.uk" ; diff --git a/og_format_examples_files/sg558_20240206T000000_R.nc b/og_format_examples_files/sg558_20240206T000000_R.nc index bad8ae7b4363d1b1cbe7e0774ced3c69eb0bc038..9ee0bfc9df2850300184bcd6713e5feedf0c8578 100644 GIT binary patch delta 13581 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 delta 11966 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 =K_e>Q>tfy)#m zDh&O9OToBfm2RAI4#m$EtUsU7fOTSj9}dIOf7ahCIt;j|KC=y0)C|Bl85>soP94=r z|G*5}^C$7-uk_7kcrdQhC-B%~xEOUY?`#|lh4>j+48WLI8X=oOn)sMlZB|Nr`hYkw z9%J6c2)EHB4<5w6K%Xkm9|h@njQ$(QxTD4T79M+ZXG`=dbL_`mpRONhj#b><8TxVN z*pquSQ@@DP&9n5|&4J%?j!vhld0>tmI6h-j+%^~(CAm`9rKXPp-^I9XjkguPj(J0B z@5wJ98$605DWAe3Nx=FCZLtGCwI$>0nttu@$7Z^X1N09Zq3T&=b4Lj7f#a8bHmR1Zmzh~(6)a7v-0!Ue;Cs6 z#x7=N@V{NA5`ZbIxG*<6XIeq_lo^a4x?udVF-gh#zpHSl-r5Zh_oRbN#k@Hse^PG# zo7n|k`ICyrfGXp%iwdXcC%WMwP6Hx(s&l7JnKEWlkvc7AaEdlKIHKm78*aw>7Dwy@ zo3H*s2kc-;^v=mBkxu7W^Suh6=M*ar%srk7Km9TwVoO0Z`B!y9d`q3S+SEpmo5jysqvi#Lg zf4(CQH1bjbF7Q*q&li4y@KeJt9DcpwryuBxwHAV0ozCY)NgwQuKhv-G!d5!s^`iPO zOM&|3ptuDX2#FdI`08!FvgzOiyRx?QzlzvrL6IH}v^D%hIt$8H5}KZKr1a!>UqCN%bfwQ&$niW|+{)CUgqWHWL0+C`;AW0xeY|4QP6$6XmDFung&h?MtP) z4Fv|N&|yFiku;(w7AgHU&<+xuo^Yh}0uy?n2@OXm4ms$*>x8@b%>xX!=~e~jo6yrJ ztq=FdS*0oo+iWOHX?jYd_bJiNohEc8(9|tNyaLM7aoS;m)9sc1H<8G{mHyKtjR9iC zM^KhdS9Lmz+T?e$aeo+8cc}uG|LbbHnCdT%iKUNVg!j;tZ uP>h#qM6ZO>Nvr~zu57Va`c_aXZZFV~>WY%4M$;EvB3})ZrIU96=zjwe$ikEW diff --git a/og_format_examples_files/unit_345_20231112T000000_R.cdl b/og_format_examples_files/unit_345_20231112T000000_R.cdl index a5b2338..640f611 100644 --- a/og_format_examples_files/unit_345_20231112T000000_R.cdl +++ b/og_format_examples_files/unit_345_20231112T000000_R.cdl @@ -60,21 +60,21 @@ variables: TEMP:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; TEMP:ancillary_variables = "TEMP_QC" ; TEMP:sensor = "INSTRUMENT_WATER TEMPERATURE SENSOR_0221" ; - float LATITUDE_GPS(N_MEASUREMENTS) ; - LATITUDE_GPS:_FillValue = NaNf ; + double LATITUDE_GPS(N_MEASUREMENTS) ; + LATITUDE_GPS:_FillValue = NaN ; LATITUDE_GPS:long_name = "Latitude north relative to WGS84 by unspecified GPS system" ; LATITUDE_GPS:units = "degree_north" ; - LATITUDE_GPS:valid_min = -90L ; - LATITUDE_GPS:valid_max = 90L ; + LATITUDE_GPS:valid_min = -90.0 ; + LATITUDE_GPS:valid_max = 90.0 ; LATITUDE_GPS:ancillary_variables = "LATITUDE_GPS_QC" ; LATITUDE_GPS:standard_name = "" ; LATITUDE_GPS:sensor = "INSTRUMENT_DATA LOGGERS_unit 345" ; - float LONGITUDE_GPS(N_MEASUREMENTS) ; - LONGITUDE_GPS:_FillValue = NaNf ; + double LONGITUDE_GPS(N_MEASUREMENTS) ; + LONGITUDE_GPS:_FillValue = NaN ; LONGITUDE_GPS:long_name = "Longitude east relative to WGS84 by unspecified GPS system" ; LONGITUDE_GPS:units = "degree_east" ; - LONGITUDE_GPS:valid_min = -180L ; - LONGITUDE_GPS:valid_max = 180L ; + LONGITUDE_GPS:valid_min = -180.0 ; + LONGITUDE_GPS:valid_max = 180.0 ; LONGITUDE_GPS:ancillary_variables = "LONGITUDE_GPS_QC" ; LONGITUDE_GPS:standard_name = "" ; LONGITUDE_GPS:sensor = "INSTRUMENT_DATA LOGGERS_unit 345" ; @@ -94,24 +94,24 @@ variables: ALTITUDE:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; ALTITUDE:ancillary_variables = "ALTITUDE_QC" ; ALTITUDE:sensor = "INSTRUMENT_DATA LOGGERS_unit 345" ; - float LATITUDE(N_MEASUREMENTS) ; - LATITUDE:_FillValue = NaNf ; + double LATITUDE(N_MEASUREMENTS) ; + LATITUDE:_FillValue = NaN ; LATITUDE:long_name = "Latitude north" ; LATITUDE:units = "degree_north" ; - LATITUDE:valid_min = -90L ; - LATITUDE:valid_max = 90L ; + LATITUDE:valid_min = -90.0 ; + LATITUDE:valid_max = 90.0 ; LATITUDE:ancillary_variables = "LATITUDE_QC" ; LATITUDE:standard_name = "" ; LATITUDE:sensor = "INSTRUMENT_DATA LOGGERS_unit 345" ; LATITUDE:interpolation_methodology = "" ; LATITUDE:interpolation_methodology_vocabulary = "" ; LATITUDE:interpolation_methodology_doi = "" ; - float LONGITUDE(N_MEASUREMENTS) ; - LONGITUDE:_FillValue = NaNf ; + double LONGITUDE(N_MEASUREMENTS) ; + LONGITUDE:_FillValue = NaN ; LONGITUDE:long_name = "Longitude east" ; LONGITUDE:units = "degree_east" ; - LONGITUDE:valid_min = -180L ; - LONGITUDE:valid_max = 180L ; + LONGITUDE:valid_min = -180.0 ; + LONGITUDE:valid_max = 180.0 ; LONGITUDE:ancillary_variables = "LONGITUDE_QC" ; LONGITUDE:standard_name = "" ; LONGITUDE:sensor = "INSTRUMENT_DATA LOGGERS_unit 345" ; @@ -142,48 +142,48 @@ variables: GLIDER_ROLL:vocabulary = "https://vocab.nerc.ac.uk/collection/OG1/current/" ; GLIDER_ROLL:ancillary_variables = "GLIDER_ROLL_QC" ; GLIDER_ROLL:sensor = "INSTRUMENT_DATA LOGGERS_unit 345" ; - float TIME_GPS_QC(N_MEASUREMENTS) ; - TIME_GPS_QC:_FillValue = NaNf ; + byte TIME_GPS_QC(N_MEASUREMENTS) ; + TIME_GPS_QC:_FillValue = 0b ; TIME_GPS_QC:long_name = "quality flag" ; - float CNDC_QC(N_MEASUREMENTS) ; - CNDC_QC:_FillValue = NaNf ; + byte CNDC_QC(N_MEASUREMENTS) ; + CNDC_QC:_FillValue = 0b ; CNDC_QC:long_name = "quality flag" ; CNDC_QC:vocabulary = "" ; CNDC_QC:RTQC_methodology = "" ; CNDC_QC:RTQC_methodology_vocabulary = "" ; CNDC_QC:RTQC_methodology_doi = "" ; - float PRES_QC(N_MEASUREMENTS) ; - PRES_QC:_FillValue = NaNf ; + byte PRES_QC(N_MEASUREMENTS) ; + PRES_QC:_FillValue = 0b ; PRES_QC:long_name = "quality flag" ; - float TEMP_QC(N_MEASUREMENTS) ; - TEMP_QC:_FillValue = NaNf ; + byte TEMP_QC(N_MEASUREMENTS) ; + TEMP_QC:_FillValue = 0b ; TEMP_QC:long_name = "quality flag" ; - float LATITUDE_GPS_QC(N_MEASUREMENTS) ; - LATITUDE_GPS_QC:_FillValue = NaNf ; + byte LATITUDE_GPS_QC(N_MEASUREMENTS) ; + LATITUDE_GPS_QC:_FillValue = 0b ; LATITUDE_GPS_QC:long_name = "quality flag" ; - float LONGITUDE_GPS_QC(N_MEASUREMENTS) ; - LONGITUDE_GPS_QC:_FillValue = NaNf ; + byte LONGITUDE_GPS_QC(N_MEASUREMENTS) ; + LONGITUDE_GPS_QC:_FillValue = 0b ; LONGITUDE_GPS_QC:long_name = "quality flag" ; - float WATERCURRENTS_U_QC(N_MEASUREMENTS) ; - WATERCURRENTS_U_QC:_FillValue = NaNf ; + byte WATERCURRENTS_U_QC(N_MEASUREMENTS) ; + WATERCURRENTS_U_QC:_FillValue = 0b ; WATERCURRENTS_U_QC:long_name = "quality flag" ; - float ALTITUDE_QC(N_MEASUREMENTS) ; - ALTITUDE_QC:_FillValue = NaNf ; + byte ALTITUDE_QC(N_MEASUREMENTS) ; + ALTITUDE_QC:_FillValue = 0b ; ALTITUDE_QC:long_name = "quality flag" ; - float LATITUDE_QC(N_MEASUREMENTS) ; - LATITUDE_QC:_FillValue = NaNf ; + byte LATITUDE_QC(N_MEASUREMENTS) ; + LATITUDE_QC:_FillValue = 0b ; LATITUDE_QC:long_name = "quality flag" ; - float LONGITUDE_QC(N_MEASUREMENTS) ; - LONGITUDE_QC:_FillValue = NaNf ; + byte LONGITUDE_QC(N_MEASUREMENTS) ; + LONGITUDE_QC:_FillValue = 0b ; LONGITUDE_QC:long_name = "quality flag" ; - float WATERCURRENTS_V_QC(N_MEASUREMENTS) ; - WATERCURRENTS_V_QC:_FillValue = NaNf ; + byte WATERCURRENTS_V_QC(N_MEASUREMENTS) ; + WATERCURRENTS_V_QC:_FillValue = 0b ; WATERCURRENTS_V_QC:long_name = "quality flag" ; - float GLIDER_PITCH_QC(N_MEASUREMENTS) ; - GLIDER_PITCH_QC:_FillValue = NaNf ; + byte GLIDER_PITCH_QC(N_MEASUREMENTS) ; + GLIDER_PITCH_QC:_FillValue = 0b ; GLIDER_PITCH_QC:long_name = "quality flag" ; - float GLIDER_ROLL_QC(N_MEASUREMENTS) ; - GLIDER_ROLL_QC:_FillValue = NaNf ; + byte GLIDER_ROLL_QC(N_MEASUREMENTS) ; + GLIDER_ROLL_QC:_FillValue = 0b ; GLIDER_ROLL_QC:long_name = "quality flag" ; string PARAMETER(N_PARAM) ; PARAMETER:long_name = "name of parameter computed from glider measurements" ; @@ -233,9 +233,9 @@ variables: DEPLOYMENT_TIME:standard_name = "time" ; DEPLOYMENT_TIME:units = "seconds since 1970-01-01T00:00:00Z" ; DEPLOYMENT_TIME:axis = "T" ; - string DEPLOYMENT_LATITUDE ; + double DEPLOYMENT_LATITUDE ; DEPLOYMENT_LATITUDE:long_name = "latitude of deployment" ; - string DEPLOYMENT_LONGITUDE ; + double DEPLOYMENT_LONGITUDE ; DEPLOYMENT_LONGITUDE:long_name = "longitude of deployment" ; // global attributes: @@ -252,15 +252,14 @@ variables: :geospatial_vertical_units = "m" ; :time_coverage_start = "2023-11-12T10:10Z" ; :time_coverage_end = "2024-02-05T09:08Z" ; - :institution = "NOCS" ; - :institution_role = "contact point" ; - :institution_role_vocabulary = "https://edmo.seadatanet.org/" ; - :institution_id = "" ; - :institution_id_vocabulary = "EDMO" ; + :contributing_institutions = "NOCS" ; + :contributing_institutions_role = "contact point" ; + :contributing_institutions_role_vocabulary = "https://vocab.nerc.ac.uk/collection/W08/current/CONT0003/" ; + :contributing_institutions_vocabulary = "https://edmo.seadatanet.org/" ; :contributor_name = "Phil Bagley" ; :contributor_email = "phil.bagley@noc.ac.uk" ; - :contributor_role = "principal investigator" ; - :contributor_role_vocabulary = "https://vocab.nerc.ac.uk/collection/C86/current/SDNPR008/" ; + :contributor_role = "PI" ; + :contributor_role_vocabulary = "https://vocab.nerc.ac.uk/collection/W08/current/CONT0004/" ; :contributor_id = "" ; :publisher_name = "NOC" ; :publisher_email = "glidersbodc@bodc.ac.uk" ; @@ -273,7 +272,6 @@ variables: :creator_type = "DAC" ; :creator_institution = "NOC" ; :wmoid = "6800986" ; - :institution = "" ; :comment = "" ; :doi = "" ; :program = "" ; diff --git a/og_format_examples_files/unit_345_20231112T000000_R.nc b/og_format_examples_files/unit_345_20231112T000000_R.nc index eab940e6331128d8ecbd7ccf15d51dad026ae2d8..e3a573d97115f38ab72362607749dcd6efaba76f 100644 GIT binary patch delta 11568 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