Simple Time Series Buffers (met, fsi, sbe37, sbe16, seacat, diagnostics, noaa_met)

These buffers are the simplest to work with because time is the only NetCDF dimension that is ever larger than one. All other dimensions are singletons. As an example, the realtime A0105 met NetCDF file is shown below.


netcdf A0105.met.realtime {
dimensions:
	lon = 1 ;
	lat = 1 ;
	air_temperature_depth = 1 ;
	visibility_depth = 1 ;
	wind_depth = 1 ;
	time = UNLIMITED ; // (2331 currently)
variables:
	double lat(lat) ;
		lat:long_name = "Latitude" ;
		lat:short_name = "lat" ;
		lat:units = "degrees_north" ;
		lat:scale_factor = 1. ;
		lat:add_offset = 0. ;
		lat:_FillValue = -999. ;
		lat:valid_range = -90., 90. ;
		lat:epic_code = 500 ;
		lat:Comment = "Coordinate variable" ;
	double lon(lon) ;
		lon:long_name = "Longitude" ;
		lon:short_name = "lon" ;
		lon:modulo = 360. ;
		lon:units = "degrees_east" ;
		lon:scale_factor = 1. ;
		lon:add_offset = 0. ;
		lon:_FillValue = -999. ;
		lon:valid_range = -180., 180. ;
		lon:epic_code = 502 ;
		lon:Comment = "Coordinate variable" ;
	double air_temperature_depth(air_temperature_depth) ;
		air_temperature_depth:long_name = "Depth" ;
		air_temperature_depth:short_name = "D" ;
		air_temperature_depth:units = "meters" ;
		air_temperature_depth:positive = "down" ;
		air_temperature_depth:scale_factor = 1. ;
		air_temperature_depth:add_offset = 0. ;
		air_temperature_depth:_FillValue = -999. ;
		air_temperature_depth:valid_range = -10000., 100. ;
		air_temperature_depth:epic_code = 3 ;
		air_temperature_depth:Comment = "Coordinate variable" ;
		air_temperature_depth:standard_name = "depth" ;
	double visibility_depth(visibility_depth) ;
		visibility_depth:long_name = "Depth" ;
		visibility_depth:short_name = "D" ;
		visibility_depth:units = "meters" ;
		visibility_depth:positive = "down" ;
		visibility_depth:scale_factor = 1. ;
		visibility_depth:add_offset = 0. ;
		visibility_depth:_FillValue = -999. ;
		visibility_depth:valid_range = -10000., 100. ;
		visibility_depth:epic_code = 3 ;
		visibility_depth:Comment = "Coordinate variable" ;
		visibility_depth:standard_name = "depth" ;
	double wind_depth(wind_depth) ;
		wind_depth:long_name = "Depth" ;
		wind_depth:short_name = "D" ;
		wind_depth:units = "meters" ;
		wind_depth:positive = "down" ;
		wind_depth:scale_factor = 1. ;
		wind_depth:add_offset = 0. ;
		wind_depth:_FillValue = -999. ;
		wind_depth:valid_range = -10000., 100. ;
		wind_depth:Comment = "Coordinate variable" ;
		wind_depth:standard_name = "depth" ;
	double time(time) ;
		time:long_name = "Time" ;
		time:short_name = "time" ;
		time:units = "days since -4713-01-01 00:00:00" ;
		time:scale_factor = 1. ;
		time:add_offset = 0. ;
		time:_FillValue = -999. ;
		time:valid_range = 0., 2460000. ;
		time:epic_code = 624 ;
		time:Comment = "Coordinate variable" ;
		time:standard_name = "time" ;
	float air_temperature(time, air_temperature_depth, lat, lon) ;
		air_temperature:long_name = "Air Temperature" ;
		air_temperature:standard_name = "air_temperature" ;
		air_temperature:grib_code = "11 E 130" ;
		air_temperature:short_name = "AT" ;
		air_temperature:scale_factor = 1. ;
		air_temperature:add_offset = 0. ;
		air_temperature:_FillValue = -999.f ;
		air_temperature:units = "celsius" ;
		air_temperature:valid_range = -40.f, 40.f ;
		air_temperature:is_dead = 2452774.125 ;
		air_temperature:sensor_depth = -3. ;
		air_temperature:epic_code = 20 ;
	byte air_temperature_qc(time, air_temperature_depth, lat, lon) ;
		air_temperature_qc:long_name = "Air Temperature QC" ;
		air_temperature_qc:short_name = "ATQC" ;
		air_temperature_qc:scale_factor = 1. ;
		air_temperature_qc:add_offset = 0. ;
		air_temperature_qc:_FillValue = -128b ;
		air_temperature_qc:units = "none" ;
		air_temperature_qc:valid_range = -127s, 127s ;
		air_temperature_qc:quality_good = 0b ;
		air_temperature_qc:quality_bad = 1b ;
		air_temperature_qc:sensor_depth = -3. ;
		air_temperature_qc:flag_values = 0b, 1b, 2b, 3b ;
		air_temperature_qc:flag_meanings = 0b ;
	float wind_gust(time, wind_depth, lat, lon) ;
		wind_gust:long_name = "Wind Gust" ;
		wind_gust:short_name = "WGST" ;
		wind_gust:scale_factor = 1. ;
		wind_gust:add_offset = 0. ;
		wind_gust:_FillValue = -999.f ;
		wind_gust:units = "m/s" ;
		wind_gust:valid_range = 0.f, 200.f ;
		wind_gust:is_dead = 2452774.125 ;
		wind_gust:sensor_depth = -4. ;
		wind_gust:epic_code = 42 ;
	byte wind_gust_qc(time, wind_depth, lat, lon) ;
		wind_gust_qc:long_name = "Wind Gust QC" ;
		wind_gust_qc:short_name = "WGSTQC" ;
		wind_gust_qc:scale_factor = 1. ;
		wind_gust_qc:add_offset = 0. ;
		wind_gust_qc:_FillValue = -128b ;
		wind_gust_qc:units = "none" ;
		wind_gust_qc:valid_range = -127s, 127s ;
		wind_gust_qc:quality_good = 0b ;
		wind_gust_qc:quality_bad = 1b ;
		wind_gust_qc:sensor_depth = -4. ;
		wind_gust_qc:flag_values = 0b, 1b, 2b, 3b ;
		wind_gust_qc:flag_meanings = 0b ;
	float wind_speed(time, wind_depth, lat, lon) ;
		wind_speed:long_name = "Wind Speed" ;
		wind_speed:standard_name = "wind_speed" ;
		wind_speed:grib_code = "32" ;
		wind_speed:short_name = "WSPD" ;
		wind_speed:scale_factor = 1. ;
		wind_speed:add_offset = 0. ;
		wind_speed:_FillValue = -999.f ;
		wind_speed:units = "m/s" ;
		wind_speed:valid_range = 0.f, 200.f ;
		wind_speed:is_dead = 2452774.125 ;
		wind_speed:sensor_depth = -4. ;
		wind_speed:epic_code = 401 ;
	byte wind_speed_qc(time, wind_depth, lat, lon) ;
		wind_speed_qc:long_name = "Wind Speed QC" ;
		wind_speed_qc:short_name = "WSPDQC" ;
		wind_speed_qc:scale_factor = 1. ;
		wind_speed_qc:add_offset = 0. ;
		wind_speed_qc:_FillValue = -128b ;
		wind_speed_qc:units = "none" ;
		wind_speed_qc:valid_range = -127s, 127s ;
		wind_speed_qc:quality_good = 0b ;
		wind_speed_qc:quality_bad = 1b ;
		wind_speed_qc:sensor_depth = -4. ;
		wind_speed_qc:flag_values = 0b, 1b, 2b, 3b ;
		wind_speed_qc:flag_meanings = 0b ;
	float wind_direction(time, wind_depth, lat, lon) ;
		wind_direction:long_name = "Wind Direction" ;
		wind_direction:standard_name = "wind_from_direction" ;
		wind_direction:grib_code = "31" ;
		wind_direction:short_name = "WDIR" ;
		wind_direction:scale_factor = 1. ;
		wind_direction:add_offset = 0. ;
		wind_direction:_FillValue = -999.f ;
		wind_direction:units = "degrees" ;
		wind_direction:valid_range = 0.f, 360.f ;
		wind_direction:is_dead = 2452774.125 ;
		wind_direction:sensor_depth = -4. ;
		wind_direction:epic_code = 410 ;
	byte wind_direction_qc(time, wind_depth, lat, lon) ;
		wind_direction_qc:long_name = "Wind Direction QC" ;
		wind_direction_qc:short_name = "WDIRQC" ;
		wind_direction_qc:scale_factor = 1. ;
		wind_direction_qc:add_offset = 0. ;
		wind_direction_qc:_FillValue = -128b ;
		wind_direction_qc:units = "none" ;
		wind_direction_qc:valid_range = -127s, 127s ;
		wind_direction_qc:quality_good = 0b ;
		wind_direction_qc:quality_bad = 1b ;
		wind_direction_qc:sensor_depth = -4. ;
		wind_direction_qc:flag_values = 0b, 1b, 2b, 3b ;
		wind_direction_qc:flag_meanings = 0b ;
	float visibility(time, visibility_depth, lat, lon) ;
		visibility:long_name = "Visibility" ;
		visibility:standard_name = "visibility_in_air" ;
		visibility:grib_code = "20" ;
		visibility:short_name = "VIS" ;
		visibility:scale_factor = 1. ;
		visibility:add_offset = 0. ;
		visibility:_FillValue = -999.f ;
		visibility:units = "meters" ;
		visibility:valid_range = 0.f, 1000000.f ;
		visibility:is_dead = 2452774.125 ;
		visibility:calibration_coeffs = -0.5517, 0.6007056, 0., 0. ;
		visibility:sensor_depth = -4. ;
	byte visibility_qc(time, visibility_depth, lat, lon) ;
		visibility_qc:long_name = "Visibility Quality" ;
		visibility_qc:short_name = "VISQ" ;
		visibility_qc:scale_factor = 1. ;
		visibility_qc:add_offset = 0. ;
		visibility_qc:_FillValue = -128b ;
		visibility_qc:units = "none" ;
		visibility_qc:valid_range = -127s, 127s ;
		visibility_qc:quality_good = 0b ;
		visibility_qc:quality_bad = 1b ;
		visibility_qc:sensor_depth = -4. ;
		visibility_qc:flag_values = 0b, 1b, 2b, 3b ;
		visibility_qc:flag_meanings = 0b ;

// global attributes:
		:title = "Gulf of Maine Ocean Observing System: Realtime Buoy Observations" ;
		:institution = "Department of Physical Oceanography, School of Marine Sciences, University of Maine" ;
		:institution_url = "http://gyre.umeoce.maine.edu" ;
		:history = "07-Apr-2003 16:03:12:  Moved air_temperature back to celsius.\n",
    "" ;
		:source = "surface observation" ;
		:references = "http://gyre.umeoce.maine.edu/data/gomoos/doc/buoy_system_doc/buoy_system/book1.html" ;
		:comment = "processed with MATLAB" ;
		:latitude = 42.5182537415815 ;
		:longitude = -70.5660667344554 ;
		:Conventions = "CF-1.0" ;
		:project = "GOMOOS" ;
		:project_url = "http://gomoos.org" ;
		:contact = "nealp@maine.edu,ljm@umeoce.maine.edu,jevans@umeoce.maine.edu" ;
		:time_zone = "UTC" ;
		:julian_day_convention = "Julian date convention starts at 00:00:00 UTC on 1 January 4713 BC" ;
		:buffer_type = "met" ;
		:instrument_number = 0 ;
		:processing = "realtime" ;
		:water_depth = 110. ;
		:mooring_site_id = "A0105" ;
		:mooring_site_desc = "Massachusetts Bay" ;
		:breakout_id = 1 ;
		:delta_t = 60 ;
		:magnetic_variation = -16. ;
		:last_mysql_update_index = -1 ;
		:starting_julian_day_number = 2452678.375 ;
		:starting_julian_day_string = "2003-2-7 09:00:00" ;
		:ending_julian_day_number = 2452775.45833333 ;
		:ending_julian_day_string = "2003-5-15 11:00:00" ;
data:

 lat = 42.5182537415815 ;

 lon = -70.5660667344554 ;

 air_temperature_depth = -3 ;

 visibility_depth = -3 ;

 wind_depth = -4 ;
}