EBM is a bottom-up model that forecast estimates how area, energy need, heating systems and yearly energy use in the Norwegian building stock towards 2050
Project description
Introduction
EBM is a model used by the Norwegian Water Resources and Energy Directorates (NVE) to forecast energy use in the building stock. EBM is an open-source model developed and managed by NVE. The model allows the user to analyze how demographic trends and policy instruments impact the yearly energy use on a national and regional level. Energy use is estimated by a bottom- up approach, based on the building stock floor area, energy need and distribution of heating systems. The mathematical model is implemented in Python, with input and output files in Excel or CSV.
Getting Started
More information
Setting up virtual environment
It is recommended that you use ebm in a python virtual environment (venv).
For detailed instructions, see How to create and activate a virtual environment
1. Installation process
You can install the package in two main ways, depending on your needs:
Option 1: Install from PyPI (recommended for most users)
This is the simplest and most stable way to get the latest released version:
python -m pip install ebm
Option 2: Install from source (for development or contributions)
If you plan to modify the code or contribute to the project, clone the repository and install it in editable mode:
git clone https://github.com/NVE/ebm
cd ebm
Make sure your current working directory is the EBM root.
python -m pip install -e .
The command will install install all dependencies and ebm as an editable module.
2. Software dependencies
- pandas
- loguru
- openpyxl
- pandera
Dependecies will be automatically installed when you install the package as described under Installation process. See also requirements.txt
3. Create an input directory
Before running the model you need to create a directory with the necessary input files:
python -m ebm --create-input
4. Run the model
There are multiple ways to run the program. Listed bellow is running as a standalone program and running as a module. If running as a program fails due to security restriction, you might be able to use the module approach instead.
See also Running as code
Running as a module
python -m ebm
By default, the results will be written to the subdirectory output
For more information use --help
python -m ebm --help
usage: ebm [-h] [--version] [--debug] [--categories [CATEGORIES ...]] [--input [INPUT]] [--force] [--open]
[--csv-delimiter CSV_DELIMITER] [--create-input] [--horizontal-years]
[{area-forecast,energy-requirements,heating-systems,energy-use}] [output_file]
Calculate EBM energy use 1.2.15
positional arguments:
{area-forecast,energy-requirements,heating-systems,energy-use}
The calculation step you want to run. The steps are sequential. Any prerequisite to the chosen step will run
automatically.
output_file The location of the file you want to be written. default: output\ebm_output.xlsx
If the file already exists the program will terminate without overwriting.
Use "-" to output to the console instead
options:
-h, --help show this help message and exit
--version, -v show program's version number and exit
--debug Run in debug mode. (Extra information written to stdout)
--categories [CATEGORIES ...], --building-categories [CATEGORIES ...], -c [CATEGORIES ...]
One or more of the following building categories:
house, apartment_block, kindergarten, school, university, office, retail, hotel, hospital, nursing_home, culture, sports, storage_repairs.
The default is to use all categories.
--input [INPUT], --input-directory [INPUT], -i [INPUT]
path to the directory with input files
--force, -f Write to <filename> even if it already exists
--open, -o Open output file(s) automatically when finished writing. (Usually Excel)
--csv-delimiter CSV_DELIMITER, --delimiter CSV_DELIMITER, -e CSV_DELIMITER
A single character to be used for separating columns when writing csv. Default: "," Special characters like ; should be quoted ";"
--create-input
Create input directory containing all required files in the current working directory
--horizontal-years, --horizontal, --horisontal
Show years horizontal (left to right)
Running as code
from ebm.temp_calc import calculate_energy_use_wide
from ebm.model.file_handler import FileHandler
fh = FileHandler()
fh.create_missing_input_files()
df = calculate_energy_use_wide(ebm_input=fh.input_directory)
print(df)
License
This project is licensed under the MIT License. You are free to use, modify, and distribute the software with proper attribution.
Contributing
We welcome contributions! Please refer to the Contributing Guide for details on how to get started.
Documentation
Full documentation is available at the EBM User Guide: https://nve.github.io/ebm-docs/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ebm-1.0.2.tar.gz.
File metadata
- Download URL: ebm-1.0.2.tar.gz
- Upload date:
- Size: 122.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae87b85d069b6074e54b56d745ecffab37c6cb17547e247e690d75767bd656bf
|
|
| MD5 |
5f79585f304e7cd7a0c61ea44cfbf88a
|
|
| BLAKE2b-256 |
1561c53c18d9c4fdff90951a41dfde5c02b7a627e026fe915d76fa15da3c12c5
|
File details
Details for the file ebm-1.0.2-py3-none-any.whl.
File metadata
- Download URL: ebm-1.0.2-py3-none-any.whl
- Upload date:
- Size: 143.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04e1388904a8ff84a90a3f3f8d3c1cad99001500c0a308254505c6175b496c76
|
|
| MD5 |
5ca065c5906f774963c5299e3b59893a
|
|
| BLAKE2b-256 |
d45a794be9c7e54dd4344d8081e7453c8324ccbfb3019fd6f829c158d91f7804
|