MeteoSwiss / MeteoSwiss/ampycloud

[Bug]: ampycloud expects ceilometers to all be at the same altitude

Open
#147 0 comments 0 reactions 0 assignees View on GitHub
triage
Dominant language
Python
Stars
6
Forks
2
Avg merge
4d 10h
Merged PRs (30d)
4

Description

### Is there already an issue for this?

- [x] I found no existing issue for this bug.

### Describe the bug

Discussing with a colleague, I just realized that ampycloud indirectly assumes that all ceilometers are located on the ground, all at the same altitude.

If one (or more) ceilometer in a group is/are located significantly higher than the others (e.g. on top of a tall tower), ampycloud is unable to account for this fact when computing cloud covers for altitudes below the tallest ceilometer. For example, assuming a low and complete cloud cover with a single ceilometer peaking above it, ampcyloud would never report "OVC" because one ceilometer reports a clear sight line, even though the clouds are below it.

The manner to resolve this limitation is unclear to me at this point. It would likely require to compute the maximum theoretical number of hits per cloud layer as a function of altitude, accounting for the altitude above ground of the different ceilometers. The challenge will come from cases where the cloud hit distribution spans a small range of altitude above and below the elevated ceilometers.

This may not be straighforward, and will require a change to the user interface (because user will need to provide the altitude of all the ceilometers, which could be made optional and thus backward compatible, I suppose).

A first (easy) step would be to identify which ceilometers (if any) are currently not located on the ground at the airport of interest.

### Screenshot

N/A

### Steps to reproduce

N/A

### Relevant log output

```shell
N/A
```

### Environment

```markdown
N/A
```

### Code of Conduct

- [x] I agree to follow the ampycloud Code of Conduct.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Begin by locating the code that groups ceilometer hits and computes cloud coverage by altitude, then trace how ceilometer locations are provided to the package. Done means the calculation accounts for differing ceilometer altitudes and the required user-interface change is defined, including backward compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.