ampycloud 2.1.0 stars watch doi

copyright license pypi last-commit issues pytest-weekly

ampycloud demo diagnostic diagram

Fig. 1 The ampycloud diagnostic diagram for its canonical mock dataset.

Welcome to the ampycloud documentation

  • What: ampycloud refers to both a Python package and the algorithm at its core, designed to characterize cloud layers (i.e. sky coverage fraction and base height) using ceilometer measurements (i.e. cloud base hits), and derive a corresponding METAR-like message. A visual illustration of the algorithm is visible in Fig. 1.

    Note

    At the moment, ampycloud cannot use backscatter profiles to derive cloud base hits independantly.

    Note

    ampycloud does not challenge the quality/nature of the cloud base hits that it is being provided. It trusts them all fully and equally. The capacity of the algorithm to provide an accurate assessment of cloud layers above an aerodrome is thus directly limited by the ability of ceilometers to report clouds up to the aerodrome’s Minimum Sector Altitude in the first place.

  • Where: ampycloud lives in a dedicated repository under the MeteoSwiss organization on Github, where you can submit all your questions and bug reports. See Troubleshooting for more details.

  • Who: ampycloud is being developed at MeteoSwiss. See also the code’s license & copyright information.

  • How: a scientific article describing the ampycloud algorithm is published here. This article will be complemented by these webpages, that contain the official documentation of the ampycloud Python package.

Scope of ampycloud

Important

ampycloud is a key dependency of the automatic METAR-generating code of MeteoSwiss, which requires all its dependencies to be robust and stable.

This has the following implications for ampycloud:

  • The scope of ampycloud will remain limited to the automatic processing of cloud base hits derived using ceilometers. Furthermore, ampycloud does not process Vertical Visibility (VV) measurements. Depending on the ceilometer type, the user will need to decide how to treat VV hits before passing them to ampycloud, e.g. by removing them or by converting them to cloud base heights.

  • Note that regulation says that “if there are no clouds of operational significance and no restriction on vertical visibility and the abbreviation ‘CAVOK’ is not appropriate, the abbreviation ‘NSC’ should be used” (AMC1 MET.TR.205(e)(1)). ampycloud cannot decide whether a ‘CAVOK’ is appropriate, and will therefore always return ‘NSC’ if no clouds of operational significance are found. If no clouds are detected at all by the ceilometers, ampycloud will return ‘NCD’. Importantly, users should bear in mind that ampycloud cannot handle CB and TCU cases, such that any ‘NCD’/’NSC’ codes issued may need to be overwritten by the user in certain situations.

  • ampycloud can evidently be used for R&D work, but the code itself should not be seen as an R&D platform.

  • Contributions via Pull Requests are always welcome (and appreciated !), but will only be considered if they:

    • remove a bug, and/or

    • improve the usability of ampycloud without altering the quality of the results, and/or

    • demonstrate a significant improvement in the quality of the results.

  • The ingestion of external contributions may be delayed to allow for a careful, internal verification that they do not affect the MeteoSwiss operational chain that relies on ampycloud.

  • ampycloud is designed (and intended to be used) as a regular Python module. As such, it is not meant to interact (directly) with other programming languages. The implementation of a complex API to interact with “the outside World” (e.g. to feed data to ampycloud using the JSON format) is not foreseen.

  • ampycloud is not meant to handle/generate/derive CB/TCU codes. The module deals with “basic” cloud layers only.

Table of contents