netcdf nsamplpolC1.b1.20100707.000000 { dimensions: time = UNLIMITED ; // (22076 currently) range_bins = 3998 ; variables: int base_time ; base_time:string = "7-Jul-2010,0:00:00 GMT" ; base_time:long_name = "Base time in Epoch" ; base_time:units = "seconds since 1970-1-1 0:00:00 0:00" ; double time_offset(time) ; time_offset:long_name = "Time offset from base_time" ; time_offset:units = "seconds since 2010-07-07 00:00:00 0:00" ; double time(time) ; time:long_name = "Time offset from midnight" ; time:units = "seconds since 2010-07-07 00:00:00 0:00" ; int qc_time(time) ; qc_time:long_name = "Results of quality checks on sample time" ; qc_time:units = "unitless" ; qc_time:description = "The qc_time values are calculated by comparing each sample\n", "time with the previous time (i.e. delta_t = t[n] - t[n-1]).\n", "If the \'qc_check_prior\' flag is set the first sample time\n", "from a new raw file will be compared against the time just\n", "previous to it in the stored data. If the \'qc_check_prior\'\n", "flag is not set the qc_time value for the first sample time\n", "will be set to 0\n", "\n", "The qc_time bit values are as follows:\n", "=========================================================\n", "0x0 = delta time is within the specified range\n", "0x1 = delta time is equal to 0, duplicate sample times\n", "0x2 = delta time is less than the \'delta_t_lower_limit\'\n", "0x4 = delta time is greater than the \'delta_t_upper_limit\'\n", "\n", "" ; qc_time:prior_sample_flag = 1 ; qc_time:delta_t_lower_limit = 2 ; qc_time:delta_t_upper_limit = 4 ; int num_channels ; num_channels:long_name = "Number of detector channels" ; num_channels:units = "count" ; num_channels:missing_value = -9999 ; int num_bins ; num_bins:long_name = "Number of bins stored in data block" ; num_bins:units = "count" ; num_bins:missing_value = -9999 ; float range_bins(range_bins) ; range_bins:long_name = "Distance from leading edge of first range bin to the center of each bin." ; range_bins:units = "km" ; range_bins:missing_value = -9999.f ; range_bins:comment1 = "This value does not account for the range offset due to mistiming of the laser firing and the multichannel scalar trigger" ; range_bins:resolution = ".001" ; range_bins:accuracy = "2% scale factor +/- 90 meters scale offset" ; float range(range_bins) ; range:long_name = "Distance from transceiver to center of corresponding range_bin" ; range:units = "km" ; range:missing_value = -9999.f ; float height(range_bins) ; height:long_name = "Height above ground of the center of corresponding range_bin" ; height:units = "km" ; height:missing_value = -9999.f ; float shots_per_avg ; shots_per_avg:long_name = "Number of laser pulses summed during averaging interval" ; shots_per_avg:units = "count" ; shots_per_avg:missing_value = -9999.f ; shots_per_avg:accuracy = "exact" ; shots_per_avg:precision = "exact" ; float pulse_rep ; pulse_rep:long_name = "Repetition rate, or Trigger Frequency of the laser" ; pulse_rep:units = "Hz" ; pulse_rep:missing_value = -9999.f ; pulse_rep:precision = "0.2%" ; pulse_rep:accuracy = "2%" ; pulse_rep:comment1 = "Manually entered input after selection with laser control handset." ; float max_altitude ; max_altitude:long_name = "Maximum altitude retrieved from multichannel scalar card." ; max_altitude:units = "km" ; max_altitude:missing_value = -9999.f ; max_altitude:comment1 = "generally 60 km." ; float range_offset(time) ; range_offset:long_name = "Distance between initial range_bin and the laser flash" ; range_offset:units = "km" ; range_offset:valid_max = 1.f ; range_offset:missing_value = -9999.f ; range_offset:comment = "This value is determined by subtracting the background from each profile and defining the first range bin where there is substantial signal as being the first range gate, that is, zero range." ; int qc_range_offset(time) ; qc_range_offset:long_name = "Quality check results on field: Distance between initial range_bin and the laser flash" ; qc_range_offset:units = "unitless" ; float energy_monitor(time) ; energy_monitor:long_name = "Energy output per pulse of transmitted laser beam at 532 nm (Doubled Nd-YLF)" ; energy_monitor:units = "uJ" ; energy_monitor:valid_min = 1.f ; energy_monitor:missing_value = -9999.f ; energy_monitor:precision = "5%" ; energy_monitor:comment1 = "For signal normalization only, as the monitor is not absolutely calibrated" ; int qc_energy_monitor(time) ; qc_energy_monitor:long_name = "Quality check results on field: Energy output per pulse of transmitted laser beam at 532 nm (Doubled Nd-YLF)" ; qc_energy_monitor:units = "unitless" ; float detector_temp(time) ; detector_temp:long_name = "Detector temperature" ; detector_temp:units = "C" ; detector_temp:valid_min = 20.f ; detector_temp:valid_max = 40.f ; detector_temp:missing_value = -9999.f ; detector_temp:comment1 = "Determined from thermistor mounted against detector module within transceiver chassis" ; detector_temp:precision = "1%" ; detector_temp:accuracy = "2 degrees C" ; detector_temp:digital_sampling = "8-bit" ; int qc_detector_temp(time) ; qc_detector_temp:long_name = "Quality check results on field: Detector temperature" ; qc_detector_temp:units = "unitless" ; float scope_temp(time) ; scope_temp:long_name = "Telescope temperature" ; scope_temp:units = "C" ; scope_temp:valid_min = 20.f ; scope_temp:valid_max = 40.f ; scope_temp:missing_value = -9999.f ; int qc_scope_temp(time) ; qc_scope_temp:long_name = "Quality check results on field: Telescope temperature" ; qc_scope_temp:units = "unitless" ; float laser_temp(time) ; laser_temp:long_name = "Laser temperature" ; laser_temp:units = "C" ; laser_temp:valid_min = 20.f ; laser_temp:valid_max = 40.f ; laser_temp:missing_value = -9999.f ; laser_temp:comment1 = "Determined from thermistor mounted against Nd-YLF laser head within transceiver chassis." ; laser_temp:precision = "3%" ; laser_temp:accuracy = "2 degrees" ; laser_temp:digital_sampling = "8-bit" ; int qc_laser_temp(time) ; qc_laser_temp:long_name = "Quality check results on field: Laser temperature" ; qc_laser_temp:units = "unitless" ; float preliminary_cbh(time) ; preliminary_cbh:long_name = "Preliminary cloud base height above ground level" ; preliminary_cbh:units = "km" ; preliminary_cbh:valid_min = 0.2f ; preliminary_cbh:valid_max = 20.f ; preliminary_cbh:missing_value = -9999.f ; preliminary_cbh:comment1 = "Lacks sensitivity for very near (< 1 km) and very high (> 10 km) thin clouds" ; preliminary_cbh:precision = "Cloud base is within +/- 1/2 range_bin" ; preliminary_cbh:accuracy = "2%" ; int qc_preliminary_cbh(time) ; qc_preliminary_cbh:long_name = "Quality check results on field: Preliminary cloud base height above ground level" ; qc_preliminary_cbh:units = "unitless" ; float background_signal(time) ; background_signal:long_name = "Background signal" ; background_signal:units = "Counts/microsecond" ; background_signal:missing_value = -9999.f ; background_signal:resolution = "1.f" ; float background_signal_std(time) ; background_signal_std:long_name = "Background signal standard deviation" ; background_signal_std:units = "Counts/microsecond" ; background_signal_std:missing_value = -9999.f ; background_signal_std:resolution = "1.f" ; float range_bin_time(time) ; range_bin_time:long_name = "Time in seconds for each range bin of multichannel scalar card." ; range_bin_time:units = "seconds" ; range_bin_time:missing_value = -9999.f ; range_bin_time:precision = " 1 nanosecond" ; range_bin_time:accuracy = " 2%" ; range_bin_time:comment = "User selected (through range_bin) as 100, 200, or 500ns" ; float range_bin_width(time) ; range_bin_width:long_name = "Width of range-bins calculated from range_bin_time" ; range_bin_width:units = "km" ; range_bin_width:missing_value = -9999.f ; range_bin_width:precision = "< 1 meter" ; range_bin_width:accuracy = "2%" ; range_bin_width:comment = "User selected as 15, 30, or 75 meters" ; int dead_time_corrected(time) ; dead_time_corrected:long_name = "Dead time correction flag" ; dead_time_corrected:units = "unitless" ; dead_time_corrected:missing_value = -9999 ; dead_time_corrected:value0 = "0=default" ; dead_time_corrected:value1 = "1=corrected" ; int polarization_control(time) ; polarization_control:long_name = "Polarization control enabled flag" ; polarization_control:units = "unitless" ; polarization_control:missing_value = -9999 ; polarization_control:value0 = "0=disabled" ; polarization_control:value1 = "1=enabled" ; float polarization_control_voltage(time) ; polarization_control_voltage:long_name = "Polarization control voltage setting" ; polarization_control_voltage:units = "volts" ; polarization_control_voltage:missing_value = -9999.f ; float signal_return(time, range_bins) ; signal_return:long_name = "Attenuated backscatter" ; signal_return:units = "Counts/microsecond" ; signal_return:missing_value = -9999.f ; signal_return:description = "This field literally contains the counts detected by the detector for each range bin. No corrections of any kind have been applied to this field. In order to make proper use of this data, one should correct for detector non-linearity, subtract background counts, apply a range-squared multiplication, and optimally correct for optical overlap and collimation artifacts." ; int qc_signal_return(time) ; qc_signal_return:long_name = "flag indicating good or bad signal_return data" ; qc_signal_return:units = "unitless" ; qc_signal_return:missing_value = -9999 ; qc_signal_return:comment1 = "The MPLPOL instrument software sets a flag byte to 0 if the signal_return is good, 1 if the signal_return is bad." ; qc_signal_return:comment2 = "The flag byte to 1 if the instrument detects an A/D start (timing corruption) error." ; qc_signal_return:comment3 = "Because min/max/delta QC reserves values 0x01 through 0x15, this value is set to 16 by mplpol_ingest if the flag byte is 1." ; qc_signal_return:comment4 = "No other QC is performed on the signal_return field. A value of 16 here applies to the entire signal_return profile for the corresponding time sample. " ; float lat ; lat:long_name = "north latitude" ; lat:units = "degrees" ; lat:valid_min = -90.f ; lat:valid_max = 90.f ; float lon ; lon:long_name = "east longitude" ; lon:units = "degrees" ; lon:valid_min = -180.f ; lon:valid_max = 180.f ; float alt ; alt:long_name = "altitude" ; alt:units = "meters above Mean Sea Level" ; // global attributes: :ingest_version = "ingest-mplpol-9.3-1" ; :libingest_version = "ds-dsutil-ingest_lib-1.7-0" ; :libdslibc_version = "ds-dslib-c_lib-1.2-0" ; :libdsdb_version = "database-dsdb-c_lib-1.2-0" ; :ingest_software = " mplpol_ingest.c,v 1.13 2007/12/19 17:19:12 koontz ingest-mplpol-9.3-1 $" ; :proc_level = "b1" ; :input_source = "201007070000_0.mpl" ; :site_id = "nsa" ; :facility_id = "C1: Barrow, Alaska" ; :comment = "The time assigned to each data point indicates the end of any period of averaging of the geophysical data." ; :resolution_description = "The resolution field attributes refer to the number of significant\n", "digits relative to the decimal point that should be used in\n", "calculations. Using fewer digits might result in greater uncertainty;\n", "using a larger number of digits should have no effect and thus is\n", "unnecessary. However, analyses based on differences in values with\n", "a larger number of significant digits than indicated could lead to\n", "erroneous results or misleading scientific conclusions.\n", "\n", "resolution for lat= 0.001\n", "resolution for lon = 0.001\n", "resolution for alt = 1" ; :instrument_operator = "Autonomous operation" ; :input_file_format = "MPL-4B Series File Format" ; :Instrument_Mentor = "Rich Coulter, rlcoulter@anl.gov, 630-252-5833" ; :time_offset_description = "The time_offset is reference to the beginning of the averaging interval." ; :accuracy_description = "The accuracy field attribute refers to the relative or absolute systemic error which may contribute to inaccuracies of the mean value." ; :precision_description = "The precision field attribute refers to the relative or absolute error of a statistical origin which reduces the certainty to which a value is known but does not contribute to inaccuracies of the mean value." ; :serial_number = "105" ; :averaging_int = "3.000000 seconds" ; :sample_int = "400.000000 microseconds" ; :qc_method = "Standard Mentor QC" ; :Mentor_QC_Field_Information = "For each qc_ interpret the values as follows:\n", "\n", "Basic mentor QC checks (bit values):\n", "==========================================\n", "0x0 = value is within the specified range\n", "0x1 = value is equal to \'missing_value\'\n", "0x2 = value is less than the \'valid_min\'\n", "0x4 = value is greater than the \'valid_max\'\n", "0x8 = value failed the \'valid_delta\' check\n", "\n", "If the value is a \'missing_value\' no min, max, or delta checks are performed.\n", "\n", "The delta checks are done by comparing each data value to the one just\n", "prior to it in time. If a previous data value does not exist or is a\n", "\'missing_value\' the delta check will not be performed.\n", "\n", "Note that the delta computation for multi-dimensioned data compares the\n", "absolute value between points in the same spatial location to the previous\n", "point in time.\n", "\n", "If the associated non-QC field does not contain any mentor-specified minimum,\n", "maximum, or delta information a qc_field is not generated.\n", "" ; :zeb_platform = "nsamplpolC1.b1" ; :history = "created by user dsmgr on machine ruby at 7-Jul-2010,1:43:15, using $State: ds-zebra-zeblib-4.16-0 $" ; }