The ampycloud scientific parameters

The default values of all the ampycloud parameters with a scientific impact on the outcome of the algorithm are defined in src/ampycloud/prms/ampycloud_default_prms.yml. For completeness and ease of access, the content of this file is reproduced below.

Note

With ampycloud installed on your machine, you can easily get a local copy of this file using the following high-level entry point accessible from the command line: ampycloud_copy_prm_file. For more details, see Adjusting the default algorithm parameters.

Warning

It is very strongly discouraged to modify this reference file directly. ampycloud offers other ways to modify the default parameter values to fit your needs, including via local copies of this file. See Adjusting the default algorithm parameters for details.

#
# Copyright (c) 2021-2022 MeteoSwiss, contributors listed in AUTHORS.
#
# Distributed under the terms of the 3-Clause BSD License.
#
# SPDX-License-Identifier: BSD-3-Clause
#
# File contains: default scientific parameters of the ampycloud algorithm
#

# General parameters

# Plotting style. Can be one of 'base', 'latex', 'metsymb'
MPL_STYLE: 'base'

# Minimum Sector Altitude, in ft above aerodrome level. No cloud layers with a base above this value
# will be reported in the ampycloud METAR messages. Set it to null for no limit.
MSA: null

# Additional distance above the MSA value (in ft) beyond which hits will be ignored (=cropped) by
# ampycloud. This is to ensure that cloud layers with cloud base heights close to the MSA value are
# still detected with the correct densities.
MSA_HIT_BUFFER: 1500

# Max number of hits in a layer to still consider it to be of 0 oktas.
MAX_HITS_OKTA0: 3

# Max number of holes (=non-detection of cloud) in a layer to still consider it to be of 8 oktas.
MAX_HOLES_OKTA8: 1

# Number (in %) of the cloud hit heights (sorted from smallest to highest) to ignore when
# computing the cloud base height, taken to be the min height of the
# 100-LAYER_BASE_LVL_PERC % remaining points.
BASE_LVL_HEIGHT_PERC: 5

# Number of Slice/Group/Layer points (in %) - starting from the most recent ones -
# to use to compute the cloud base height. 30 would use only the 30% youngest hits.
# Set to 100 to use all the points.
BASE_LVL_LOOKBACK_PERC: 100

# If ceilo Ids are set, for any given layer/ group/ slice, ceilos with the corresponding ID
# will be excluded from the base height calculation. If the selection results in an empty layer/ group/
# slice, we go back to using all ceilo hits and ignore the selection. Use this switch if you want
# to localize the height caclulation or if you want to exclude ceilometers of a specific type in the
# height calculation.
EXCLUDE_FOR_BASE_HEIGHT_CALC: []

# LOWESS parameters used to fit Slice/Groups/Layers height trends
LOWESS:
    # Fraction of the slice/group/layer points to consider when deriving the LOWESS smooth fit.
    # Values too small will result in overfitting. Values too large will miss rapid
    # height fluctuations.
    frac: 0.35
    # Number of LOWESS fitting iterations
    it: 3

# Minimum separation (in ft) between the base heights of identified layers inside groups
# with a base height in the bins set by min_sep_lims. Any layers separated by less than this
# value will be remerged into one layer. Any value < than 5 times the vertical resolution of the data will
# raise a warning, as it may lead to an over-layering of groups. For the ampycloud METAR
# messages to be consistent with the ICAO rules of layer selection, this should be >=100 ft
# below 10'000 ft.
MIN_SEP_VALS: [250, 1000]
# Height threshold (in ft) separating the min_sep_val elements.
# The 0 and + infty extrema will be automatically added to the list by ampycloud.
# Just list here the intermediate steps.
MIN_SEP_LIMS: [10000]

# Slicing parameters
SLICING_PRMS:
    # Clustering distance threshold
    distance_threshold: 0.2
    # Time scaling factor
    dt_scale: 100000
    # Height scaling mode
    height_scale_mode: minmax-scale
    # Height scaling parameters (in ft)
    height_scale_kwargs:
        min_range: 1000

# Clustering parameters
GROUPING_PRMS:
    # Padding (in % of the slice height range) to add above and below slices
    # before looking for overlaps
    height_pad_perc: +10
    # Time scaling factor (in s)
    dt_scale: 180
    # Range of allowed height scaling factor (in ft). The fluffiness will never be allowed
    # to push the height_scaling beyond this range.
    height_scale_range: [100, 500]

# Layering parameters
LAYERING_PRMS:
    # Minimum okta value below which cluster splitting is not attempted
    min_okta_to_split: 2
    gmm_kwargs:
        # Whether to use 'BIC' or 'AIC' scores to decide which model is "best".
        scores: BIC
        # Whether to use 'delta', or 'prob' to find the best model.
        # See ampycloud.layer.best_gmm() for details.
        mode: delta
        # Minimum model probability computed from the relative likelihood,
        # below which alternative models with more components will be considered.
        # Only used if mode='prob'
        min_prob: 1.0
        # A model with a smaller score will only be considered "valid"
        # if its score is smaller than delta_mul_gain*current_best_score.
        # Only used if mode='delta'
        delta_mul_gain: 0.95
        # If set, rescale each group between 0 and this value before looking for layers using gmm.
        rescale_0_to_x: 100