netcdf epcaosaeth2spotM1.b1.20240214.000000 { dimensions: time = UNLIMITED ; // (1320 currently) wavelength = 7 ; bound = 2 ; variables: int base_time ; base_time:string = "2024-02-14 00:00:00 0:00" ; base_time:long_name = "Base time in Epoch" ; base_time:units = "seconds since 1970-1-1 0:00:00 0:00" ; base_time:ancillary_variables = "time_offset" ; double time_offset(time) ; time_offset:long_name = "Time offset from base_time" ; time_offset:units = "seconds since 2024-02-14 00:00:00 0:00" ; time_offset:ancillary_variables = "base_time" ; double time(time) ; time:long_name = "Time offset from midnight" ; time:units = "seconds since 2024-02-14 00:00:00 0:00" ; time:bounds = "time_bounds" ; time:standard_name = "time" ; double time_bounds(time, bound) ; time_bounds:long_name = "Time cell bounds" ; time_bounds:bound_offsets = 0., 60. ; float wavelength(wavelength) ; wavelength:long_name = "Wavelength of aethelometer optical filter" ; wavelength:units = "nm" ; float sample_intensity_spot_1(time, wavelength) ; sample_intensity_spot_1:long_name = "Sample intensity for spot 1" ; sample_intensity_spot_1:units = "count" ; sample_intensity_spot_1:missing_value = -9999.f ; float sample_intensity_spot_2(time, wavelength) ; sample_intensity_spot_2:long_name = "Sample intensity for spot 2" ; sample_intensity_spot_2:units = "count" ; sample_intensity_spot_2:missing_value = -9999.f ; float reference_intensity(time, wavelength) ; reference_intensity:long_name = "Reference beam intensity" ; reference_intensity:units = "count" ; reference_intensity:missing_value = -9999.f ; float equivalent_black_carbon_spot_1_uncorrected(time, wavelength) ; equivalent_black_carbon_spot_1_uncorrected:long_name = "Equivalent black carbon concentration for spot 1 uncorrected for loading factors" ; equivalent_black_carbon_spot_1_uncorrected:units = "ng/m^3" ; equivalent_black_carbon_spot_1_uncorrected:missing_value = -999999.f ; float equivalent_black_carbon_spot_2_uncorrected(time, wavelength) ; equivalent_black_carbon_spot_2_uncorrected:long_name = "Equivalent black carbon concentration for spot 2 uncorrected for loading factors" ; equivalent_black_carbon_spot_2_uncorrected:units = "ng/m^3" ; equivalent_black_carbon_spot_2_uncorrected:missing_value = -999999.f ; float loading_correction_factor(time, wavelength) ; loading_correction_factor:long_name = "Loading correction factor" ; loading_correction_factor:units = "1" ; loading_correction_factor:missing_value = -9999.f ; float equivalent_black_carbon(time, wavelength) ; equivalent_black_carbon:long_name = "Equivalent black carbon concentration corrected for loading factors" ; equivalent_black_carbon:units = "ng/m^3" ; equivalent_black_carbon:missing_value = -999999.f ; equivalent_black_carbon:standard_name = "mass_concentration_of_absorption_equivalent_black_carbon_of_dry_aerosol_particles_in_air" ; equivalent_black_carbon:ancillary_variables = "qc_equivalent_black_carbon" ; int qc_equivalent_black_carbon(time, wavelength) ; qc_equivalent_black_carbon:long_name = "Quality check results on variable: Equivalent black carbon concentration corrected for loading factors" ; qc_equivalent_black_carbon:units = "1" ; qc_equivalent_black_carbon:standard_name = "quality_flag" ; qc_equivalent_black_carbon:description = "This variable contains bit-packed integer values, where each bit represents a QC test on the data. Non-zero bits indicate the QC condition given in the description for those bits; a value of 0 (no bits set) indicates the data has not failed any QC tests." ; qc_equivalent_black_carbon:sample_intensity_spot_1_warn_min = 170000.f ; qc_equivalent_black_carbon:sample_intensity_spot_1_warn_max = 940000.f ; qc_equivalent_black_carbon:sample_intensity_spot_2_warn_min = 420000.f ; qc_equivalent_black_carbon:sample_intensity_spot_2_warn_max = 960000.f ; qc_equivalent_black_carbon:reference_intensity_warn_min = 750000.f ; qc_equivalent_black_carbon:reference_intensity_warn_max = 980000.f ; qc_equivalent_black_carbon:equivalent_black_carbon_spot_1_warn_min = -3200.f, -2300.f, -2400.f, -2600.f, -3000.f, -3900.f, -4100.f ; qc_equivalent_black_carbon:equivalent_black_carbon_spot_1_warn_max = 10000.f, 11000.f, 12000.f, 12000.f, 12000.f, 14000.f, 14000.f ; qc_equivalent_black_carbon:equivalent_black_carbon_spot_2_warn_min = -5400.f, -3400.f, -3800.f, -4200.f, -4800.f, -8000.f, -8700.f ; qc_equivalent_black_carbon:equivalent_black_carbon_spot_2_warn_max = 13000.f, 13000.f, 13000.f, 13000.f, 14000.f, 16000.f, 16000.f ; qc_equivalent_black_carbon:loading_correction_factor_warn_min = -0.025f ; qc_equivalent_black_carbon:loading_correction_factor_warn_max = 0.025f ; qc_equivalent_black_carbon:bc_brc_warn_min = -1700.f ; qc_equivalent_black_carbon:bc_brc_warn_max = 3400.f ; qc_equivalent_black_carbon:sample_flow_rate_spot_1_warn_min = 2.7f ; qc_equivalent_black_carbon:sample_flow_rate_spot_1_warn_max = 3.1f ; qc_equivalent_black_carbon:sample_flow_rate_spot_2_warn_min = 0.8f ; qc_equivalent_black_carbon:sample_flow_rate_spot_2_warn_max = 1.6f ; qc_equivalent_black_carbon:sample_flow_rate_combined_warn_min = 2.f ; qc_equivalent_black_carbon:sample_flow_rate_combined_warn_max = 5.3f ; qc_equivalent_black_carbon:assumed_pressure_warn_min = 101315.f ; qc_equivalent_black_carbon:assumed_pressure_warn_max = 101335.f ; qc_equivalent_black_carbon:assumed_temperature_warn_min = 23.f ; qc_equivalent_black_carbon:assumed_temperature_warn_max = 27.f ; qc_equivalent_black_carbon:tape_advances_warn_min = 0.f ; qc_equivalent_black_carbon:tape_advances_warn_max = 1000.f ; qc_equivalent_black_carbon:controller_temperature_warn_min = 22.f ; qc_equivalent_black_carbon:controller_temperature_warn_max = 36.f ; qc_equivalent_black_carbon:LED_temperature_warn_min = 20.f ; qc_equivalent_black_carbon:LED_temperature_warn_max = 50.f ; qc_equivalent_black_carbon:power_supply_temperature_warn_min = 10.f ; qc_equivalent_black_carbon:power_supply_temperature_warn_max = 90.f ; qc_equivalent_black_carbon:flag_method = "bit" ; qc_equivalent_black_carbon:bit_1_description = "Value is equal to missing_value." ; qc_equivalent_black_carbon:bit_1_assessment = "Bad" ; qc_equivalent_black_carbon:bit_2_description = "(instrument_status & 0x5C77) OR (instrument_status & 0x180 == 0x180)" ; qc_equivalent_black_carbon:bit_2_assessment = "Bad" ; qc_equivalent_black_carbon:bit_3_description = "controller_status != 0" ; qc_equivalent_black_carbon:bit_3_assessment = "Bad" ; qc_equivalent_black_carbon:bit_4_description = "detector_status != 10" ; qc_equivalent_black_carbon:bit_4_assessment = "Bad" ; qc_equivalent_black_carbon:bit_5_description = "LED_status != 10" ; qc_equivalent_black_carbon:bit_5_assessment = "Bad" ; qc_equivalent_black_carbon:bit_6_description = "valve_status != 0" ; qc_equivalent_black_carbon:bit_6_assessment = "Bad" ; qc_equivalent_black_carbon:bit_7_description = "sample_intensity_spot_1 < sample_intensity_spot_1_warn_min OR > sample_intensity_spot_1_warn_max" ; qc_equivalent_black_carbon:bit_7_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_8_description = "sample_intensity_spot_2 < sample_intensity_spot_2_warn_min OR > sample_intensity_spot_2_warn_max" ; qc_equivalent_black_carbon:bit_8_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_9_description = "reference_intensity < reference_intensity_warn_min OR > reference_intensity_warn_max" ; qc_equivalent_black_carbon:bit_9_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_10_description = "equivalent_black_carbon_spot_1_uncorrected < equivalent_black_carbon_spot_1_warn_min OR > equivalent_black_carbon_spot_1_warn_max" ; qc_equivalent_black_carbon:bit_10_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_11_description = "equivalent_black_carbon_spot_2_uncorrected < equivalent_black_carbon_spot_2_warn_min OR > equivalent_black_carbon_spot_2_warn_max" ; qc_equivalent_black_carbon:bit_11_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_12_description = "loading_correction_factor < loading_correction_factor_warn_min OR > loading_correction_factor_warn_max" ; qc_equivalent_black_carbon:bit_12_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_13_description = "bc_brc < bc_brc_warn_min OR > bc_brc_warn_max" ; qc_equivalent_black_carbon:bit_13_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_14_description = "sample_flow_rate_spot_1 < sample_flow_rate_spot_1_warn_min OR > sample_flow_rate_spot_1_warn_max" ; qc_equivalent_black_carbon:bit_14_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_15_description = "sample_flow_rate_spot_2 < sample_flow_rate_spot_2_warn_min OR > sample_flow_rate_spot_2_warn_max" ; qc_equivalent_black_carbon:bit_15_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_16_description = "sample_flow_rate_combined < sample_flow_rate_combined_warn_min OR > sample_flow_rate_combined_warn_max" ; qc_equivalent_black_carbon:bit_16_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_17_description = "assumed_pressure < assumed_pressure_warn_min OR > assumed_pressure_warn_max" ; qc_equivalent_black_carbon:bit_17_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_18_description = "assumed_temperature < assumed_temperature_warn_min OR > assumed_temperature_warn_max" ; qc_equivalent_black_carbon:bit_18_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_19_description = "tape_advances < tape_advances_warn_min OR > tape_advances_warn_max" ; qc_equivalent_black_carbon:bit_19_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_20_description = "controller_temperature < controller_temperature_warn_min OR > controller_temperature_warn_max" ; qc_equivalent_black_carbon:bit_20_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_21_description = "LED_temperature < LED_temperature_warn_min OR > LED_temperature_warn_max" ; qc_equivalent_black_carbon:bit_21_assessment = "Indeterminate" ; qc_equivalent_black_carbon:bit_22_description = "power_supply_temperature < power_supply_temperature_warn_min OR > power_supply_temperature_warn_max" ; qc_equivalent_black_carbon:bit_22_assessment = "Indeterminate" ; float bc_brc(time) ; bc_brc:long_name = "Percentage of black carbon and brown carbon" ; bc_brc:units = "1" ; bc_brc:missing_value = -999999.f ; float sample_flow_rate_spot_1(time) ; sample_flow_rate_spot_1:long_name = "Instrument flow rate for spot 1" ; sample_flow_rate_spot_1:units = "L/min" ; sample_flow_rate_spot_1:flow_type = "mass flow" ; sample_flow_rate_spot_1:reference = "volume of mass flow corresponding to 20 deg C, 1013.25 Pa" ; sample_flow_rate_spot_1:missing_value = -9999.f ; float sample_flow_rate_spot_2(time) ; sample_flow_rate_spot_2:long_name = "Instrument flow rate for spot 2" ; sample_flow_rate_spot_2:units = "L/min" ; sample_flow_rate_spot_2:flow_type = "mass flow" ; sample_flow_rate_spot_2:reference = "volume of mass flow corresponding to 20 deg C, 1013.25 Pa" ; sample_flow_rate_spot_2:missing_value = -9999.f ; float sample_flow_rate_combined(time) ; sample_flow_rate_combined:long_name = "Instrument flow rate for both spots combined" ; sample_flow_rate_combined:units = "L/min" ; sample_flow_rate_combined:flow_type = "mass flow" ; sample_flow_rate_combined:reference = "volume of mass flow corresponding to 20 deg C, 1013.25 Pa" ; sample_flow_rate_combined:missing_value = -9999.f ; float assumed_pressure(time) ; assumed_pressure:long_name = "Pressure used to infer volumetric flow from measured mass flow" ; assumed_pressure:units = "Pa" ; assumed_pressure:missing_value = -9999.f ; float assumed_temperature(time) ; assumed_temperature:long_name = "Temperature used to infer volumetric flow from measured mass flow" ; assumed_temperature:units = "degC" ; assumed_temperature:missing_value = -9999.f ; int tape_advances(time) ; tape_advances:long_name = "Number of tape advances since start" ; tape_advances:units = "1" ; tape_advances:missing_value = -9999 ; float controller_temperature(time) ; controller_temperature:long_name = "Controller temperature" ; controller_temperature:units = "degC" ; controller_temperature:missing_value = -9999.f ; float LED_temperature(time) ; LED_temperature:long_name = "LED temperature" ; LED_temperature:units = "degC" ; LED_temperature:missing_value = -9999.f ; float power_supply_temperature(time) ; power_supply_temperature:long_name = "Power supply temperature" ; power_supply_temperature:units = "degC" ; power_supply_temperature:missing_value = -9999.f ; int instrument_status(time) ; instrument_status:long_name = "Instrument status flags" ; instrument_status:units = "1" ; instrument_status:missing_value = -9999 ; instrument_status:flag_masks = 3, 3, 3, 12, 12, 12, 48, 48, 48, 64, 384, 384, 384, 512, 7168, 7168, 7168, 7168, 7168, 8192, 16384, 32768, 65536 ; instrument_status:flag_values = 1, 2, 3, 4, 8, 12, 16, 32, 48, 64, 128, 256, 384, 512, 1024, 2048, 3072, 4096, 6144, 8192, 16384, 32768, 65536 ; instrument_status:flag_meanings = "advancing_tape first_measurement measurement_stopped flow_not_calibrated check_flow_status flow_not_calibrated_and_check_flow_status calibrating_led calibration_error_some calibration_error_all optical_chamber_error filter_tape_low filter_tape_critical filter_tape_error running_setup_file running_stability_test running_clean_air_test changing_tape running_optical_test running_leakage_test ext_dev_connection_error clean_air_test_error cf_card_io_error db_size_warning" ; instrument_status:comment = "Most bit flags here use multiple bits, unlike the usual, pure bit flags. At each index in flag_masks and flag_values: first, the flag_mask is applied to select out the value at the range of bits that flag_mask describes; then, flag_value is compared to the masked value to see if it is exactly equal, to determine if that flag has been set. e.g. if flag_masks[i] == 12, the value of bits 3 and 4 is masked out for comparison with flag_values[i]; if flag_values[i] == 4, and bits 3 and 4 == 8 or 12 (binary 01 or 11 for those bits, respectively), the comparison is false; if bits 3 and 4 == 4 (binary 10), the comparison is true." ; instrument_status:mask_3_value_1_description = "tape advance (tape advance, fast calibration, or warm-up mode)" ; instrument_status:mask_3_value_2_description = "first measurement, obtaining ATN0 value" ; instrument_status:mask_3_value_3_description = "measurement stopped" ; instrument_status:mask_12_value_4_description = "flow low/high: by more than 0.5 LPM OR F1 < 0 OR F2/F1 < 0.2 OR F2/F1 > 0.75" ; instrument_status:mask_12_value_8_description = "flow status history requires check" ; instrument_status:mask_12_value_12_description = "flow is low/high, and history requires check" ; instrument_status:mask_48_value_16_description = "calibrating LED" ; instrument_status:mask_48_value_32_description = "LED calibration error (but at least one channel OK)" ; instrument_status:mask_48_value_48_description = "LED error (all channels calibration error, COM error)" ; instrument_status:mask_64_value_64_description = "optical chamber error" ; instrument_status:mask_384_value_128_description = "filter tape warning (< 30 spots left)" ; instrument_status:mask_384_value_256_description = "filter tape last warning (< 5 spots left)" ; instrument_status:mask_384_value_384_description = "tape error (tape not moving, end of tape)" ; instrument_status:mask_512_value_512_description = "setup file warning" ; instrument_status:mask_7168_value_1024_description = "running stability test" ; instrument_status:mask_7168_value_2048_description = "running clean air test" ; instrument_status:mask_7168_value_3072_description = "change tape procedure in progress" ; instrument_status:mask_7168_value_4096_description = "running optical test" ; instrument_status:mask_7168_value_6144_description = "running leakage test" ; instrument_status:mask_8192_value_8192_description = "external device connection error" ; instrument_status:mask_16384_value_16384_description = "clean air test failure, service instrument" ; instrument_status:mask_32768_value_32768_description = "problem reading/writing to CF card" ; instrument_status:mask_65536_value_65536_description = "database > 2^106 lines" ; short controller_status(time) ; controller_status:long_name = "Controller status flags" ; controller_status:units = "1" ; controller_status:missing_value = -9999s ; controller_status:flag_values = 0s, 100s, 255s ; controller_status:flag_meanings = "ready detected_reset busy" ; controller_status:flag_0_description = "controller ready for operation" ; controller_status:flag_100_description = "controller reset detected, not ready for operation" ; controller_status:flag_255_description = "controller busy" ; short detector_status(time) ; detector_status:long_name = "Detector status flags" ; detector_status:units = "1" ; detector_status:missing_value = -9999s ; detector_status:flag_values = 0s, 10s, 20s, 30s, 40s, 55s, 56s, 57s, 58s, 59s ; detector_status:flag_meanings = "init_error measuring stopped led_calibration led_calibration_fast reading_ndf0 reading_ndf1 reading_ndf2 reading_ndf3 ndf_measurement_error" ; detector_status:flag_0_description = "detector initialization error" ; detector_status:flag_10_description = "detector measuring" ; detector_status:flag_20_description = "detector stopped" ; detector_status:flag_30_description = "LED calibration" ; detector_status:flag_40_description = "fast LED calibration" ; detector_status:flag_55_description = "reading neutral density filter 0 (NDF0)" ; detector_status:flag_56_description = "reading neutral density filter 1 (NDF1)" ; detector_status:flag_57_description = "reading neutral density filter 2 (NDF2)" ; detector_status:flag_58_description = "reading neutral density filter 3 (NDF3)" ; detector_status:flag_59_description = "error during NDF measurements" ; short LED_status(time) ; LED_status:long_name = "LED status flags" ; LED_status:units = "1" ; LED_status:missing_value = -9999s ; LED_status:flag_values = 0s, 10s ; LED_status:flag_meanings = "driver_init_error driver_ok" ; LED_status:flag_0_description = "LED driver initialization error" ; LED_status:flag_10_description = "LED driver OK" ; short valve_status(time) ; valve_status:long_name = "Valve status flags" ; valve_status:units = "1" ; valve_status:missing_value = -9999s ; valve_status:flag_masks = 1s, 2s, 4s, 8s, 16s ; valve_status:flag_meanings = "valve_1_position_1 valve_2_position_1 valve_3_position_1 valve_4_position_1 valve_4_moving" ; valve_status:comment = "Each valve can be in position 0 or 1. Valve 4 can also be in motion." ; valve_status:bit_1_description = "if 0, valve 1 is in position 0; if 1, valve 1 is in position 1" ; valve_status:bit_2_description = "if 0, valve 2 is in position 0; if 1, valve 2 is in position 1" ; valve_status:bit_3_description = "if 0, valve 3 is in position 0; if 1, valve 3 is in position 1" ; valve_status:bit_4_description = "if 0, valve 4 is in position 0; if 1, valve 4 is in position 1" ; valve_status:bit_5_description = "if 0, valve 4 is not moving; if 1, valve 4 is moving" ; int impactor_state(time) ; impactor_state:long_name = "Impactor state in terms of aerodynamic diameter cut off" ; impactor_state:units = "1" ; impactor_state:missing_value = -9999 ; impactor_state:flag_values = 0, 1, 10 ; impactor_state:flag_meanings = "transition_between_particle_size 1um 10um" ; impactor_state:switching_mode = "on" ; impactor_state:default_state = "10" ; impactor_state:source = "epcaosimpactorM1.b1:impactor_state" ; float lat ; lat:long_name = "North latitude" ; lat:units = "degree_N" ; lat:valid_min = -90.f ; lat:valid_max = 90.f ; lat:standard_name = "latitude" ; float lon ; lon:long_name = "East longitude" ; lon:units = "degree_E" ; lon:valid_min = -180.f ; lon:valid_max = 180.f ; lon:standard_name = "longitude" ; float alt ; alt:long_name = "Altitude above mean sea level" ; alt:units = "m" ; alt:standard_name = "altitude" ; // global attributes: :command_line = "aosaeth2spotcorr -s epc -f M1" ; :Conventions = "ARM-1.3" ; :process_version = "ingest-aosaeth2spotcorr-1.1-0.el7" ; :dod_version = "aosaeth2spot-b1-4.0" ; :input_datastreams = "epcaosaeth2spotM1.a1 : 1.1 : 20240214.000000\n", "epcaosimpactorM1.b1 : 2.4 : 20240214.000000" ; :site_id = "epc" ; :platform_id = "aosaeth2spot" ; :facility_id = "M1" ; :data_level = "b1" ; :location_description = "Eastern Pacific Cloud Aerosol Precipitation Experiment (EPCAPE), Scripps Pier, La Jolla, CA" ; :datastream = "epcaosaeth2spotM1.b1" ; :sampling_interval = "1 second" ; :averaging_interval = "1 minute" ; :configuration_file = "epcaosaeth2spotM1.20230101.000000.config" ; :doi = "10.5439/1991926" ; :history = "created by user dsmgr on machine prod-proc3.adc.arm.gov at 2024-02-14 04:34:00, using ingest-aosaeth2spotcorr-1.1-0.el7" ; }