netcdf example.L1B_OCI {
dimensions:
	number_of_scans = 9080 ; 
	number_of_pixels = 787 ;
	number_of_bands = 62 ;

// global attributes:
		:title = "ocia level-1b data" ;
		:instrument = "OCI" ;
		:product_name = "POyyyydddhhmmss.L1B_PACE.nc" ;
		:processing_version = "V1.0" ;
		:Conventions = "CF-1.6" ;
		:institution = "NASA Goddard Space Flight Center, Ocean Biology Processing Group" ;
		:license = "http://science.nasa.gov/earth-science/earth-science-data/data-information-policy/" ;
		:naming_authority = "gov.nasa.gsfc.sci.oceancolor" ;
		:keywords_vocabulary = "NASA Global Change Master Directory (GCMD) Science Keywords" ;
		:stdname_vocabulary = "NetCDF Climate and Forecast (CF) Metadata Convention" ;
		:creator_name = "NASA/GSFC" ;
		:creator_email = "data@oceancolor.gsfc.nasa.gov" ;
		:creator_url = "http://oceancolor.gsfc.nasa.gov" ;
		:project = "PACE Project" ;
		:publisher_name = "NASA/GSFC" ;
		:publisher_email = "data@oceancolor.gsfc.nasa.gov" ;
		:publisher_url = "http://oceancolor.gsfc.nasa.gov" ;
		:processing_level = "L1c" ;
		:cdm_data_type = "swath" ;
		:orbit_number = 12345 ;
		:history = "" ;
		:time_coverage_start = "yyyy-mm-ddThh:mm:ss.sssZ" ;
		:time_coverage_end = "yyyy-mm-ddThh:mm:ss.sssZ" ;
		:date_created = "yyyy-mm-ddThh:mm:ss.sssZ" ;
		:startDirection = "Ascending" ;
		:endDirection = "Ascending" ;

group: sensor_band_parameters {
  variables:
  	float wavelength(number_of_bands) ;
  		wavelength:_FillValue = -999.f ;
  		wavelength:long_name = "Band center wavelengths" ;
  		wavelength:valid_min = 350.f ;
  		wavelength:valid_max = 2260.f ;
  		wavelength:units = "nm" ;
  	float bandpass(number_of_bands) ;
  		bandpass:_FillValue = -999.f ;
  		bandpass:long_name = "Bandpasses" ;
  		bandpass:valid_min = 0.f ;
  		bandpass:valid_max = 100.f ;
  		bandpass:units = "nm" ;
} // group sensor_band_parameters

group: scan_line_attributes {
  variables:
  	double scan_start_time(number_of_scans) ;
  		scan_start_time:_FillValue = -999. ;
  		scan_start_time:long_name = "Scan start time (TAI93)" ;
  		scan_start_time:valid_min = 0. ;
  		scan_start_time:valid_max = 2000000000. ;
  		scan_start_time:units = "seconds" ;
  	double scan_end_time(number_of_scans) ; // May not need this
  		scan_end_time:_FillValue = -999. ;
  		scan_end_time:long_name = "Scan end time (TAI93)" ;
  		scan_end_time:valid_min = 0. ;
  		scan_end_time:valid_max = 2000000000. ;
  		scan_end_time:units = "seconds" ;
  	ubyte HAM_side(number_of_scans) ;
  		HAM_side:_FillValue = 255UB ;
  		HAM_side:long_name = "Half-angle mirror side" ;
  		HAM_side:valid_min = 0UB ;
  		HAM_side:valid_max = 1UB ;
  	ubyte scan_quality_flags(number_of_scans) ; // Placeholder for scan quality flags
  		scan_quality_flags:long_name = "Scan quality flags " ;
  		scan_quality_flags:units = "none" ;
  		scan_quality_flags:_FillValue = 255UB ;
  		scan_quality_flags:flag_masks = 1UB, 2UB, 4UB, 8UB, 16UB, 32UB, 64UB ;
  		scan_quality_flags:flag_meanings = "" ;
	float altitude(number_of_scans) ;
  		altitude:_FillValue = -999. ;
  		altitude:long_name = "Altitude of sensor" ;
  		altitude:valid_min = 0. ;
  		altitude:valid_max = 999000. ;
  		altitude:units = "meters" ; 		
} // group scan_line_attributes

group: geolocation_data {
  variables:
  	float latitude(number_of_scans, number_of_pixels) ;
  		latitude:long_name = "Latitudes of pixel locations" ;
  		latitude:units = "degrees_north" ;
  		latitude:_FillValue = -999.f ;
  		latitude:valid_min = -90.f ;
  		latitude:valid_max = 90.f ;
  	float longitude(number_of_scans, number_of_pixels) ;
  		longitude:long_name = "Longitudes of pixel locations" ;
  		longitude:units = "degrees_east" ;
  		longitude:_FillValue = -999.f ;
  		longitude:valid_min = -180.f ;
  		longitude:valid_max = 180.f ;
  	short height(number_of_scans, number_of_pixels) ;
  		height:long_name = "Terrain height at pixel locations" ;
  		height:units = "meters" ;
  		height:_FillValue = -32768s ;
  		height:valid_min = -1000s ;
  		height:valid_max = 10000s ;
  		height:scale_factor = 1.f ;
  		height:add_offset = 0.f ;
  	short range(number_of_scans, number_of_pixels) ;
  		range:long_name = "Satellite-to-pixel range" ;
  		range:units = "meters" ;
  		range:_FillValue = -32768s ;
  		range:valid_min = 0s ;
  		range:valid_max = 32767s ;
  		range:scale_factor = 100.f ;
  		range:add_offset = 650000.f ;
  	short sensor_azimuth(number_of_scans, number_of_pixels) ;
  		sensor_azimuth:long_name = "Sensor azimuth angle at pixel locations" ;
  		sensor_azimuth:units = "degrees" ;
  		sensor_azimuth:_FillValue = -32768s ;
  		sensor_azimuth:valid_min = -18000s ;
  		sensor_azimuth:valid_max = 18000s ;
  		sensor_azimuth:scale_factor = 0.01f ;
  		sensor_azimuth:add_offset = 0.f ;
  	short sensor_zenith(number_of_scans, number_of_pixels) ;
  		sensor_zenith:long_name = "Sensor zenith angle at pixel locations" ;
  		sensor_zenith:units = "degrees" ;
  		sensor_zenith:_FillValue = -32768s ;
  		sensor_zenith:valid_min = 0s ;
  		sensor_zenith:valid_max = 18000s ;
  		sensor_zenith:scale_factor = 0.01f ;
  		sensor_zenith:add_offset = 0.f ;
  	short solar_azimuth(number_of_scans, number_of_pixels) ;
  		solar_azimuth:long_name = "Solar azimuth angle at pixel locations" ;
  		solar_azimuth:units = "degrees" ;
  		solar_azimuth:_FillValue = -32768s ;
  		solar_azimuth:valid_min = -18000s ;
  		solar_azimuth:valid_max = 18000s ;
  		solar_azimuth:scale_factor = 0.01f ;
  		solar_azimuth:add_offset = 0.f ;
  	short solar_zenith(number_of_scans, number_of_pixels) ;
  		solar_zenith:long_name = "Solar zenith angle at pixel locations" ;
  		solar_zenith:units = "degrees" ;
  		solar_zenith:_FillValue = -32768s ;
  		solar_zenith:valid_min = 0s ;
  		solar_zenith:valid_max = 18000s ;
  		solar_zenith:scale_factor = 0.01f ;
  		solar_zenith:add_offset = 0.f ;
} // group geolocation_data

group: observation_data {
  variables:
	float Lt(number_of_bands, number_of_scans, number_of_pixels) ;
		Lt:_FillValue = -32767.f ;
		Lt:long_name = "Top of Atmosphere Band Radiance" ;
		Lt:valid_min = 0.f ;
		Lt:valid_max = 800.f ;
		Lt:units = "W m-2 sr-1" ;
} // group observation_data
}

