ecmwf / ecpoint-calibrate

Interactive GUI (developed in Python) for calibration and conditional verification of numerical weather prediction model outputs.
GNU General Public License v3.0
20 stars 8 forks source link

Messages in the PDT about the forecasts used in the computations #175

Closed FatimaPillosu closed 3 years ago

FatimaPillosu commented 3 years ago

Hi @onyb,

we just had a discussion with the rest of the team on which forecasts are used in the computation of the point data table. I said that we were specifying in the log files why we were using some forecasts instead of others, but I run the software to be super sure and now we don't print anymore the reason why we use a specific forecast rather than another one. Now that I see it, I seem to remember it was because we wanted to make the log file smaller. But given these discussions with the team, I think it is important that these reasons are introduced.

I put here a few examples of the criteria to choose a forecast rather than another. I add as well the computations to be extremely clear on what I'm talking about, although I'm sure they have correctly implemented. Let's assume that there are four model runs per day (at 00, 06, 12, 18 UTC), so BaseTimeDisc = 6.

if StepS < SpinUp Forecast within the spin up window. The following forecast is considered instead:

if StepS <= (BaseTimeDisc + SpinUp) The following shorter range forecast is available:

To these messages, then we should have these two extra ones:

If one of the new forecasts is not in the range of forecasts in the database, a message should appear Forecast not available in the input database

If a forecast has been already used (because we cannot repeat forecasts) Forecast already used

We can discuss this at the next meeting, but please, it would be good if you could have a look into this so we can draft the documentation for this together, and include the location of the script that computes the point data table in the documentation. The thing is it would be good if users could have a direct look to what the code does, at least for the computations.

Cheers,

Fatima

onyb commented 3 years ago

@FatimaPillosu Regarding if StepS < SpinUp and if StepS <= (BaseTimeDisc + SpinUp), I think we changed the logic back in 2019, so these conditions do not exist anymore, unless I'm mistaken. Currently, we display the following in the logs (note that stuff inside {} are populated during runtime:

The start step {step_info} is considered between 'LimSU' (to avoid the spin-up window),
and 'IntBT+(LimSU-1)' (to consider the shortest range forecast available).

Therefore, {step} will range between t+{spinup_limit} and t+{model_interaval + spinup_limit - 1}

Regarding the last two messages, they are already displayed as warnings (although with different wording). The issue here appears to be that warnings are not displayed by default. I'll promote them to regular log messages, and adjust the wording as per your comment.

onyb commented 3 years ago

Slightly changed the wording in v0.30.0.