Forecasts#

About#

For computing “forecasts”, phenodata implements a naive approach, which should be taken with a grain of salt. The computation is based on the Jultag field from observation data of the previous years.

Details#

The implementation can be found in phenodata.dwd.pheno.DwdPhenoDataClient.get_forecast, and looks roughly like this:

# Get current observations.
observations = self.get_observations()

# Group by station, species and phase.
# https://pandas.pydata.org/pandas-docs/stable/groupby.html
grouped = observations.groupby(["Stations_id", "Objekt_id", "Phase_id"])

# Aggregate mean "day of the year" value of the "Jultag" values for each group.
forecast = grouped["Jultag"].mean().round().astype(int).to_frame()

Usage#

Let’s outline a few invocations by example.

Basic#

Acquire observation data from annual reporters in “Berlin-Dahlem” and “München-Pasing” for certain species, and forecast them to the current year using grouping and by computing the “mean” value of the Jultag field. Sort result by Station, Datum, and Spezies:

phenodata forecast \
    --source=dwd --dataset=annual --partition=recent \
    --filename=Hasel,Schneegloeckchen,Apfel,Birne \
    --humanize --station=dahlem,pasing --sort=Station,Datum,Spezies

Humanized output#

Specific events#

Forecast of “beginning of flowering” observations at station “Berlin-Dahlem”. Use all species of the “primary group”: “hazel”, “snowdrop”, “goat willow”, “dandelion”, “cherry”, “apple”, “winter oilseed rape”, “black locust”, and “common heather”. Sort by date, ascending. Rendered in reStructuredText table format:

phenodata forecast \
    --source=dwd --dataset=annual --partition=recent \
    --filename=Hasel,Schneegloeckchen,Sal-Weide,Loewenzahn,Suesskirsche,Apfel,Winterraps,Robinie,Winter-Linde,Heidekraut \
    --station=dahlem --phase="beginning of flowering" \
    --humanize \
    --sort=Datum \
    --format=tabular:rst

Event sequence for each species#

Forecast of all observation types at station “Berlin-Dahlem”, using all species of the “primary group” (dito). Sort by species and date, ascending. Display labels in German language:

phenodata forecast \
    --source=dwd --dataset=annual --partition=recent \
    --filename=Hasel,Schneegloeckchen,Sal-Weide,Loewenzahn,Suesskirsche,Apfel,Winterraps,Robinie,Winter-Linde,Heidekraut \
    --station=dahlem \
    --humanize --language=german \
    --sort=Spezies,Datum