season#

See season for the full API reference.

Basic usage#

from pyedautils.data_prep.season import get_season
from datetime import datetime

print(get_season(datetime(2024, 7, 15)))   # "Summer"
print(get_season(datetime(2024, 1, 10)))   # "Winter"
print(get_season(datetime(2024, 4, 5)))    # "Spring"

Meteorological vs. astronomical seasons#

# Meteorological: fixed dates (Mar 1, Jun 1, Sep 1, Dec 1)
print(get_season(datetime(2024, 3, 15), tracking_type="meteorological"))  # "Spring"

# Astronomical: based on equinox/solstice (default)
print(get_season(datetime(2024, 3, 15), tracking_type="astronomical"))    # "Winter"

Custom season labels (e.g. German)#

get_season(datetime(2024, 7, 15), labels=["Frühling", "Sommer", "Herbst", "Winter"])
# "Sommer"

Southern hemisphere#

get_season(datetime(2024, 7, 15), hemisphere="south")
# "Winter" (July is winter in the southern hemisphere)

Vectorized with pandas#

import pandas as pd

dates = pd.date_range("2024-01-01", periods=365, freq="D")
df = pd.DataFrame({"date": dates})
df["season"] = get_season(df["date"])
print(df["season"].value_counts())