Title: Vaisala CL-61 Lidar / Ceilometer (University of Michigan) Lead Author: Name: Claire Pettersen Institution: University of Michigan Department: Climate and Space Sciences and Engineering Address: 2455 Hayward St., Ann Arbor, MI 48109-2143 Email: pettersc@umich.edu Phone: 608 772 6270 ORCID: 0000-0002-8685-6242 Contributing Author: Name: Abby Hutson Institution: University of Michigan Department: Cooperative Institute for Great Lakes Research Email: hutsona@umich.edu ORCID: 0000-0001-9622-6431 Award ID/ Grant ID: 2348448 1.0 Dataset Description: ------------------------ The Vaisala CL-61 LIght Detection And Ranging (LIDAR) instrument measures cloud base and ceiling heights, with a depolarization measurement that enables differentiation between solid, liquid, or mixed-phase clouds and precipitation. The CL-61 was deployed at the Mid-Mountain site of the S2noCliME project, located at the base of the Bar-UE lift on the Steamboat Springs ski resort. The instrument began collecting data on 18 January 2025, and ran continuously through the end of the project, on 23 April 2025. There is no missing data between start and end dates. Time period covered by the data: 1845 UTC 18 January 2025 to 0000 UTC 23 April 2025. Data frequency: ~5 seconds, and there is no missing data between the start and end dates. Physical Location: 40.461177 Latitude, -106.761533 Longitude, Altitude 2756.6 meters Final Version: 1.0 13 October 2025 2.0 Instrument Description: ---------------------------- The Vaisala Lidar Ceilometer CL61 is a high-performance light detection and ranging (LiDAR) instrument with depolarization measurement capable of unattended operation in all weather conditions. The depolarization measurement capability enables clear liquid/solid differentiation for particles and clouds, providing ready-to-use information for atmospheric characterization. The ceilometer uses pulsed diode laser LiDAR technology where short, powerful laser pulses are sent out in a vertical or near‑vertical direction. The reflection of light, backscatter – caused by clouds, precipitation, virga, haze, fog, and aerosols – is measured as the laser pulses traverse the sky. The ceilometer processes these returns and reports the resulting profiles of attenuated backscatter, linear depolarization ratio and cloud base heights. More information can be found here: https://docs.vaisala.com/r/M212474EN-E/en-US/GUID-5186E7F6-FE3C-4DE0-A989-AF28FC959C8F 3.0 Data Collection and Processing: ----------------------------------- The CL-61 uses pulsed diode laser LIDAR technology where short, powerful laser pulses are sent out in a vertical direction. The backscatter return is processed, resulting in vertical profiles of attenuated backscatter, linear depolarization ratio, and cloud base heights (source: Vaisala CL61 User Guide). Below are instrument specifications from the CL-61 used during S2noCliME: - Range resolution: 4.8 m - Factory cloud calibration value: 0.441389 - User-set cloud calibration value: 0.441389 The data from the instrument is collected and aggregated into high-frequency daily files. There is no other significant post-processing on the data. 4.0 Data Format: ---------------- Ceilometer data is stored in daily netCDF files with the following naming convention: ceil_YYYYMMDD.nc where - YYYY is the year when the data was collected - MM is the month of the year - DD is the day of the month The netcdf files contain the following data: Coordinates: - Time (ns): an array of datetime objects, time of each measurement (frequency of ~5 seconds) - Range (m): measurement distance from the instrument, height above the ground - Layer (): number of the observed cloud layer (can be 1-5). Parameters: - Parallel-polarized component of the backscattered light (1/m*sr) - Cross-polarized component of the backscattered light (1/m*sr) - Attenuated volume backscatter coefficient (1/m*sr) - Linear depolarisation ratio of the backscatter volume () - Cloud base height (m) - Cloud penetration depth (m) - Cloud thickness (m) - Fog detection (1=detected, 0=not detected) - Precipitation detection (1=detected, 0=not detected) - Amount of cloud cover per layer (oktas) - Total aggregated cloud cover (oktas) - Height of different cloud layers (m) - Vertical visibility (m) - Receiver gain status (1=high-gain, 0=low-gain) - Instrument tilt angle (degrees) Instrument-specific parameters: the files also contain information about specific constants used to calibrate the instrument. Those include the azimuth angle (0 degrees), factory cloud calibration value, the user-set cloud calibration value, and the range resolution. Below is the netCDF header information for the variables and global attributes: netcdf ceil_20250119 { dimensions: time = UNLIMITED ; // (17280 currently) range = 3276 ; layer = 5 ; variables: short airplane_filter_max_range ; airplane_filter_max_range:_FillValue = -999s ; airplane_filter_max_range:units = "m" ; airplane_filter_max_range:long_name = "airplane filter max range" ; airplane_filter_max_range:comment = "user configured value, zero for not in use, otherwise the configured range" ; double azimuth_angle ; azimuth_angle:_FillValue = -999. ; azimuth_angle:units = "degrees" ; azimuth_angle:long_name = "measurement azimuth angle" ; azimuth_angle:standard_name = "sensor_azimuth_angle" ; azimuth_angle:comment = "reference direction: north" ; float beta_att(time, range) ; beta_att:_FillValue = -999.f ; beta_att:units = "1/(m*sr)" ; beta_att:long_name = "attenuated volume backscatter coefficient" ; beta_att:coordinates = "range longitude latitude" ; beta_att:averaging_time_in_seconds = 5 ; beta_att:cell_methods = "time: mean" ; double beta_att_noise_level(time) ; beta_att_noise_level:_FillValue = -999. ; beta_att_noise_level:long_name = "a unitless number describing the noise level of the attenuated volume backscatter coefficient" ; beta_att_noise_level:cell_methods = "time: mean" ; double beta_att_sum(time) ; beta_att_sum:_FillValue = -999. ; beta_att_sum:units = "1/(10^4*sr)" ; beta_att_sum:long_name = "scaled integral of the attenuated volume backscatter coefficient" ; beta_att_sum:cell_methods = "time: mean" ; int cloud_base_heights(time, layer) ; cloud_base_heights:_FillValue = -99 ; cloud_base_heights:units = "m" ; cloud_base_heights:long_name = "heights (range) of the detected cloud bases" ; cloud_base_heights:coordinates = "layer longitude latitude" ; cloud_base_heights:cell_methods = "time: mean" ; double cloud_calibration_factor ; cloud_calibration_factor:_FillValue = -999. ; cloud_calibration_factor:long_name = "factory cloud calibration value" ; cloud_calibration_factor:comment = "instrument specific beta_att calibration value measured at the factory" ; double cloud_calibration_factor_user ; cloud_calibration_factor_user:_FillValue = -999. ; cloud_calibration_factor_user:long_name = "user set cloud calibration value" ; cloud_calibration_factor_user:comment = "instrument specific beta_att calibration value set by the user, same as the factory value by default" ; int cloud_penetration_depth(time, layer) ; cloud_penetration_depth:_FillValue = -99 ; cloud_penetration_depth:units = "m" ; cloud_penetration_depth:long_name = "cloud penetration depth in the direction of the instrument beam" ; cloud_penetration_depth:coordinates = "layer longitude latitude" ; cloud_penetration_depth:cell_methods = "time: mean" ; int cloud_thickness(time, layer) ; cloud_thickness:_FillValue = -99 ; cloud_thickness:units = "m" ; cloud_thickness:long_name = "cloud thickness in the direction of the instrument beam" ; cloud_thickness:coordinates = "layer longitude latitude" ; cloud_thickness:cell_methods = "time: mean" ; int elevation ; elevation:_FillValue = -999 ; elevation:units = "m" ; elevation:long_name = "elevation" ; elevation:standard_name = "ground_level_altitude" ; elevation:comment = "measurement site height above or below a fixed reference point, most commonly a reference geoid" ; short fog_detection(time) ; fog_detection:_FillValue = -999s ; fog_detection:long_name = "detection of fog" ; fog_detection:comment = "detected/not-detected (1/0)" ; fog_detection:coordinates = "longitude latitude" ; fog_detection:cell_methods = "time: mean" ; short height_offset(time) ; height_offset:_FillValue = -999s ; height_offset:long_name = "instrument height offset to reference level" ; height_offset:comment = "positive, if the instrument is placed e.g. on the roof of a building. Negative, if the instrument is placed below the ground level altitude e.g. in a pit. This value will be added to the cloud base height results." ; height_offset:units = "m" ; height_offset:cell_methods = "time: mean" ; double latitude ; latitude:_FillValue = -999. ; latitude:units = "degrees_north" ; latitude:long_name = "latitude" ; latitude:standard_name = "latitude" ; int layer(layer) ; layer:_FillValue = -999 ; layer:units = "layer" ; layer:long_name = "number of the observed cloud layer (1,2,...,5)" ; float linear_depol_ratio(time, range) ; linear_depol_ratio:_FillValue = -999.f ; linear_depol_ratio:long_name = "linear depolarisation ratio of the backscatter volume" ; linear_depol_ratio:coordinates = "range longitude latitude" ; linear_depol_ratio:averaging_time_in_seconds = 60 ; linear_depol_ratio:cell_methods = "time: mean" ; double longitude ; longitude:_FillValue = -999. ; longitude:units = "degrees_east" ; longitude:long_name = "longitude" ; longitude:standard_name = "longitude" ; float overlap_function(range) ; overlap_function:_FillValue = -999.f ; overlap_function:long_name = "instrument specific overlap function" ; overlap_function:comment = "shares the vertical resolution of profiles" ; float p_pol(time, range) ; p_pol:_FillValue = -999.f ; p_pol:units = "1/(m*sr)" ; p_pol:long_name = "parallel-polarized component of the backscattered light" ; p_pol:coordinates = "range longitude latitude" ; p_pol:averaging_time_in_seconds = 5 ; p_pol:cell_methods = "time: mean" ; short precipitation_detection(time) ; precipitation_detection:_FillValue = -999s ; precipitation_detection:long_name = "detection of ground reaching precipitation" ; precipitation_detection:comment = "detected/not-detected (1/0)" ; precipitation_detection:coordinates = "longitude latitude" ; precipitation_detection:cell_methods = "time: mean" ; double range(range) ; range:_FillValue = -999. ; range:units = "m" ; range:long_name = "measurement distance from the instrument in the direction of the transmitted laser beam" ; range:axis = "Z" ; range:positive = "up" ; float range_resolution ; range_resolution:_FillValue = -999.f ; range_resolution:units = "m" ; range_resolution:long_name = "range resolution" ; range_resolution:comment = "distance between consecutive profile elements" ; short receiver_gain(time) ; receiver_gain:_FillValue = -999s ; receiver_gain:long_name = "receiver gain status" ; receiver_gain:comment = "high-gain/low-gain (1/0)" ; receiver_gain:cell_methods = "time: mean" ; short sky_condition_cloud_layer_covers(time, layer) ; sky_condition_cloud_layer_covers:_FillValue = -99s ; sky_condition_cloud_layer_covers:units = "oktas" ; sky_condition_cloud_layer_covers:long_name = "amount of cloud cover in different cloud layers" ; sky_condition_cloud_layer_covers:comment = "for up to 5 layers" ; sky_condition_cloud_layer_covers:coordinates = "layer longitude latitude" ; sky_condition_cloud_layer_covers:cell_methods = "time: mean" ; int sky_condition_cloud_layer_heights(time, layer) ; sky_condition_cloud_layer_heights:_FillValue = -99 ; sky_condition_cloud_layer_heights:units = "m" ; sky_condition_cloud_layer_heights:long_name = "height of different cloud layers" ; sky_condition_cloud_layer_heights:comment = "for up to 5 layers" ; sky_condition_cloud_layer_heights:coordinates = "layer longitude latitude" ; sky_condition_cloud_layer_heights:cell_methods = "time: mean" ; short sky_condition_total_cloud_cover(time) ; sky_condition_total_cloud_cover:_FillValue = -99s ; sky_condition_total_cloud_cover:units = "oktas" ; sky_condition_total_cloud_cover:long_name = "total amount of cloud cover" ; sky_condition_total_cloud_cover:comment = "aggregated across layers" ; sky_condition_total_cloud_cover:coordinates = "longitude latitude" ; sky_condition_total_cloud_cover:cell_methods = "time: mean" ; float tilt_angle(time) ; tilt_angle:_FillValue = -999.f ; tilt_angle:units = "degrees" ; tilt_angle:standard_name = "zenith_angle" ; tilt_angle:long_name = "instrument tilt angle from the vertical" ; tilt_angle:cell_methods = "time: mean" ; short tilt_correction(time) ; tilt_correction:_FillValue = -999s ; tilt_correction:long_name = "tilt correction" ; tilt_correction:comment = "on/off (1/0)" ; tilt_correction:cell_methods = "time: mean" ; double time(time) ; time:_FillValue = -999. ; time:units = "seconds since 1970-01-01 00:00:00.000" ; time:long_name = "Time" ; time:axis = "T" ; time:standard_name = "time" ; time:cf_role = "profile_id" ; time:comment = "represents the end of the averaging period" ; time:cell_methods = "time: mean" ; int vertical_visibility(time) ; vertical_visibility:_FillValue = -99 ; vertical_visibility:units = "m" ; vertical_visibility:long_name = "visibility in the direction of the instrument beam" ; vertical_visibility:coordinates = "longitude latitude" ; vertical_visibility:cell_methods = "time: mean" ; float x_pol(time, range) ; x_pol:_FillValue = -999.f ; x_pol:units = "1/(m*sr)" ; x_pol:long_name = "cross-polarized component of the backscattered light" ; x_pol:coordinates = "range longitude latitude" ; x_pol:averaging_time_in_seconds = 5 ; x_pol:cell_methods = "time: mean" ; // global attributes: :title = "CL61D CL61 with Depolarization" ; :institution = "" ; :source = "" ; :conventions = "CF-1.8" ; :schema_version = "1.3" ; :sw_version = "1.2.7" ; :history = "Tue Sep 30 11:54:31 2025: /usr/bin/ncrcat ceil_20250119_noend.nc ceil_20250119_end.nc ceil_20250119.nc\nTue Sep 30 11:47:55 2025: /usr/bin/ncks -d time,64,-1 ceil_20250119_plus.nc ceil_20250119_noend.nc\nTue Sep 30 11:42:06 2025: /usr/bin/ncrcat live_20250119_000441.nc live_20250119_001440.nc live_20250119_002440.nc live_20250119_003441.nc live_20250119_004440.nc live_20250119_005441.nc live_20250119_010441.nc live_20250119_011440.nc live_20250119_012440.nc live_20250119_013441.nc live_20250119_014441.nc live_20250119_015440.nc live_20250119_020441.nc live_20250119_021440.nc live_20250119_022441.nc live_20250119_023441.nc live_20250119_024441.nc live_20250119_025440.nc live_20250119_030441.nc live_20250119_031441.nc live_20250119_032441.nc live_20250119_033441.nc live_20250119_034441.nc live_20250119_035440.nc live_20250119_040441.nc live_20250119_041441.nc live_20250119_042441.nc live_20250119_043440.nc live_20250119_044441.nc live_20250119_045441.nc live_20250119_050441.nc live_20250119_051441.nc live_20250119_052441.nc live_20250119_053440.nc live_20250119_054440.nc live_20250119_055441.nc live_20250119_060441.nc live_20250119_061440.nc live_20250119_062441.nc live_20250119_063441.nc live_20250119_064440.nc live_20250119_065440.nc live_20250119_070440.nc live_20250119_071440.nc live_20250119_072440.nc live_20250119_073440.nc live_20250119_074441.nc live_20250119_075440.nc live_20250119_080441.nc live_20250119_081441.nc live_20250119_082441.nc live_20250119_083440.nc live_20250119_084441.nc live_20250119_085441.nc live_20250119_090441.nc live_20250119_091441.nc live_20250119_092441.nc live_20250119_093441.nc live_20250119_094441.nc live_20250119_095441.nc live_20250119_100441.nc live_20250119_101440.nc live_20250119_102440.nc live_20250119_103441.nc live_20250119_104441.nc live_20250119_105441.nc live_20250119_110441.nc live_20250119_111441.nc live_20250119_112441.nc live_20250119_113441.nc live_20250119_114441.nc live_20250119_115441.nc live_20250119_120441.nc live_20250119_121441.nc live_20250119_122441.nc live_20250119_123441.nc live_20250119_124441.nc live_20250119_125441.nc live_20250119_130441.nc live_20250119_131441.nc live_20250119_132441.nc live_20250119_133441.nc live_20250119_134441.nc live_20250119_135441.nc live_20250119_140441.nc live_20250119_141440.nc live_20250119_142440.nc live_20250119_143441.nc live_20250119_144440.nc live_20250119_145440.nc live_20250119_150441.nc live_20250119_151441.nc live_20250119_152441.nc live_20250119_153441.nc live_20250119_154441.nc live_20250119_155441.nc live_20250119_160441.nc live_20250119_161441.nc live_20250119_162441.nc live_20250119_163441.nc live_20250119_164441.nc live_20250119_165441.nc live_20250119_170440.nc live_20250119_171441.nc live_20250119_172441.nc live_20250119_173440.nc live_20250119_174440.nc live_20250119_175440.nc live_20250119_180440.nc live_20250119_181440.nc live_20250119_182440.nc live_20250119_183440.nc live_20250119_184440.nc live_20250119_185440.nc live_20250119_190441.nc live_20250119_191440.nc live_20250119_192440.nc live_20250119_193440.nc live_20250119_194441.nc live_20250119_195441.nc live_20250119_200440.nc live_20250119_201440.nc live_20250119_202441.nc live_20250119_203441.nc live_20250119_204440.nc live_20250119_205440.nc live_20250119_210441.nc live_20250119_211440.nc live_20250119_212440.nc live_20250119_213441.nc live_20250119_214440.nc live_20250119_215440.nc live_20250119_220440.nc live_20250119_221440.nc live_20250119_222440.nc live_20250119_223440.nc live_20250119_224440.nc live_20250119_225440.nc live_20250119_230440.nc live_20250119_231440.nc live_20250119_232440.nc live_20250119_233441.nc live_20250119_234441.nc live_20250119_235440.nc ceil_20250119_plus.nc\n" ; :comment = "" ; :unit = "m" ; :instrument_serial_number = "W1950625" ; :overlap_function_provided = 1s ; :overlap_is_corrected = 1s ; :file_temporal_span_in_minutes = 10. ; :profile_interval_in_seconds = 5 ; :NCO = "netCDF Operators version 5.0.6 (Homepage = http://nco.sf.net, Code = http://github.com/nco/nco)" ; 5.0 Data Remarks: ------------------ 6.0 References: -------------- CL61 Handbook: https://docs.vaisala.com/r/M212474EN-E/en-US/GUID-5186E7F6-FE3C-4DE0-A989-AF28FC959C8F Le, V., O'Connor, E.J., Filioglou, M. and Vakkari, V., 2026. Operational performance of the Vaisala CL61 ceilometer for atmospheric profiling. EGUsphere, 2026, pp.1-30. preprint Looschelders, D., Christen, A., Grimmond, S., Kotthaus, S., Fenner, D., Dupont, J.C., Haeffelin, M. and Morrison, W., 2025. Inter‐Instrument Variability of Vaisala CL61 Lidar‐Ceilometer's Attenuated Backscatter, Cloud Properties and Mixed‐Layer Height. Meteorological Applications, 32(5), p.e70088.