Automatic Lidar and Ceilometer

Command line interface

alcf-lidar – Process lidar data.


alcf lidar <type> [<options>] [<algorithm_options>] [--] <lidar> <output>


The processing is done in the following order:

  • noise removal
  • calibration
  • time resampling
  • height resampling
  • cloud detection
  • cloud base detection

Arguments following -- are treated as literal strings. Use this delimiter if the input or output file names might otherwise be interpreted as non-strings, e.g. purely numerical file names.


  • type: Lidar type (see Types below).
  • lidar: Input lidar data directory or filename. If a directory, only .nc files in the directory are processed. If the option -r is supplied, the directory is processed recursively.
  • output: Output filename or directory.
  • options: See Options below.
  • algorithm_options: See Algorithm options below.


  • blview: Vaisala BL-VIEW L2 product.
  • chm15k: Lufft CHM 15k.
  • cl31: Vaisala CL31.
  • cl51: Vaisala CL51.
  • cl61: Vaisala CL61.
  • cosp: COSP simulated lidar.
  • default: The same format as the output of alcf lidar.
  • minimpl: Sigma Space MiniMPL (converted via SigmaMPL).
  • mpl: Sigma Space MPL (converted via SigmaMPL).
  • mpl2nc: Sigma Space MPL and MiniMPL (converted via mpl2nc).


  • align_output: <value>: Align output time periods to the nearest multiple of output_sampling. Default: true.
  • altitude: <altitude>: Altitude of the instrument (m). Default: Taken from lidar data or 0 if not available.
  • bsd: <value>: Assume a given standard deviation of backscatter noise when detecting clouds or none to use the value calculated by the noise removal algorithm from observed backscatter if available (m^^-1). The value applies at height bsd_z and is range-scaled for other heights. A suitable value can be taken from a plot generated by alcf plot backscatter_sd_hist. Default: none.
  • bsd_z: <value>: Height at which bsd applies (m). Default: 8000.
  • calibration: <algorithm>: Backscatter calibration algorithm. Available algorithms: default, none. Default: default.
  • couple: <directory>: Couple to other lidar data. Default: none.
  • cl_crit_range: <range>: Critical range for the fix_cl_range option (m). Default: 6000.
  • cloud_detection: <algorithm>: Cloud detection algorithm. Available algorithms: default, none. Default: default.
  • cloud_base_detection: <algorithm>: Cloud base detection algorithm. Available algorithms: default, none. Default: default.
  • --fix_cl_range: Fix CL31/CL51 range correction (if noise_h2 firmware option if off). The critical range is taken from cl_crit_range.
  • interp: <value>: Vertical interpolation method. area_block for area-weighting with block interpolation, area_linear for area-weighting with linear interpolation or linear for simple linear interpolation. Default: area_linear.
  • keep_vars: { <var>... }: Keep the listed input variables. The variable must be numerical and have a time dimension. The variable is resampled in the same way as backscatter along their time and level dimensions, its name is prefixed with input_, and its type is changed to float64. Default: { }.
  • lat: <lat>: Latitude of the instrument (degrees North). Default: Taken from lidar data or none if not available.
  • lon: <lon>: Longitude of the instrument (degrees East). Default: Taken from lidar data or none if not available.
  • noise_removal: <algorithm>: Noise removal algorithm. Available algorithms: default, none. Default: default.
  • output_sampling: <period>: Output sampling period (seconds). Default: 86400 (24 hours).
  • -r: Process the input directory recursively.
  • time: { <low> <high> }: Time limits (see Time format below). Default: none.
  • tres: <tres>: Time resolution (seconds). Default: 300 (5 min).
  • tshift: <tshift>: Time shift (seconds). Default: 0.
  • zlim: { <low> <high> }: Height limits (m). Default: { 0 15000 }.
  • zres: <zres>: Height resolution (m). Default: 50.

Cloud detection options

  • default: Cloud detection based on backscatter threshold.
  • none: Disable cloud detection.

Cloud detection default options

  • cloud_nsd: <n>: Number of noise standard deviations to subtract. Default: 5.
  • cloud_threshold: <threshold>: Cloud detection threshold (m^^-1). Default: 2e-6.
  • cloud_threshold_exp: { <x> <y> <h> }: Cloud detection threshold exponentially decaying with height (sr^-1.m^-1). If not none, this supersedes cloud_threshold. The threshold is <x> at surface level, decaying exponentially to <y> at infinite height with half-height <h>. Default: none.

Cloud base detection options

  • default: Cloud base detection based cloud mask produced by the cloud detection algorithm.
  • none: Disable cloud base detection.

Calibration options

  • default: Multiply backscatter by a calibration coefficient.
  • none: Disable calibration.

Calibration default options

  • calibration_file: <file>: Calibration file.

Noise removal options

  • default: Noise removal based on noise distribution on the highest level.
  • none: Disable noise removal.

Noise removal default options

  • noise_removal_sampling: <period>: Sampling period for noise removal (seconds). Default: 300.
  • near_noise: { <scale> <range> } : Assume additional exponentially-decaying near-range noise. The first argument is the value at zero range (sr^-1.m^-1). The second argument is range at which the function decays to a half (m). Default: { 0 0 }.

Time format

YYYY-MM-DD[THH:MM[:SS]], where YYYY is year, MM is month, DD is day, HH is hour, MM is minute, SS is second. Example: 2000-01-01T00:00:00.


Process Vaisala CL51 data in cl51_nc and store the output in cl51_alcf_lidar, assuming instrument altitude of 100 m above sea level.

alcf lidar cl51 cl51_nc cl51_alcf_lidar altitude: 100