Skip to main content
Skip table of contents

Cloud Height and Sky Condition

For many airports and other weather stations, a ceilometer is used to measure the height of the cloud base above the weather station. The ceilometer works by shooting a laser pulse directly upwards and then measures the time it takes for the pulse to return. This time is then used to calculate the distance to the clouds overhead. When there are multiple layers of clouds in the atmosphere, the ceilometer will detect multiple returned pulses due to the varied return times and it will differentiate these as different cloud layers. Because the ceilometer is limited to only detecting the clouds directly above it, they generally use time-averaged values to report the cloud coverage (or “sky condition”).

For stations that report cloud height and sky condition observations, the Weather API will return this data in the variables cloud_layer_1_code, cloud_layer_2_code, and cloud_layer_3_code. On our legacy MesoWest website these variables were named, respectively, CHC1, CHC2, CHC3.

The decoded cloud layer heights (above ground level) and sky condition are available in the derived variables cloud_layer_1, cloud_layer_2 and cloud_layer_3. These variables use a dictionary structure to report cloud height and sky condition, such as:

cloud_layer_1_value_1d: {
    date_time: "2020-07-01T18:35:00Z",
    value: {
        sky_condition: "broken",
        height_agl: 457.21

Note that height_agl is returned in meters by default. If a user defines units=height|ft or units=english, then height_agl will be returned in feet.

The cloud layer with greatest sky coverage is also included in the derived weather_summary variable. The weather condition will be returned for weather_summary if present, and if a weather condition is not present cloud layers will be returned.

The cloud layer codes are decoded to provide cloud height and sky condition using the following logic. The last number returned always gives the sky condition code, which are the following:

0 = missing
1 = clear
2 = scattered
3 = broken
4 = overcast
5 = obscured
6 = thin scattered
7 = thin broken
8 = thin overcast
9 = thin obscured

All digits except the last refer to the cloud height, which is the height given in units of hundreds of feet. That unique unit comes from aviation and other similar fields which historically established the standard practice to express flight level in units of hecto-feet or hundreds of feet.

Below are some examples to illustrate what these variables mean:

  • cloud_layer_1_code = 222
    Cloud layer #1 is at a height of 22 hundreds of feet = 2200 ft.
    The last digit 2 indicates the sky condition scattered.

  • cloud_layer_2_code = 807 Cloud layer #2 is at a height of 80 hundreds of feet = 8000 ft.
    The last digit 7 indicates the sky condition thin broken.

  • cloud_layer_3_code = 2504 Cloud layer #3 is at a height of 250 hundreds of feet = 25000 ft.
    The last digit 4 indicates the sky condition overcast.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.