netcdf awrmplcmaskmlM1.c1.20170102.000002 { dimensions: time = UNLIMITED ; // (2880 currently) height = 667 ; bound = 2 ; variables: int base_time ; base_time:string = "2017-01-02 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 2017-01-02 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 2017-01-02 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., 30. ; float height(height) ; height:long_name = "Vertical height above ground level (AGL) corresponding to the bottom of height bin" ; height:units = "km" ; height:bounds = "height_bounds" ; height:standard_name = "height" ; float height_bounds(height, bound) ; height_bounds:long_name = "Height cell bounds" ; height_bounds:bound_offsets = -0.0075f, 0.0075f ; float backscatter(time, height) ; backscatter:long_name = "Total attenuated backscatter" ; backscatter:units = "counts/us" ; backscatter:missing_value = -9999.f ; backscatter:comment = "background subtracted, overlap, energy and dead-time corrected" ; backscatter:calculation = "((copol+(2*crosspol))*overlap)/energy" ; backscatter:data_quality_comment = "Data quality ok for both cloud and aerosol analysis" ; backscatter:ancillary_variables = "qc_backscatter" ; int qc_backscatter(time, height) ; qc_backscatter:long_name = "Quality check results on variable: Total attenuated backscatter" ; qc_backscatter:units = "1" ; qc_backscatter:standard_name = "quality_flag" ; qc_backscatter: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_backscatter:flag_method = "bit" ; qc_backscatter:bit_1_description = "The value of backscatter is not finite, data value set to missing_value in output file." ; qc_backscatter:bit_1_assessment = "Bad" ; float range_corrected_backscatter(time, height) ; range_corrected_backscatter:long_name = "Range-corrected total attenuated backscatter" ; range_corrected_backscatter:units = "km^2*counts/us" ; range_corrected_backscatter:missing_value = -9999.f ; range_corrected_backscatter:calculation = "range_corrected_backscatter = backscatter * (height)^2" ; float preprocess_backscatter(time, height) ; preprocess_backscatter:long_name = "Preprocessed range-corrected total attenuated backscatter for model" ; preprocess_backscatter:units = "1" ; preprocess_backscatter:description = "The backscatter data is preprocessed for the model by first taking the log (base 10) of the range_corrected_backscatter. The data is then zero-centered by subtracting the mean of the backscatter. Finally, the data is normalized by dividing the zero-centered range_corrected_backscatter by the standard deviation of the range_corrected_backscatter" ; preprocess_backscatter:ancillary_variables = "qc_preprocess_backscatter" ; int qc_preprocess_backscatter(time, height) ; qc_preprocess_backscatter:long_name = "Quality check results on variable: Preprocessed range-corrected total attenuated backscatter for model" ; qc_preprocess_backscatter:units = "1" ; qc_preprocess_backscatter:standard_name = "quality_flag" ; qc_preprocess_backscatter: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_preprocess_backscatter:flag_method = "bit" ; qc_preprocess_backscatter:bit_1_description = "Backscatter value is missing and set to the minimum value of the log backscatter" ; qc_preprocess_backscatter:bit_1_assessment = "Bad" ; qc_preprocess_backscatter:bit_2_description = "Backscatter value is infinite and set to the minimum value of the log backscatter" ; qc_preprocess_backscatter:bit_2_assessment = "Bad" ; qc_preprocess_backscatter:bit_3_description = "Backscatter value is negative or 0 and set to the minimum value of the log backscatter" ; qc_preprocess_backscatter:bit_3_assessment = "Bad" ; float linear_depol_ratio(time, height) ; linear_depol_ratio:long_name = "Linear depolarization ratio" ; linear_depol_ratio:units = "1" ; linear_depol_ratio:missing_value = -9999.f ; linear_depol_ratio:ancillary_variables = "qc_linear_depol_ratio" ; int qc_linear_depol_ratio(time, height) ; qc_linear_depol_ratio:long_name = "Quality check results on variable: Linear depolarization ratio" ; qc_linear_depol_ratio:units = "1" ; qc_linear_depol_ratio:standard_name = "quality_flag" ; qc_linear_depol_ratio: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_linear_depol_ratio:flag_method = "bit" ; qc_linear_depol_ratio:bit_1_description = "The value of signal is zero in the denominator causing the value of depolarization ratio to be NaN, data value set to missing_value in output file." ; qc_linear_depol_ratio:bit_1_assessment = "Bad" ; qc_linear_depol_ratio:bit_2_description = "Data value not available in input file, data value set to missing_value in output file." ; qc_linear_depol_ratio:bit_2_assessment = "Bad" ; float preprocess_linear_depol_ratio(time, height) ; preprocess_linear_depol_ratio:long_name = "Preprocessed linear depolarization ratio for model" ; preprocess_linear_depol_ratio:units = "1" ; preprocess_linear_depol_ratio:description = "The linear depolarization ratio is preprocessed by setting any value less than 0 or greater than 1 to 0" ; preprocess_linear_depol_ratio:ancillary_variables = "qc_preprocess_linear_depol_ratio" ; int qc_preprocess_linear_depol_ratio(time, height) ; qc_preprocess_linear_depol_ratio:long_name = "Quality check results on variable: Preprocessed linear depolarization ratio for model" ; qc_preprocess_linear_depol_ratio:units = "1" ; qc_preprocess_linear_depol_ratio:standard_name = "quality_flag" ; qc_preprocess_linear_depol_ratio: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_preprocess_linear_depol_ratio:flag_method = "bit" ; qc_preprocess_linear_depol_ratio:bit_1_description = "Value is less than 0" ; qc_preprocess_linear_depol_ratio:bit_1_assessment = "Bad" ; qc_preprocess_linear_depol_ratio:bit_2_description = "Value is greater than 1" ; qc_preprocess_linear_depol_ratio:bit_2_assessment = "Bad" ; int cloud_mask_dl(time, height) ; cloud_mask_dl:long_name = "Cloud mask from deep learning model" ; cloud_mask_dl:units = "1" ; cloud_mask_dl:flag_values = 0, 1 ; cloud_mask_dl:flag_meanings = "clear cloudy" ; cloud_mask_dl:flag_0_description = "Clear" ; cloud_mask_dl:flag_1_description = "Cloudy" ; cloud_mask_dl:missing_value = -9999 ; cloud_mask_dl:ancillary_variables = "cloud_mask_confidence qc_cloud_mask_dl" ; int qc_cloud_mask_dl(time, height) ; qc_cloud_mask_dl:long_name = "Quality check results on variable: Cloud mask from deep learning model" ; qc_cloud_mask_dl:units = "1" ; qc_cloud_mask_dl:standard_name = "quality_flag" ; qc_cloud_mask_dl: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_cloud_mask_dl:flag_method = "bit" ; qc_cloud_mask_dl:bit_1_description = "qc_backscatter is Bad" ; qc_cloud_mask_dl:bit_1_assessment = "Bad" ; qc_cloud_mask_dl:bit_2_description = "qc_linear_depol_ratio is Bad" ; qc_cloud_mask_dl:bit_2_assessment = "Bad" ; float cloud_mask_confidence(time, height) ; cloud_mask_confidence:long_name = "Model confidence in cloud prediction, where 1 is highly confident point is cloud, 0 is highly confident point is not cloud" ; cloud_mask_confidence:units = "1" ; int cloud_mask_zwang(time, height) ; cloud_mask_zwang:long_name = "Cloud mask from 30smplcmask1zwang.c1" ; cloud_mask_zwang:units = "1" ; cloud_mask_zwang:comment = "Cloud mask indeterminate below 500 m" ; cloud_mask_zwang:flag_values = 0, 1 ; cloud_mask_zwang:flag_meanings = "clear cloudy" ; cloud_mask_zwang:flag_0_description = "Clear" ; cloud_mask_zwang:flag_1_description = "Cloudy" ; cloud_mask_zwang:missing_value = -9999 ; cloud_mask_zwang:ancillary_variables = "qc_cloud_mask_zwang" ; int qc_cloud_mask_zwang(time, height) ; qc_cloud_mask_zwang:long_name = "Quality check results on variable: Cloud mask from 30smplcmask1zwang.c1" ; qc_cloud_mask_zwang:units = "1" ; qc_cloud_mask_zwang:standard_name = "quality_flag" ; qc_cloud_mask_zwang: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_cloud_mask_zwang:flag_method = "bit" ; qc_cloud_mask_zwang:bit_1_description = "Unable to determine the cloud mask, data value set to missing_value in output file." ; qc_cloud_mask_zwang:bit_1_assessment = "Bad" ; qc_cloud_mask_zwang:bit_2_description = "backscatter is unusable due to instrument malfunction, data value set to missing_value in output file." ; qc_cloud_mask_zwang:bit_2_assessment = "Bad" ; int cloud_mask(time, height) ; cloud_mask:long_name = "Cloud mask from deep learning model with clustering and merging applied" ; cloud_mask:units = "1" ; cloud_mask:comment = "The horizontal mask bins are merged if time gap between two cloud mask bins is less than 1 minute (2 bin). The vertical mask bins are merged if vertical distance between two cloud mask bins is less than 120 m (4 bins)." ; cloud_mask:flag_values = 0, 1 ; cloud_mask:flag_meanings = "clear cloudy" ; cloud_mask:flag_0_description = "Clear" ; cloud_mask:flag_1_description = "Cloudy" ; cloud_mask:missing_value = -9999 ; cloud_mask:ancillary_variables = "qc_cloud_mask" ; int qc_cloud_mask(time, height) ; qc_cloud_mask:long_name = "Quality check results on variable: Cloud mask from deep learning model with clustering and merging applied" ; qc_cloud_mask:units = "1" ; qc_cloud_mask:standard_name = "quality_flag" ; qc_cloud_mask: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_cloud_mask:flag_method = "bit" ; qc_cloud_mask:bit_1_description = "qc_backscatter is Bad" ; qc_cloud_mask:bit_1_assessment = "Bad" ; qc_cloud_mask:bit_2_description = "qc_linear_depol_ratio is Bad" ; qc_cloud_mask:bit_2_assessment = "Bad" ; float cloud_base(time) ; cloud_base:long_name = "Lowest cloud base height above ground level (AGL)" ; cloud_base:units = "km" ; cloud_base:comment = "A value of -1 means no cloud is detected" ; cloud_base:missing_value = -9999.f ; cloud_base:valid_range = 0.f, 25000.f ; cloud_base:flag_values = -1.f ; cloud_base:flag_meanings = "clear_sky" ; float cloud_top(time) ; cloud_top:long_name = "Highest cloud top height above ground level (AGL)" ; cloud_top:units = "km" ; cloud_top:comment = "A value of -1 means no cloud is detected" ; cloud_top:missing_value = -9999.f ; cloud_top:valid_range = 0.f, 25000.f ; cloud_top:flag_values = -1.f ; cloud_top:flag_meanings = "clear_sky" ; cloud_top:standard_name = "height_at_cloud_top" ; int num_cloud_layers(time) ; num_cloud_layers:long_name = "Number of cloud layers" ; num_cloud_layers:units = "1" ; num_cloud_layers:missing_value = -9999 ; num_cloud_layers:ancillary_variables = "qc_num_cloud_layers" ; int qc_num_cloud_layers(time) ; qc_num_cloud_layers:long_name = "Quality check results on variable: Number of cloud layers" ; qc_num_cloud_layers:units = "1" ; qc_num_cloud_layers:standard_name = "quality_flag" ; qc_num_cloud_layers: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_num_cloud_layers:warn_max = 10 ; qc_num_cloud_layers:flag_method = "bit" ; qc_num_cloud_layers:bit_1_description = "Value is equal to missing_value." ; qc_num_cloud_layers:bit_1_assessment = "Bad" ; qc_num_cloud_layers:bit_2_description = "Value is greater than warn_max." ; qc_num_cloud_layers:bit_2_assessment = "Indeterminate" ; 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 = "mplcmaskml -s awr -f M1 -b 20160727 -e 20200101 -D2" ; :Conventions = "ARM-1.3" ; :process_version = "mplcmaskml-1.0.2" ; :dod_version = "mplcmaskml-c1-1.0" ; :input_datastreams = "awr30smplcmask1zwangM1.c1 : 1.2 : 20170102.000002" ; :site_id = "awr" ; :platform_id = "mplcmaskml" ; :facility_id = "M1" ; :data_level = "c1" ; :location_description = "ARM West Antarctic Radiation Experiment (AWARE), McMurdo Station, Antarctica" ; :datastream = "awrmplcmaskmlM1.c1" ; :serial_number = "4103" ; :doi = "10.5439/1637940" ; :comment = "VAP that applies Cromwell et. al deep learning model" ; :paper = "Cromwell E., and D.M. Flynn. 2019. \"Lidar Cloud Detection with Fully Convolutional Networks.\" In IEEE Winter Conference on Applications of Computer Vision 2019, 619-627. PNNL-SA-138402. doi:10.1109/WACV.2019.00071" ; :history = "created by user dsmgr on machine prod-proc4.adc.arm.gov at 2022-10-05 15:45:20, using mplcmaskml-1.0.2" ; }