This repo (or folder) contains the onboarding workflow and activities for getting productive with CANOE/TEMOA, the CANOE app + dataset, and the representative periods workflow.
- Download the dataset + application and clone the representative periods repo.
- Generate a starter model for New Brunswick + Nova Scotia using the app (Current Measures, low resolution).
- Run representative periods (4 representative periods) to prepare outputs for follow-on activities.
- Complete a set of modeling activities:
- Add industry (IND) to the model
- Add technology groups + renewable policy constraints
- Add Direct Air Capture (DAC) + emissions limits
- Validate/fix efficiency assignment logic (OutputFlowIn)
You must have the CANOE/TEMOA codebase available and checked out to the correct branch:
- Repo:
CANOE-main/temoa - Branch:
1.0.0-dev-operator
Example:
git clone <CANOE_TEMOA_REPO_URL>
cd temoa
git checkout 1.0.0-dev-operatorThe dataset + application are stored on OneDrive and require access.
Download the correct application build for your OS (Windows vs macOS).
Contact: canoe-support@googlegroups.com
Representative periods repo: CANOE-main/representative_periods
git clone <REPRESENTATIVE_PERIODS_REPO_URL>- Open the application.
- Ensure Scenario = “Current Measures”.
- Select Low resolution for:
- New Brunswick
- Nova Scotia
- Export / name the database something meaningful (example:
CANOE_ONB.sqlite).
✅ Output: a SQLite model database (e.g., CANOE_ONB.sqlite)
- Copy/move your generated model database into the
representative_periodsworkflow directory (or point the workflow to it). - Configure the workflow to use 4 representative periods.
- Run the representative periods code and generate outputs for the next activities.
✅ Output: representative-period outputs for downstream activities
Goal: Implement an annual industry technology so that both New Brunswick and Nova Scotia can meet industrial demand.
- Integrate industry into Nova Scotia and New Brunswick.
- Ensure the implementation follows the breakdown shown in the onboarding schematics/figure.
- Validate everything is correct (and the model runs).
- Assume efficiency = 1 (simplifies accounting).
Limittechinputsplitannualis a fraction (10% =0.1) and the sum cannot exceed 1.- For similar technologies, tags like
unlim_capandannualshould be set to1.
Goal: Create a technology group for renewables and enforce a renewable share constraint for each period in NB + NS.
- Create an appropriate technology group for renewable electricity.
- Create constraints for the renewable electricity scenario.
- Confirm the model runs successfully afterward.
- Use the
RPSrequirementtable. - Choose appropriate renewable technologies (example used previously: hydro, wind, solar).
RPSrequirementis a percentage/fraction value.
Scenario: Both NB and NS set limits on emission activity: 5,000 kTonnes for each province by 2050, achievable via DAC.
- Create the emissions constraint for the target.
- Implement the DAC technology with correct information.
- Test feasibility and confirm the model runs.
- Emissions constraint goes into
LimitEmission. - Create a waste commodity for captured CO₂.
- If infeasible, check
EmissionActivitysign: DAC should be negative emissions.
Goal: Validate/fix how mass/energy balances are translated into the OutputFlowIn table across test systems of varying complexity.
- Review the balance spreadsheet (expected input→output relationships and values).
- Run the provided test systems that generate DB outputs.
- Compare
OutputFlowInto the spreadsheet case-by-case. - Diagnose issues (missing rows, wrong pairings, double-counting, scaling errors).
- Update the implementation, then re-run all cases to confirm nothing regresses.
- Start with the simplest 1-input/1-output case, then move to multi-input/multi-output cases.
- Note: “for import and FINAL should be 1”.
If you want to sanity-check tables directly:
-- Confirm renewables policy rows
SELECT * FROM RPSrequirement;
-- Confirm emissions constraint rows
SELECT * FROM LimitEmission;
-- Inspect OutputFlowIn results
SELECT * FROM OutputFlowIn LIMIT 200;- Model infeasible after policy/emissions changes
- Re-check that policy constraints are fractions (e.g., 40% = 0.4), not “40”.
- For DAC, ensure emissions are negative and the captured-CO₂ waste commodity exists.
- Industry doesn’t meet demand
- Ensure the IND technology is present for both regions and all required tables are filled consistently.
- Re-check
Limittechinputsplitannualtotals (must not exceed 1).