Skip to content

Population Cohorts

PopulationCohorts uses an explicit final cohort axis. Ages are physical quantities and population counts are dimensionless. Consumption is always selected from canonical age-indexed rates and interpolated by physical cohort age. Initial ages refer to the request's output_start_date; the same cohorts continue to age across all deposition events in that request.

import astropy.units as u
import numpy as np

from ecosys.domain.populations import PopulationCohorts

cohorts = PopulationCohorts(
    initial_age=np.array([5, 30]) * u.year,
    population=np.array([100, 250]) * u.dimensionless_unscaled,
)

Activity defaults to the canonical environment distribution from time_activity. A user may override it with an explicit dimensionless fraction array that names exact canonical environment IDs and sums to one over its final environment axis:

cohorts = PopulationCohorts(
    initial_age=np.array([5, 30]) * u.year,
    population=np.array([100, 250]) * u.dimensionless_unscaled,
    activity_fractions=np.array(
        [[0.32, 0.15, 0.53], [0.32, 0.15, 0.53]]
    ) * u.dimensionless_unscaled,
    environment_ids=("single_family_house", "outdoors_rural", "large_apartment_house"),
)