Tip
Need help? Please let us know in the SUEWS Community.
Please report issues with the manual on GitHub Issues (or use Report Issue for This Page for page-specific feedback).
Please cite SUEWS with proper information from our Zenodo page.
6.3.7.3. supy.util.attribute_t2#
- supy.util.attribute_t2(df_output_A: DataFrame, df_output_B: DataFrame, df_forcing_A: DataFrame, df_forcing_B: DataFrame, hierarchical: bool = True, min_flux: float = 0.1) AttributionResult[source]#
Decompose T2 differences between two SUEWS scenarios.
The difference in 2m air temperature is attributed to: - Flux changes (Q_H, with optional breakdown into Q*, Q_E, dQ_S, Q_F) - Resistance changes (turbulent exchange efficiency) - Air property changes (rho * c_p)
- Parameters:
df_output_A (pd.DataFrame) – SUEWS output DataFrame for scenario A (reference/baseline)
df_output_B (pd.DataFrame) – SUEWS output DataFrame for scenario B (modified/test)
df_forcing_A (pd.DataFrame) – Forcing DataFrame for scenario A. Must contain ‘Tair’, ‘RH’, ‘pres’ columns.
df_forcing_B (pd.DataFrame) – Forcing DataFrame for scenario B. Must contain ‘Tair’, ‘RH’, ‘pres’ columns.
hierarchical (bool, optional) – If True, decompose flux contribution into budget components (Q*, Q_E, dQ_S, Q_F). Default True.
min_flux (float, optional) – Minimum flux threshold (W/m2) for resistance calculation. Timesteps with abs(Q_H) < min_flux are flagged. Default 0.1.
- Returns:
Container with contributions timeseries, summary statistics, and metadata.
- Return type:
Examples
Compare baseline vs. green infrastructure scenario:
>>> result = attribute_t2(df_output_baseline, df_output_green, ... df_forcing_A=df_forcing, df_forcing_B=df_forcing) >>> print(result) T2 Attribution Results ======================================== Mean delta_T2: -1.47 degC
6.3.7.3. Component Breakdown:#
flux_total : -0.89 degC (60.5%) resistance : -0.42 degC (28.6%) air_props : -0.16 degC (10.9%)
>>> result.plot(kind="bar") # Visualise contributions