CANOE Residential Sector — Data Processing Documentation

Comprehensive documentation of the data pipeline that converts upstream data sources into a Temoa-ready SQLite database for the Canadian Open Energy (CANOE) model's residential buildings sector.


Table of Contents

  1. Overview
  2. Pipeline Architecture
  3. Configuration and Setup
  4. Pre-Processing
  5. End-Use Subsectors (Existing Capacity and Demand)
  6. New Capacity
  7. Hourly Demand Profiles (ResStock)
  8. Emissions
  9. Post-Processing
  10. Known Assumptions and Limitations

1. Overview

Purpose

The CANOE residential sector aggregation tool automatically constructs a Temoa-compatible SQLite database representing the Canadian residential buildings sector. It dynamically downloads and processes data from multiple sources—including Natural Resources Canada (NRCan), U.S. EIA Annual Energy Outlook (AEO), NREL ResStock, and Statistics Canada—to construct a detailed bottom-up representation of end-use demands, technology stocks, and investment options.

What the Tool Produces

Scope

The model operates across:


2. Pipeline Architecture

The processing logic follows a structured orchestration handled primarily by residential_sector.py and all_subsectors.py:

1. setup.py             → Load configuration, fetch population projections and macroeconomic data, download AEO databases
2. instantiate_database → Wipe/create the target SQLite database using the standard Temoa schema
3. all_subsectors.py    → Orchestrator for sector-wide operations
   a. pre_process()     → Define core temporal scales, geographical regions, physical commodities, and fundamental technologies
   b. [Subsector Loop]  
      i.   space_heating.py → Compute existing demand, efficiencies, and stock capacities
      ii.  space_cooling.py → Compute existing demand...
      iii. water_heating.py → Compute existing demand...
      iv.  lighting.py      → Compute existing demand...
      v.   appliances.py    → Compute existing demand...
   c. aggregate_dsd()   → Construct normalized Demand Specific Distributions utilizing NREL ResStock
   d. aggregate_emissions() → Map US EPA emission factors to physical combustion
   e. post_process()    → Cross-check data consistency, write vintage chronologies, output bibliography references

3. Configuration and Setup

3.1 Configuration File (params.yaml)

Control parameters define the macro structure of the final database:

Parameter Default Description
period_step 5 Integer spacing between future projection years
model_periods [2025, ..., 2050] Planning sequence periods
base_year 2022 The historical calibration point for empirical data pulls (NRCan)
weather_year 2018 The temporal anchor matching ResStock hourly profiles
furnace_fans Flag Specifies if electricity consumption for furnace fans is explicit
dsd_tolerance 0.02 Minimum threshold for clipping extremely small hourly demand fractions

3.2 Definition Maps (CSVs)


4. Pre-Processing

Data structures strictly requisite for Temoa's operational matrices are generated:


5. End-Use Subsectors (Existing Capacity and Demand)

The five primary Python modules (space_heating.py, space_cooling.py, water_heating.py, lighting.py, and appliances.py) execute slightly different methodologies dependent on available data:

5.1 Base Demand and Efficiency (NRCan)

5.2 Future Demand Scaling (Population)

Unlike the commercial sector which references GDP, the residential sector inherently relies on demographic growth to project absolute energy boundaries forwards into model periods.

5.3 Existing Capacity Mapping

Base year hardware stock quantities are mapped from NRCan's database (e.g., Table 21 for Heating System Stock by building type). Rather than dumping this entire volume into the base year, CANOE functionally distributes these unit counts linearly backward across feasible historical vintages derived from the equipment lifetime.


6. New Capacity

Future capital investments depend rigidly upon techno-economic metrics from the U.S. EIA Annual Energy Outlook (AEO) Residential Module (rsmess.xlsx).


7. Hourly Demand Profiles (ResStock)

A crucial aspect for system capacity adequacy is projecting exactly when the calculated annual end-use energy demand occurs throughout the year.


8. Emissions

If activated via include_emissions in params.yaml:


9. Post-Processing


10. Known Assumptions and Limitations

  1. Proxying Economics and Technologies: Like the commercial sector, the residential methodology extensively co-opts the EIA AEO frameworks assigning proxy USA-level geographic divisions to Canadian Provinces. Nuances between US manufacturing stock, Canadian regional subsidies, and specific cross-border technological adoptions are smoothed.
  2. Growth Trajectory Staticism: Projections map linearly to population size without complex non-linear elasticity constraints based on shrinking floor spaces, densification adjustments, or changing consumer welfare.
  3. ResStock Weather Generalization: Transferring localized US meteorological responses linearly against gross-level provincial weather metrics masks intense localized microclimates (especially inside massively varied topographies like BC or large geographic footprints like Ontario).
  4. Lighting Load Assumptions: Default Annual Capacity factors for lighting lean on statically defined load estimates (e.g., rigid hourly usage values per bulb), failing to perfectly capture shifting diurnal lighting behaviors tied fundamentally to work-from-home shifts or smart-home penetration.

CANOE Residential Sector — Data Sources Catalog

1. Data Source Summary

Data Type Primary Source Granularity Update Frequency
Existing Demand/Fuel NRCan CEUD Regional / Annual Annual
Future Demand Scaling Statistics Canada Provincial / Annual Annual
Tech Shares & Costs U.S. EIA AEO US Census Div. Annual
Hourly Demand Shapes NREL ResStock Archetype / Hourly Periodic upgrades
Emissions Factors US EPA GHG Hub Fuel Type Annual
Weather Mapping Renewables Ninja Geo-Coordinates None (static year)

2. NRCan Comprehensive Energy Use Database (CEUD)

3. U.S. EIA Annual Energy Outlook (AEO) Residential Module

4. Statistics Canada

5. NREL ResStock

6. US EPA GHG Emission Factors Hub

7. Renewables Ninja

8. Update Procedures (Checklist)

As defined natively by annual_update_checklist.txt:

  1. Latest AEO NEMS data: Download and replace rsmess.xlsx in input_files.
  2. Setup.py indexing: If AEO altered their table outputs, update the row/col indexing arrays inside setup.py.
  3. Review Config: Modify configuration data years and update relevant citation string variables in params.yaml.
  4. Purge Cache: Delete all objects within the local data_cache/ folder forcing the routine to retrieve fresh JSON/ZIP artifacts from exterior endpoints (StatCan, ResStock).
  5. Execution Test: Generate the database validating the resulting tables against proper Temoa-SQLite structural definitions. Ensure no orphan data components appear.