diff --git a/pyglider/ncprocess.py b/pyglider/ncprocess.py index 41df85fa..cddd6fc7 100644 --- a/pyglider/ncprocess.py +++ b/pyglider/ncprocess.py @@ -234,6 +234,9 @@ def make_gridfiles( dz : float, default = 1 Vertical grid spacing in meters. + starttime : str, default = '1970-01-01' + Start time for gridding. Data before this time is ignored. + maskfunction : callable or None, optional Function applied to the dataset before gridding, usually to choose what data will be set to NaN based on quality flags. @@ -250,7 +253,10 @@ def make_gridfiles( with subsequent files overwriting previous files. Note: - By default, the arithmetic mean is used to bin all variables, except for those with + By default, the arithmetic mean is used to bin all variables, except for + distance_over_ground (never gridded), some profile variables + (profile_start_time, profile_end_time, and profile_direction, + which are gridded using min, max, and mode, respectively), or variables with an average_method attribute inherited from the timeseries. This attribute is specified in the YAML configuration file when the timeseries is created. For example, if a variable has average_method: geometric mean, the geometric mean is used when gridding that variable. @@ -272,6 +278,8 @@ def make_gridfiles( profile_index_varname = utils._resolve_role(ds, varnames, 'profile_index') lat_varname = utils._resolve_role(ds, varnames, 'latitude') lon_varname = utils._resolve_role(ds, varnames, 'longitude') + profile_direction_varname = utils._resolve_role(ds, varnames, 'profile_direction') + dog_varname = utils._resolve_role(ds, varnames, 'distance_over_ground') if maskfunction is not None: ds = maskfunction(ds) @@ -323,19 +331,26 @@ def make_gridfiles( 'comment': 'center of depth bins', } - # Bin by profile index, for the mean time, lat, and lon values for each profile + # Bin by profile index, for the mean time, lat, and lon values for each profile ds['time_1970'] = xr.DataArray( ds.time.values.astype(np.float64), dims=['time'], attrs={} ) - for td in ('time_1970', lon_varname, lat_varname): + for td in ('time_1970', lon_varname, lat_varname, profile_direction_varname): good = np.where(~np.isnan(ds[td]) & (ds[profile_index_varname] % 1 == 0))[0] if len(good) > 1: + if td == profile_direction_varname: + method = (lambda x: stats.mode(x, keepdims=True, nan_policy='omit')[0][0]) + ds[td].attrs["average_method"] = "mode" + else: + method = 'mean' + ds[td].attrs["average_method"] = "arithmetic mean" + dat, xedges, binnumber = stats.binned_statistic( ds[profile_index_varname].values[good], ds[td].values[good], - statistic='mean', + statistic=method, bins=[profile_bins], ) if td == 'time_1970': @@ -350,28 +365,37 @@ def make_gridfiles( # Bin by profile index, for the profile start (min) and end (max) times profile_lookup = {'profile_time_start': "min", 'profile_time_end': "max"} good = np.where(~np.isnan(ds['time']) & (ds[profile_index_varname] % 1 == 0))[0] - for td, bin_stat in profile_lookup.items(): - _log.debug(f'td, bin_stat {td}, {bin_stat}') + for td, method in profile_lookup.items(): + _log.debug(f'td, method {td}, {method}') + attrs = profile_meta.get(td, {}) + attrs['average_method'] = method + dat, xedges, binnumber = stats.binned_statistic( ds[profile_index_varname].values[good], ds['time_1970'].values[good], - statistic=bin_stat, + statistic=method, bins=[profile_bins], ) dat = dat.astype('timedelta64[ns]') + np.datetime64('1970-01-01T00:00:00') _log.info(f'{td} {len(dat)}') - dsout[td] = ((xdimname), dat, profile_meta.get(td, {})) + dsout[td] = ((xdimname), dat, attrs) ds = ds.drop_vars('time_1970') - _log.info(f'Done times!') + _log.info('Done times!') - skip_vars = {'time', lat_varname, lon_varname, depth_varname, profile_index_varname} + skip_vars = { + 'time', lat_varname, lon_varname, depth_varname, profile_index_varname, + profile_direction_varname, dog_varname + } for k in ds.keys(): if k in skip_vars or 'time' in k: continue if not np.issubdtype(ds[k].dtype, np.number): continue + if 'average_method' in ds[k].attrs.keys() and ds[k].attrs['average_method'] == 'none': + _log.debug('Skipping %s because average_method is none', k) + continue _log.info('Gridding %s', k) good = np.where(~np.isnan(ds[k]) & (ds[profile_index_varname] % 1 == 0))[0] if len(good) <= 0: @@ -379,12 +403,13 @@ def make_gridfiles( if 'QC_protocol' in ds[k].attrs.values(): method = np.nanmax else: - if 'average_method' in ds[k].attrs.values(): + if 'average_method' in ds[k].attrs.keys(): method = ds[k].attrs['average_method'] if method == 'geometric mean': method = stats.gmean else: method = 'mean' + ds[k].attrs['average_method'] = 'arithmetic mean' dat, xedges, yedges, binnumber = stats.binned_statistic_2d( ds[profile_index_varname].values[good], diff --git a/pyglider/utils.py b/pyglider/utils.py index 2c33b13e..7739e2a6 100644 --- a/pyglider/utils.py +++ b/pyglider/utils.py @@ -868,12 +868,12 @@ def _get_varnames(deployment): the relevant derived variable; do not need ``processing_role`` if ``processing_method`` entries name their inputs explicitly: ``temperature``, ``conductivity``, ``salinity``, ``profile_direction``, - ``oxygen_concentration``. + ``oxygen_concentration``, ``distance_over_ground``. """ known_roles = { 'time', 'latitude', 'longitude', 'pressure', 'temperature', 'conductivity', 'salinity', 'depth', 'profile_index', - 'profile_direction', 'oxygen_concentration', + 'profile_direction', 'oxygen_concentration', "distance_over_ground", } ncvar = deployment.get('netcdf_variables', {}) varnames = {} diff --git a/tests/example-data/example-seaexplorer/deploymentRealtime_og10.yml b/tests/example-data/example-seaexplorer/deploymentRealtime_og10.yml index 8aa43b9a..f12894f8 100644 --- a/tests/example-data/example-seaexplorer/deploymentRealtime_og10.yml +++ b/tests/example-data/example-seaexplorer/deploymentRealtime_og10.yml @@ -254,6 +254,7 @@ netcdf_variables: distance_over_ground: latitude: LATITUDE longitude: LONGITUDE + processing_role: distance_over_ground long_name: Distance over ground flown since mission start units: km diff --git a/tests/example-data/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid.nc b/tests/example-data/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid.nc index 560d2ce0..056acd48 100644 Binary files a/tests/example-data/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid.nc and b/tests/example-data/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid.nc differ diff --git a/tests/example-data/example-slocum/deploymentRealtime_og10.yml b/tests/example-data/example-slocum/deploymentRealtime_og10.yml index de7a03d5..651e1e90 100644 --- a/tests/example-data/example-slocum/deploymentRealtime_og10.yml +++ b/tests/example-data/example-slocum/deploymentRealtime_og10.yml @@ -260,6 +260,7 @@ netcdf_variables: distance_over_ground: latitude: LATITUDE longitude: LONGITUDE + processing_role: distance_over_ground long_name: Distance over ground flown since mission start units: km diff --git a/tests/expected/example-seaexplorer-raw/L0-timeseries/dfo-bb046-20200908.nc b/tests/expected/example-seaexplorer-raw/L0-timeseries/dfo-bb046-20200908.nc index dad5629a..09392dab 100644 Binary files a/tests/expected/example-seaexplorer-raw/L0-timeseries/dfo-bb046-20200908.nc and b/tests/expected/example-seaexplorer-raw/L0-timeseries/dfo-bb046-20200908.nc differ diff --git a/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.cdl b/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.cdl index 5e0a3d7a..044ae987 100644 --- a/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.cdl +++ b/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.cdl @@ -3,14 +3,26 @@ dimensions: time = 22 ; DEPTH = 1100 ; variables: + double PROFILE_DIRECTION(time) ; + PROFILE_DIRECTION:_FillValue = NaN ; + PROFILE_DIRECTION:long_name = "Vertical direction of profile" ; + PROFILE_DIRECTION:units = "1" ; + PROFILE_DIRECTION:comment = "1 = descending, -1 = ascending, 0 = not in a profile" ; + PROFILE_DIRECTION:sources = "time PRES" ; + PROFILE_DIRECTION:method = "get_profiles_new" ; + PROFILE_DIRECTION:average_method = "mode" ; + PROFILE_DIRECTION:coverage_content_type = "physicalMeasurement" ; + PROFILE_DIRECTION:coordinates = "LATITUDE LONGITUDE profile" ; double profile_time_start(time) ; profile_time_start:_FillValue = NaN ; + profile_time_start:average_method = "min" ; profile_time_start:coverage_content_type = "physicalMeasurement" ; profile_time_start:coordinates = "LATITUDE LONGITUDE profile" ; profile_time_start:units = "seconds since 1970-01-01T00:00:00+00:00" ; profile_time_start:calendar = "gregorian" ; double profile_time_end(time) ; profile_time_end:_FillValue = NaN ; + profile_time_end:average_method = "max" ; profile_time_end:coverage_content_type = "physicalMeasurement" ; profile_time_end:coordinates = "LATITUDE LONGITUDE profile" ; profile_time_end:units = "seconds since 1970-01-01T00:00:00+00:00" ; @@ -33,6 +45,7 @@ variables: CNDC:comment = " " ; CNDC:platform = "platform" ; CNDC:ancillary_variables = " " ; + CNDC:average_method = "arithmetic mean" ; CNDC:coverage_content_type = "physicalMeasurement" ; CNDC:coordinates = "LATITUDE LONGITUDE profile" ; double TEMP(DEPTH, time) ; @@ -53,6 +66,7 @@ variables: TEMP:comment = " " ; TEMP:platform = "platform" ; TEMP:ancillary_variables = " " ; + TEMP:average_method = "arithmetic mean" ; TEMP:coverage_content_type = "physicalMeasurement" ; TEMP:coordinates = "LATITUDE LONGITUDE profile" ; double PRES(DEPTH, time) ; @@ -75,6 +89,7 @@ variables: PRES:comment = " " ; PRES:platform = "platform" ; PRES:ancillary_variables = " " ; + PRES:average_method = "arithmetic mean" ; PRES:coverage_content_type = "physicalMeasurement" ; PRES:coordinates = "LATITUDE LONGITUDE profile" ; double HEADING(DEPTH, time) ; @@ -90,6 +105,7 @@ variables: HEADING:platform = "platform" ; HEADING:resolution = " " ; HEADING:ancillary_variables = " " ; + HEADING:average_method = "arithmetic mean" ; HEADING:coverage_content_type = "physicalMeasurement" ; HEADING:coordinates = "LATITUDE LONGITUDE profile" ; double PITCH(DEPTH, time) ; @@ -105,6 +121,7 @@ variables: PITCH:platform = "platform" ; PITCH:resolution = " " ; PITCH:ancillary_variables = " " ; + PITCH:average_method = "arithmetic mean" ; PITCH:coverage_content_type = "physicalMeasurement" ; PITCH:coordinates = "LATITUDE LONGITUDE profile" ; double ROLL(DEPTH, time) ; @@ -120,6 +137,7 @@ variables: ROLL:platform = "platform" ; ROLL:resolution = " " ; ROLL:ancillary_variables = " " ; + ROLL:average_method = "arithmetic mean" ; ROLL:coverage_content_type = "physicalMeasurement" ; ROLL:coordinates = "LATITUDE LONGITUDE profile" ; double CHLA(DEPTH, time) ; @@ -136,6 +154,7 @@ variables: CHLA:platform = "platform" ; CHLA:resolution = " " ; CHLA:ancillary_variables = " " ; + CHLA:average_method = "arithmetic mean" ; CHLA:coverage_content_type = "physicalMeasurement" ; CHLA:coordinates = "LATITUDE LONGITUDE profile" ; double CDOM(DEPTH, time) ; @@ -151,6 +170,7 @@ variables: CDOM:platform = "platform" ; CDOM:resolution = " " ; CDOM:ancillary_variables = " " ; + CDOM:average_method = "arithmetic mean" ; CDOM:coverage_content_type = "physicalMeasurement" ; CDOM:coordinates = "LATITUDE LONGITUDE profile" ; double BBP700(DEPTH, time) ; @@ -166,31 +186,9 @@ variables: BBP700:platform = "platform" ; BBP700:resolution = " " ; BBP700:ancillary_variables = " " ; + BBP700:average_method = "arithmetic mean" ; BBP700:coverage_content_type = "physicalMeasurement" ; BBP700:coordinates = "LATITUDE LONGITUDE profile" ; - double PROFILE_DIRECTION(DEPTH, time) ; - PROFILE_DIRECTION:_FillValue = NaN ; - PROFILE_DIRECTION:long_name = "Vertical direction of profile" ; - PROFILE_DIRECTION:units = "1" ; - PROFILE_DIRECTION:comment = "1 = descending, -1 = ascending, 0 = not in a profile" ; - PROFILE_DIRECTION:sources = "time PRES" ; - PROFILE_DIRECTION:method = "get_profiles_new" ; - PROFILE_DIRECTION:coverage_content_type = "physicalMeasurement" ; - PROFILE_DIRECTION:coordinates = "LATITUDE LONGITUDE profile" ; - double DISTANCE_OVER_GROUND(DEPTH, time) ; - DISTANCE_OVER_GROUND:_FillValue = NaN ; - DISTANCE_OVER_GROUND:long_name = "Distance over ground flown since mission start" ; - DISTANCE_OVER_GROUND:units = "km" ; - DISTANCE_OVER_GROUND:method = "distance_over_ground" ; - DISTANCE_OVER_GROUND:sources = "LATITUDE LONGITUDE" ; - DISTANCE_OVER_GROUND:comment = "Computed by distance_over_ground from latitude=LATITUDE, longitude=LONGITUDE" ; - DISTANCE_OVER_GROUND:accuracy = " " ; - DISTANCE_OVER_GROUND:precision = " " ; - DISTANCE_OVER_GROUND:platform = "platform" ; - DISTANCE_OVER_GROUND:resolution = " " ; - DISTANCE_OVER_GROUND:ancillary_variables = " " ; - DISTANCE_OVER_GROUND:coverage_content_type = "physicalMeasurement" ; - DISTANCE_OVER_GROUND:coordinates = "LATITUDE LONGITUDE profile" ; double PSAL(DEPTH, time) ; PSAL:_FillValue = NaN ; PSAL:long_name = "Sea water practical salinity" ; @@ -209,6 +207,7 @@ variables: PSAL:sources = "CNDC TEMP PRES" ; PSAL:platform = "platform" ; PSAL:ancillary_variables = " " ; + PSAL:average_method = "arithmetic mean" ; PSAL:coverage_content_type = "physicalMeasurement" ; PSAL:coordinates = "LATITUDE LONGITUDE profile" ; double THETA(DEPTH, time) ; @@ -226,6 +225,7 @@ variables: THETA:comment = "Computed by potential_temperature from salinity=PSAL, temperature=TEMP, pressure=PRES" ; THETA:platform = "platform" ; THETA:ancillary_variables = " " ; + THETA:average_method = "arithmetic mean" ; THETA:coverage_content_type = "physicalMeasurement" ; THETA:coordinates = "LATITUDE LONGITUDE profile" ; double SIGTHETA(DEPTH, time) ; @@ -243,6 +243,7 @@ variables: SIGTHETA:comment = "Computed by potential_density_sigma0 from salinity=PSAL, temperature=TEMP, pressure=PRES, latitude=LATITUDE, longitude=LONGITUDE" ; SIGTHETA:platform = "platform" ; SIGTHETA:ancillary_variables = " " ; + SIGTHETA:average_method = "arithmetic mean" ; SIGTHETA:coverage_content_type = "physicalMeasurement" ; SIGTHETA:coordinates = "LATITUDE LONGITUDE profile" ; double DENSITY(DEPTH, time) ; @@ -262,6 +263,7 @@ variables: DENSITY:platform = "platform" ; DENSITY:resolution = " " ; DENSITY:ancillary_variables = " " ; + DENSITY:average_method = "arithmetic mean" ; DENSITY:coverage_content_type = "physicalMeasurement" ; DENSITY:coordinates = "LATITUDE LONGITUDE profile" ; double LATITUDE_GPS(DEPTH, time) ; @@ -277,6 +279,7 @@ variables: LATITUDE_GPS:platform = "platform" ; LATITUDE_GPS:resolution = " " ; LATITUDE_GPS:ancillary_variables = " " ; + LATITUDE_GPS:average_method = "arithmetic mean" ; LATITUDE_GPS:coverage_content_type = "physicalMeasurement" ; LATITUDE_GPS:coordinates = "LATITUDE LONGITUDE profile" ; double LONGITUDE_GPS(DEPTH, time) ; @@ -292,6 +295,7 @@ variables: LONGITUDE_GPS:platform = "platform" ; LONGITUDE_GPS:resolution = " " ; LONGITUDE_GPS:ancillary_variables = " " ; + LONGITUDE_GPS:average_method = "arithmetic mean" ; LONGITUDE_GPS:coverage_content_type = "physicalMeasurement" ; LONGITUDE_GPS:coordinates = "LATITUDE LONGITUDE profile" ; int mission_number ; @@ -340,6 +344,7 @@ variables: LONGITUDE:platform = "platform" ; LONGITUDE:resolution = " " ; LONGITUDE:ancillary_variables = " " ; + LONGITUDE:average_method = "arithmetic mean" ; double LATITUDE(time) ; LATITUDE:_FillValue = NaN ; LATITUDE:source = "NAV_LATITUDE" ; @@ -360,6 +365,7 @@ variables: LATITUDE:platform = "platform" ; LATITUDE:resolution = " " ; LATITUDE:ancillary_variables = " " ; + LATITUDE:average_method = "arithmetic mean" ; // global attributes: :Conventions = "CF-1.8" ; diff --git a/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.nc b/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.nc index c37cbb99..79f6b329 100644 Binary files a/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.nc and b/tests/expected/example-seaexplorer/L0-gridfiles-og10/dfo-eva035-20190718.nc differ diff --git a/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.cdl b/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.cdl index 7dcabf54..7b25bbf2 100644 --- a/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.cdl +++ b/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.cdl @@ -3,6 +3,16 @@ dimensions: time = 22 ; depth = 1100 ; variables: + double profile_direction(time) ; + profile_direction:_FillValue = NaN ; + profile_direction:long_name = "glider vertical speed direction" ; + profile_direction:units = "1" ; + profile_direction:comment = "-1 = ascending, 0 = inflecting or stalled, 1 = descending" ; + profile_direction:sources = "time pressure" ; + profile_direction:method = "get_profiles_new" ; + profile_direction:average_method = "mode" ; + profile_direction:coverage_content_type = "physicalMeasurement" ; + profile_direction:coordinates = "latitude longitude profile" ; double profile_time_start(time) ; profile_time_start:_FillValue = NaN ; profile_time_start:comment = "Timestamp corresponding to the start of the profile" ; @@ -10,6 +20,7 @@ variables: profile_time_start:observation_type = "calculated" ; profile_time_start:platform = "platform" ; profile_time_start:standard_name = "time" ; + profile_time_start:average_method = "min" ; profile_time_start:coverage_content_type = "physicalMeasurement" ; profile_time_start:coordinates = "latitude longitude profile" ; profile_time_start:units = "seconds since 1970-01-01T00:00:00+00:00" ; @@ -21,6 +32,7 @@ variables: profile_time_end:observation_type = "calculated" ; profile_time_end:platform = "platform" ; profile_time_end:standard_name = "time" ; + profile_time_end:average_method = "max" ; profile_time_end:coverage_content_type = "physicalMeasurement" ; profile_time_end:coordinates = "latitude longitude profile" ; profile_time_end:units = "seconds since 1970-01-01T00:00:00+00:00" ; @@ -37,6 +49,7 @@ variables: heading:platform = "platform" ; heading:resolution = " " ; heading:ancillary_variables = " " ; + heading:average_method = "arithmetic mean" ; heading:coverage_content_type = "physicalMeasurement" ; heading:coordinates = "latitude longitude profile" ; double pitch(depth, time) ; @@ -51,6 +64,7 @@ variables: pitch:platform = "platform" ; pitch:resolution = " " ; pitch:ancillary_variables = " " ; + pitch:average_method = "arithmetic mean" ; pitch:coverage_content_type = "physicalMeasurement" ; pitch:coordinates = "latitude longitude profile" ; double roll(depth, time) ; @@ -65,6 +79,7 @@ variables: roll:platform = "platform" ; roll:resolution = " " ; roll:ancillary_variables = " " ; + roll:average_method = "arithmetic mean" ; roll:coverage_content_type = "physicalMeasurement" ; roll:coordinates = "latitude longitude profile" ; double conductivity(depth, time) ; @@ -83,6 +98,7 @@ variables: conductivity:comment = "raw conductivity" ; conductivity:platform = "platform" ; conductivity:ancillary_variables = " " ; + conductivity:average_method = "arithmetic mean" ; conductivity:coverage_content_type = "physicalMeasurement" ; conductivity:coordinates = "latitude longitude profile" ; double temperature(depth, time) ; @@ -101,6 +117,7 @@ variables: temperature:comment = "raw temperature [degC]" ; temperature:platform = "platform" ; temperature:ancillary_variables = " " ; + temperature:average_method = "arithmetic mean" ; temperature:coverage_content_type = "physicalMeasurement" ; temperature:coordinates = "latitude longitude profile" ; double pressure(depth, time) ; @@ -121,6 +138,7 @@ variables: pressure:comment = "ctd pressure sensor" ; pressure:platform = "platform" ; pressure:ancillary_variables = " " ; + pressure:average_method = "arithmetic mean" ; pressure:coverage_content_type = "physicalMeasurement" ; pressure:coordinates = "latitude longitude profile" ; double chlorophyll(depth, time) ; @@ -135,6 +153,7 @@ variables: chlorophyll:platform = "platform" ; chlorophyll:resolution = " " ; chlorophyll:ancillary_variables = " " ; + chlorophyll:average_method = "arithmetic mean" ; chlorophyll:coverage_content_type = "physicalMeasurement" ; chlorophyll:coordinates = "latitude longitude profile" ; double cdom(depth, time) ; @@ -148,6 +167,7 @@ variables: cdom:platform = "platform" ; cdom:resolution = " " ; cdom:ancillary_variables = " " ; + cdom:average_method = "arithmetic mean" ; cdom:coverage_content_type = "physicalMeasurement" ; cdom:coordinates = "latitude longitude profile" ; double backscatter_700(depth, time) ; @@ -161,6 +181,7 @@ variables: backscatter_700:platform = "platform" ; backscatter_700:resolution = " " ; backscatter_700:ancillary_variables = " " ; + backscatter_700:average_method = "arithmetic mean" ; backscatter_700:coverage_content_type = "physicalMeasurement" ; backscatter_700:coordinates = "latitude longitude profile" ; double oxygen_concentration(depth, time) ; @@ -176,6 +197,7 @@ variables: oxygen_concentration:platform = "platform" ; oxygen_concentration:resolution = " " ; oxygen_concentration:ancillary_variables = " " ; + oxygen_concentration:average_method = "arithmetic mean" ; oxygen_concentration:coverage_content_type = "physicalMeasurement" ; oxygen_concentration:coordinates = "latitude longitude profile" ; double temperature_oxygen(depth, time) ; @@ -191,25 +213,9 @@ variables: temperature_oxygen:platform = "platform" ; temperature_oxygen:resolution = " " ; temperature_oxygen:ancillary_variables = " " ; + temperature_oxygen:average_method = "arithmetic mean" ; temperature_oxygen:coverage_content_type = "physicalMeasurement" ; temperature_oxygen:coordinates = "latitude longitude profile" ; - double distance_over_ground(depth, time) ; - distance_over_ground:_FillValue = NaN ; - distance_over_ground:long_name = "distance over ground flown since mission start" ; - distance_over_ground:method = "get_distance_over_ground" ; - distance_over_ground:units = "km" ; - distance_over_ground:sources = "latitude longitude" ; - distance_over_ground:coverage_content_type = "physicalMeasurement" ; - distance_over_ground:coordinates = "latitude longitude profile" ; - double profile_direction(depth, time) ; - profile_direction:_FillValue = NaN ; - profile_direction:long_name = "glider vertical speed direction" ; - profile_direction:units = "1" ; - profile_direction:comment = "-1 = ascending, 0 = inflecting or stalled, 1 = descending" ; - profile_direction:sources = "time pressure" ; - profile_direction:method = "get_profiles_new" ; - profile_direction:coverage_content_type = "physicalMeasurement" ; - profile_direction:coordinates = "latitude longitude profile" ; double salinity(depth, time) ; salinity:_FillValue = NaN ; salinity:long_name = "water salinity" ; @@ -227,6 +233,7 @@ variables: salinity:resolution = 0.001 ; salinity:platform = "platform" ; salinity:ancillary_variables = " " ; + salinity:average_method = "arithmetic mean" ; salinity:coverage_content_type = "physicalMeasurement" ; salinity:coordinates = "latitude longitude profile" ; double potential_density(depth, time) ; @@ -245,6 +252,7 @@ variables: potential_density:platform = "platform" ; potential_density:ancillary_variables = " " ; potential_density:history = "calculated using raw salinity and temperature" ; + potential_density:average_method = "arithmetic mean" ; potential_density:coverage_content_type = "physicalMeasurement" ; potential_density:coordinates = "latitude longitude profile" ; double density(depth, time) ; @@ -264,6 +272,7 @@ variables: density:resolution = 0.001 ; density:platform = "platform" ; density:ancillary_variables = " " ; + density:average_method = "arithmetic mean" ; density:coverage_content_type = "physicalMeasurement" ; density:coordinates = "latitude longitude profile" ; double potential_temperature(depth, time) ; @@ -282,6 +291,7 @@ variables: potential_temperature:platform = "platform" ; potential_temperature:ancillary_variables = " " ; potential_temperature:history = "calculated using raw salinity and temperature" ; + potential_temperature:average_method = "arithmetic mean" ; potential_temperature:coverage_content_type = "physicalMeasurement" ; potential_temperature:coordinates = "latitude longitude profile" ; double conductivity_QC(depth, time) ; @@ -321,6 +331,7 @@ variables: temperature_adjusted:comment = "equivalent to raw temperature" ; temperature_adjusted:platform = "platform" ; temperature_adjusted:ancillary_variables = " " ; + temperature_adjusted:average_method = "arithmetic mean" ; temperature_adjusted:coverage_content_type = "physicalMeasurement" ; temperature_adjusted:coordinates = "latitude longitude profile" ; double salinity_adjusted(depth, time) ; @@ -341,6 +352,7 @@ variables: salinity_adjusted:platform = "platform" ; salinity_adjusted:ancillary_variables = " " ; salinity_adjusted:history = "adjusted salinity [psu] using thermal lag correction (alpha=0.34, tau=4.6)" ; + salinity_adjusted:average_method = "arithmetic mean" ; salinity_adjusted:coverage_content_type = "physicalMeasurement" ; salinity_adjusted:coordinates = "latitude longitude profile" ; double temperature_adjusted_QC(depth, time) ; @@ -369,6 +381,7 @@ variables: potential_density_adjusted:_FillValue = NaN ; potential_density_adjusted:history = "calculated using salinity_adjusted and temperature_adjusted" ; potential_density_adjusted:sources = "salinity_adjusted temperature_adjusted pressure" ; + potential_density_adjusted:average_method = "arithmetic mean" ; potential_density_adjusted:coverage_content_type = "physicalMeasurement" ; potential_density_adjusted:coordinates = "latitude longitude profile" ; double potential_density_adjusted_QC(depth, time) ; @@ -382,6 +395,7 @@ variables: potential_temperature_adjusted:_FillValue = NaN ; potential_temperature_adjusted:history = "calculated using salinity_adjusted and temperature_adjusted" ; potential_temperature_adjusted:sources = "salinity_adjusted temperature_adjusted pressure" ; + potential_temperature_adjusted:average_method = "arithmetic mean" ; potential_temperature_adjusted:coverage_content_type = "physicalMeasurement" ; potential_temperature_adjusted:coordinates = "latitude longitude profile" ; double potential_temperature_adjusted_QC(depth, time) ; @@ -429,6 +443,7 @@ variables: longitude:precision = " " ; longitude:resolution = " " ; longitude:ancillary_variables = " " ; + longitude:average_method = "arithmetic mean" ; double latitude(time) ; latitude:_FillValue = NaN ; latitude:source = "NAV_LATITUDE" ; @@ -448,6 +463,7 @@ variables: latitude:precision = " " ; latitude:resolution = " " ; latitude:ancillary_variables = " " ; + latitude:average_method = "arithmetic mean" ; // global attributes: :Conventions = "CF-1.8" ; diff --git a/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.nc b/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.nc index 9870e383..3ac8f849 100644 Binary files a/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.nc and b/tests/expected/example-seaexplorer/L0-gridfiles/dfo-eva035-20190718_grid_adjusted.nc differ diff --git a/tests/expected/example-seaexplorer/L0-timeseries-og10/dfo-eva035-20190718.nc b/tests/expected/example-seaexplorer/L0-timeseries-og10/dfo-eva035-20190718.nc index 9961dd04..925d57b3 100644 Binary files a/tests/expected/example-seaexplorer/L0-timeseries-og10/dfo-eva035-20190718.nc and b/tests/expected/example-seaexplorer/L0-timeseries-og10/dfo-eva035-20190718.nc differ diff --git a/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718.nc b/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718.nc index 6ac1cbf0..6f82f893 100644 Binary files a/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718.nc and b/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718.nc differ diff --git a/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718_adjusted.nc b/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718_adjusted.nc index 8f7ccbbc..14cf6f65 100644 Binary files a/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718_adjusted.nc and b/tests/expected/example-seaexplorer/L0-timeseries/dfo-eva035-20190718_adjusted.nc differ diff --git a/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.cdl b/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.cdl index 4b017240..d7828ca2 100644 --- a/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.cdl +++ b/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.cdl @@ -3,12 +3,23 @@ dimensions: time = 55 ; depth = 1100 ; variables: + double profile_direction(time) ; + profile_direction:_FillValue = NaN ; + profile_direction:long_name = "glider vertical speed direction" ; + profile_direction:units = "1" ; + profile_direction:comment = "-1 = ascending, 0 = inflecting or stalled, 1 = descending" ; + profile_direction:sources = "time pressure" ; + profile_direction:method = "get_profiles_new" ; + profile_direction:average_method = "mode" ; + profile_direction:coverage_content_type = "physicalMeasurement" ; + profile_direction:coordinates = "latitude longitude profile" ; double profile_time_start(time) ; profile_time_start:_FillValue = NaN ; profile_time_start:comment = "Timestamp corresponding to the start of the profile" ; profile_time_start:long_name = "Profile Start Time" ; profile_time_start:observation_type = "calculated" ; profile_time_start:platform = "platform" ; + profile_time_start:average_method = "min" ; profile_time_start:coverage_content_type = "physicalMeasurement" ; profile_time_start:coordinates = "latitude longitude profile" ; profile_time_start:units = "seconds since 1970-01-01T00:00:00+00:00" ; @@ -19,6 +30,7 @@ variables: profile_time_end:long_name = "Profile End Time" ; profile_time_end:observation_type = "calculated" ; profile_time_end:platform = "platform" ; + profile_time_end:average_method = "max" ; profile_time_end:coverage_content_type = "physicalMeasurement" ; profile_time_end:coordinates = "latitude longitude profile" ; profile_time_end:units = "seconds since 1970-01-01T00:00:00+00:00" ; @@ -36,6 +48,7 @@ variables: heading:platform = "platform" ; heading:resolution = " " ; heading:ancillary_variables = " " ; + heading:average_method = "arithmetic mean" ; heading:coverage_content_type = "physicalMeasurement" ; heading:coordinates = "latitude longitude profile" ; double pitch(depth, time) ; @@ -51,6 +64,7 @@ variables: pitch:platform = "platform" ; pitch:resolution = " " ; pitch:ancillary_variables = " " ; + pitch:average_method = "arithmetic mean" ; pitch:coverage_content_type = "physicalMeasurement" ; pitch:coordinates = "latitude longitude profile" ; double roll(depth, time) ; @@ -66,6 +80,7 @@ variables: roll:platform = "platform" ; roll:resolution = " " ; roll:ancillary_variables = " " ; + roll:average_method = "arithmetic mean" ; roll:coverage_content_type = "physicalMeasurement" ; roll:coordinates = "latitude longitude profile" ; double waypoint_latitude(depth, time) ; @@ -80,6 +95,7 @@ variables: waypoint_latitude:platform = "platform" ; waypoint_latitude:resolution = " " ; waypoint_latitude:ancillary_variables = " " ; + waypoint_latitude:average_method = "arithmetic mean" ; waypoint_latitude:coverage_content_type = "physicalMeasurement" ; waypoint_latitude:coordinates = "latitude longitude profile" ; double waypoint_longitude(depth, time) ; @@ -94,6 +110,7 @@ variables: waypoint_longitude:platform = "platform" ; waypoint_longitude:resolution = " " ; waypoint_longitude:ancillary_variables = " " ; + waypoint_longitude:average_method = "arithmetic mean" ; waypoint_longitude:coverage_content_type = "physicalMeasurement" ; waypoint_longitude:coordinates = "latitude longitude profile" ; double conductivity(depth, time) ; @@ -112,6 +129,7 @@ variables: conductivity:comment = "raw conductivity" ; conductivity:platform = "platform" ; conductivity:ancillary_variables = " " ; + conductivity:average_method = "arithmetic mean" ; conductivity:coverage_content_type = "physicalMeasurement" ; conductivity:coordinates = "latitude longitude profile" ; double temperature(depth, time) ; @@ -130,6 +148,7 @@ variables: temperature:comment = "raw temperature [degC]" ; temperature:platform = "platform" ; temperature:ancillary_variables = " " ; + temperature:average_method = "arithmetic mean" ; temperature:coverage_content_type = "physicalMeasurement" ; temperature:coordinates = "latitude longitude profile" ; double pressure(depth, time) ; @@ -151,6 +170,7 @@ variables: pressure:comment = "ctd pressure sensor" ; pressure:platform = "platform" ; pressure:ancillary_variables = " " ; + pressure:average_method = "arithmetic mean" ; pressure:coverage_content_type = "physicalMeasurement" ; pressure:coordinates = "latitude longitude profile" ; double chlorophyll(depth, time) ; @@ -165,6 +185,7 @@ variables: chlorophyll:platform = "platform" ; chlorophyll:resolution = " " ; chlorophyll:ancillary_variables = " " ; + chlorophyll:average_method = "arithmetic mean" ; chlorophyll:coverage_content_type = "physicalMeasurement" ; chlorophyll:coordinates = "latitude longitude profile" ; double cdom(depth, time) ; @@ -178,6 +199,7 @@ variables: cdom:platform = "platform" ; cdom:resolution = " " ; cdom:ancillary_variables = " " ; + cdom:average_method = "arithmetic mean" ; cdom:coverage_content_type = "physicalMeasurement" ; cdom:coordinates = "latitude longitude profile" ; double backscatter_700(depth, time) ; @@ -191,6 +213,7 @@ variables: backscatter_700:platform = "platform" ; backscatter_700:resolution = " " ; backscatter_700:ancillary_variables = " " ; + backscatter_700:average_method = "arithmetic mean" ; backscatter_700:coverage_content_type = "physicalMeasurement" ; backscatter_700:coordinates = "latitude longitude profile" ; double oxygen_concentration(depth, time) ; @@ -205,16 +228,9 @@ variables: oxygen_concentration:platform = "platform" ; oxygen_concentration:resolution = " " ; oxygen_concentration:ancillary_variables = " " ; + oxygen_concentration:average_method = "arithmetic mean" ; oxygen_concentration:coverage_content_type = "physicalMeasurement" ; oxygen_concentration:coordinates = "latitude longitude profile" ; - double distance_over_ground(depth, time) ; - distance_over_ground:_FillValue = NaN ; - distance_over_ground:long_name = "distance over ground flown since mission start" ; - distance_over_ground:method = "get_distance_over_ground" ; - distance_over_ground:units = "km" ; - distance_over_ground:sources = "latitude longitude" ; - distance_over_ground:coverage_content_type = "physicalMeasurement" ; - distance_over_ground:coordinates = "latitude longitude profile" ; double salinity(depth, time) ; salinity:_FillValue = NaN ; salinity:long_name = "water salinity" ; @@ -232,6 +248,7 @@ variables: salinity:resolution = 0.001 ; salinity:platform = "platform" ; salinity:ancillary_variables = " " ; + salinity:average_method = "arithmetic mean" ; salinity:coverage_content_type = "physicalMeasurement" ; salinity:coordinates = "latitude longitude profile" ; double potential_density(depth, time) ; @@ -250,6 +267,7 @@ variables: potential_density:platform = "platform" ; potential_density:ancillary_variables = " " ; potential_density:history = "calculated using raw salinity and temperature" ; + potential_density:average_method = "arithmetic mean" ; potential_density:coverage_content_type = "physicalMeasurement" ; potential_density:coordinates = "latitude longitude profile" ; double density(depth, time) ; @@ -269,6 +287,7 @@ variables: density:resolution = 0.001 ; density:platform = "platform" ; density:ancillary_variables = " " ; + density:average_method = "arithmetic mean" ; density:coverage_content_type = "physicalMeasurement" ; density:coordinates = "latitude longitude profile" ; double potential_temperature(depth, time) ; @@ -287,27 +306,22 @@ variables: potential_temperature:platform = "platform" ; potential_temperature:ancillary_variables = " " ; potential_temperature:history = "calculated using raw salinity and temperature" ; + potential_temperature:average_method = "arithmetic mean" ; potential_temperature:coverage_content_type = "physicalMeasurement" ; potential_temperature:coordinates = "latitude longitude profile" ; - double profile_direction(depth, time) ; - profile_direction:_FillValue = NaN ; - profile_direction:long_name = "glider vertical speed direction" ; - profile_direction:units = "1" ; - profile_direction:comment = "-1 = ascending, 0 = inflecting or stalled, 1 = descending" ; - profile_direction:sources = "time pressure" ; - profile_direction:method = "get_profiles_new" ; - profile_direction:coverage_content_type = "physicalMeasurement" ; - profile_direction:coordinates = "latitude longitude profile" ; double conductivity_QC(depth, time) ; conductivity_QC:_FillValue = NaN ; + conductivity_QC:average_method = "arithmetic mean" ; conductivity_QC:coverage_content_type = "physicalMeasurement" ; conductivity_QC:coordinates = "latitude longitude profile" ; double salinity_QC(depth, time) ; salinity_QC:_FillValue = NaN ; + salinity_QC:average_method = "arithmetic mean" ; salinity_QC:coverage_content_type = "physicalMeasurement" ; salinity_QC:coordinates = "latitude longitude profile" ; double temperature_QC(depth, time) ; temperature_QC:_FillValue = NaN ; + temperature_QC:average_method = "arithmetic mean" ; temperature_QC:coverage_content_type = "physicalMeasurement" ; temperature_QC:coordinates = "latitude longitude profile" ; double temperature_adjusted(depth, time) ; @@ -326,6 +340,7 @@ variables: temperature_adjusted:comment = "equivalent to raw temperature" ; temperature_adjusted:platform = "platform" ; temperature_adjusted:ancillary_variables = " " ; + temperature_adjusted:average_method = "arithmetic mean" ; temperature_adjusted:coverage_content_type = "physicalMeasurement" ; temperature_adjusted:coordinates = "latitude longitude profile" ; double salinity_adjusted(depth, time) ; @@ -346,38 +361,46 @@ variables: salinity_adjusted:platform = "platform" ; salinity_adjusted:ancillary_variables = " " ; salinity_adjusted:history = "adjusted salinity [psu] using thermal lag correction (alpha=0.2, tau=2.0)" ; + salinity_adjusted:average_method = "arithmetic mean" ; salinity_adjusted:coverage_content_type = "physicalMeasurement" ; salinity_adjusted:coordinates = "latitude longitude profile" ; double temperature_adjusted_QC(depth, time) ; temperature_adjusted_QC:_FillValue = NaN ; + temperature_adjusted_QC:average_method = "arithmetic mean" ; temperature_adjusted_QC:coverage_content_type = "physicalMeasurement" ; temperature_adjusted_QC:coordinates = "latitude longitude profile" ; double salinity_adjusted_QC(depth, time) ; salinity_adjusted_QC:_FillValue = NaN ; + salinity_adjusted_QC:average_method = "arithmetic mean" ; salinity_adjusted_QC:coverage_content_type = "physicalMeasurement" ; salinity_adjusted_QC:coordinates = "latitude longitude profile" ; double density_QC(depth, time) ; density_QC:_FillValue = NaN ; + density_QC:average_method = "arithmetic mean" ; density_QC:coverage_content_type = "physicalMeasurement" ; density_QC:coordinates = "latitude longitude profile" ; double potential_density_adjusted(depth, time) ; potential_density_adjusted:_FillValue = NaN ; potential_density_adjusted:history = "calculated using salinity_adjusted and temperature_adjusted" ; potential_density_adjusted:sources = "salinity_adjusted temperature_adjusted pressure" ; + potential_density_adjusted:average_method = "arithmetic mean" ; potential_density_adjusted:coverage_content_type = "physicalMeasurement" ; potential_density_adjusted:coordinates = "latitude longitude profile" ; double potential_density_adjusted_QC(depth, time) ; potential_density_adjusted_QC:_FillValue = NaN ; + potential_density_adjusted_QC:average_method = "arithmetic mean" ; potential_density_adjusted_QC:coverage_content_type = "physicalMeasurement" ; potential_density_adjusted_QC:coordinates = "latitude longitude profile" ; double potential_temperature_adjusted(depth, time) ; potential_temperature_adjusted:_FillValue = NaN ; potential_temperature_adjusted:history = "calculated using salinity_adjusted and temperature_adjusted" ; potential_temperature_adjusted:sources = "salinity_adjusted temperature_adjusted pressure" ; + potential_temperature_adjusted:average_method = "arithmetic mean" ; potential_temperature_adjusted:coverage_content_type = "physicalMeasurement" ; potential_temperature_adjusted:coordinates = "latitude longitude profile" ; double potential_temperature_adjusted_QC(depth, time) ; potential_temperature_adjusted_QC:_FillValue = NaN ; + potential_temperature_adjusted_QC:average_method = "arithmetic mean" ; potential_temperature_adjusted_QC:coverage_content_type = "physicalMeasurement" ; potential_temperature_adjusted_QC:coordinates = "latitude longitude profile" ; int mission_number ; @@ -418,6 +441,7 @@ variables: longitude:precision = " " ; longitude:resolution = " " ; longitude:ancillary_variables = " " ; + longitude:average_method = "arithmetic mean" ; double latitude(time) ; latitude:_FillValue = NaN ; latitude:source = "m_lat" ; @@ -437,6 +461,7 @@ variables: latitude:precision = " " ; latitude:resolution = " " ; latitude:ancillary_variables = " " ; + latitude:average_method = "arithmetic mean" ; // global attributes: :Conventions = "CF-1.8" ; diff --git a/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.nc b/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.nc index ad403cdb..c099c1dc 100644 Binary files a/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.nc and b/tests/expected/example-slocum/L0-gridfiles/dfo-rosie713-20190615_grid_adjusted.nc differ diff --git a/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.cdl b/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.cdl index 471176e0..e82aee09 100644 --- a/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.cdl +++ b/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.cdl @@ -279,22 +279,42 @@ variables: DENSITY:coordinates = "DEPTH LATITUDE LONGITUDE TIME" ; double LATITUDE_GPS(N_MEASUREMENTS) ; LATITUDE_GPS:_FillValue = NaN ; - LATITUDE_GPS:long_name = "latitude of each GPS location" ; + LATITUDE_GPS:long_name = "Latitude of each GPS surface fix" ; LATITUDE_GPS:standard_name = "latitude" ; LATITUDE_GPS:units = "degrees_north" ; LATITUDE_GPS:observation_type = "measured" ; + LATITUDE_GPS:vocabulary = "http://vocab.nerc.ac.uk/collection/OG1/current/LAT/" ; + LATITUDE_GPS:comment = " " ; + LATITUDE_GPS:accuracy = " " ; + LATITUDE_GPS:precision = " " ; + LATITUDE_GPS:platform = "platform" ; + LATITUDE_GPS:resolution = " " ; + LATITUDE_GPS:ancillary_variables = " " ; LATITUDE_GPS:coordinates = "DEPTH LATITUDE LONGITUDE TIME" ; double LONGITUDE_GPS(N_MEASUREMENTS) ; LONGITUDE_GPS:_FillValue = NaN ; - LONGITUDE_GPS:long_name = "longitude of each GPS location" ; + LONGITUDE_GPS:long_name = "Longitude of each GPS surface fix" ; LONGITUDE_GPS:standard_name = "longitude" ; LONGITUDE_GPS:units = "degrees_east" ; LONGITUDE_GPS:observation_type = "measured" ; + LONGITUDE_GPS:vocabulary = "http://vocab.nerc.ac.uk/collection/OG1/current/LON/" ; + LONGITUDE_GPS:comment = " " ; + LONGITUDE_GPS:accuracy = " " ; + LONGITUDE_GPS:precision = " " ; + LONGITUDE_GPS:platform = "platform" ; + LONGITUDE_GPS:resolution = " " ; + LONGITUDE_GPS:ancillary_variables = " " ; LONGITUDE_GPS:coordinates = "DEPTH LATITUDE LONGITUDE TIME" ; double TIME_GPS(N_MEASUREMENTS) ; TIME_GPS:_FillValue = -1. ; - TIME_GPS:long_name = "time of each GPS location" ; + TIME_GPS:long_name = "Time of each GPS surface fix" ; TIME_GPS:observation_type = "measured" ; + TIME_GPS:comment = " " ; + TIME_GPS:accuracy = " " ; + TIME_GPS:precision = " " ; + TIME_GPS:platform = "platform" ; + TIME_GPS:resolution = " " ; + TIME_GPS:ancillary_variables = " " ; TIME_GPS:coordinates = "DEPTH LATITUDE LONGITUDE TIME" ; TIME_GPS:units = "seconds since 1970-01-01T00:00:00+00:00" ; TIME_GPS:calendar = "gregorian" ; diff --git a/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.nc b/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.nc index f8cc5708..614e23e6 100644 Binary files a/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.nc and b/tests/expected/example-slocum/L0-timeseries-og10/dfo-rosie713-20190615.nc differ diff --git a/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615.nc b/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615.nc index 9015322f..23cfeb06 100644 Binary files a/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615.nc and b/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615.nc differ diff --git a/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615_adjusted.nc b/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615_adjusted.nc index 0a04087f..19b01fbc 100644 Binary files a/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615_adjusted.nc and b/tests/expected/example-slocum/L0-timeseries/dfo-rosie713-20190615_adjusted.nc differ