Skip to main content

aridkpi

Tests Documentation PyPI version Python License: MIT DOI Code style: ruff

Climate-resilience KPIs for residential buildings in arid South American climates.

aridkpi is a Python package implementing the 5 core indicators of the KPI Comparison Matrix v1.0, aligned with the IEA EBC Annex 80 framework and extended for arid and semi-arid climates of South America (BWk/BSk Köppen-Geiger).

Designed at INAHE-CONICET Mendoza for the 2026–2029 research plan "Towards an integrated climate metric for building performance".


What it computes

KPI Description Units
iod Indoor Overheating Degree — magnitude of overheating during occupied hours °C·h
ccor Climate Change Overheating Resistivity — effectiveness of a passive strategy °C·h/°C
udh Unmet Degree Hours during outage (Passive Survivability) — habitability without power °C·h
energy_climate_sensitivity ΔE/ΔT — slope of EUI vs T_mean across SSP scenarios kWh·m⁻²·yr⁻¹/°C
max_thermal_change_rate dT/dt max — peak indoor thermal change rate °C/h

For each KPI: formal definition, assumptions, limitations in BWk/BSk and rationale for regional extension are documented in the KPI Comparison Matrix v1.0.


Installation

pip install aridkpi

With visualisation support:

pip install aridkpi[viz]

With EnergyPlus loader:

pip install aridkpi[energyplus]

Everything (recommended for development):

pip install aridkpi[all]

Quick start

import aridkpi

# 1. Generate synthetic data for a typical Mendoza house (2 weeks, January)
df = aridkpi.synth.synthetic_dataset(
    start="2026-01-15",
    days=14,
    typology="masonry_insulated",
    seed=42,
)

# 2. Compute the 5 CORE KPIs
overheating   = aridkpi.iod(df["T_in"], T_comf=26.0)
peak_rate     = aridkpi.max_thermal_change_rate(df["T_in"])
survivability = aridkpi.udh(
    df["T_in"],
    outage_start=df["T_ext"].idxmax().normalize(),
    window="72h",
    threshold=30.0,
)

print(f"IOD = {overheating:.1f} deg-C-h")
print(f"dT/dt max = {peak_rate:.2f} deg-C/h")
print(f"UDH 72h = {survivability:.1f} deg-C-h")

For a complete walkthrough see the tutorial notebook.


Loading real data

df = aridkpi.io.load_hobo_csv("logger_export.csv")
df = aridkpi.io.load_energyplus_csv("eplusout.csv")
df = aridkpi.io.load_generic_csv("my_data.csv", timestamp_col="datetime")

aridkpi.io.ensure_valid(df["T_in"], max_gap_minutes=15.0)

Comparing typologies

typologies = ["adobe", "masonry_no_insulation",
              "masonry_insulated", "lightweight"]
results = {}
for t in typologies:
    d = aridkpi.synth.synthetic_dataset(typology=t, days=14, seed=42)
    results[t] = {
        "IOD":       aridkpi.iod(d["T_in"], T_comf=26.0),
        "dT/dt_max": aridkpi.max_thermal_change_rate(d["T_in"]),
    }

import aridkpi.viz as viz
viz.plot_kpi_summary(results, title="Typology comparison")

Why an arid-climate-specific package?

The Annex 80 framework was calibrated on European temperate climates and North American humid heat waves. South American arid climates (BWk/BSk) present three departures that break key assumptions:

  • Diurnal range > 15 deg-C (vs ~8 in temperate Europe).
  • Mean RH < 40 percent during summer (vs > 60 in humid heat waves).
  • Solar radiation > 2200 kWh per m2 per year (vs ~1200 in central Europe).

The KPI Comparison Matrix documents these departures and the rationale for regional extensions; aridkpi implements the indicators with sensible defaults for the regional context and provides hooks (e.g. supplying an adaptive T_comf series) to replace those defaults with locally validated values.


How to cite

@software{barea_aridkpi_2026,
  author    = {Barea Paci, Gustavo Javier},
  title     = {aridkpi: climate-resilience KPIs for residential buildings
               in arid South American climates},
  year      = {2026},
  version   = {0.1.0},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.19986567},
  url       = {https://github.com/gbarea-INAHE/aridkpi}
}

Please cite both the package and the underlying KPI Comparison Matrix v1.0.


Documentation

Full documentation: https://gbarea-INAHE.github.io/aridkpi/

Local build:

pip install aridkpi[dev]
cd docs && make html

Development

git clone https://github.com/gbarea-INAHE/aridkpi.git
cd aridkpi
pip install -e .[dev]
pytest                    # run tests
ruff check .              # lint
mypy src/aridkpi          # type check

Tests run on Python 3.10, 3.11 and 3.12 (Linux, macOS, Windows) via GitHub Actions.


Acknowledgements

Developed at the Instituto de Ambiente, Hábitat y Energía (INAHE), CONICET Mendoza. The framework articulates collaboration with C. Filippín (CONICET — La Pampa), S. Flores Larsen (CONICET — Salta), F. Bre and V. Fachinotti (CIMEC — Santa Fe), C. Ganem and M. V. Mercado (INAHE — Mendoza), and A. Esteves (INAHE — Mendoza).

This software is the second deliverable of the 2026–2029 research plan "Hacia una métrica climática integrada del desempeño edilicio" presented to the Carrera del Investigador Científico of CONICET.


License

MIT (c) 2026 Gustavo Javier Barea Paci

Metadata

Release files for aridkpi 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aridkpi 0.1.1
File Size Uploaded Provenance
aridkpi-0.1.1.tar.gz 264.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aridkpi 0.1.1
File Interpreter ABI Platform
aridkpi-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 284.2 kB

Release files / aridkpi-0.1.1.tar.gz

Download URL aridkpi-0.1.1.tar.gz
Size 264.5 kB
Tags Source
SHA-256 checksum
How to use checksums
849a5e710abc7b636f427a3daab409237bd12ddfd4001800e2d21171fa77b8f2
BLAKE2b-256 checksum
How to use checksums
5408e0fba88279f7ebbed314925f8c23349fab7bb0f7f2bbd450eb21d829d23e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2026.

Transparency log

Release files / aridkpi-0.1.1-py3-none-any.whl

Download URL aridkpi-0.1.1-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52cbea9db497dd901bc5540c6ad11b8703dd7be893fa1d799ed5b75a9f7cde1c
BLAKE2b-256 checksum
How to use checksums
bbab75ab7da83fa2521a762d684efa84474edc5393854726d6ea091d42e1fc15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2026.

Transparency log

Security for aridkpi 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aridkpi-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page