Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eco_ppp — Economic photovoltaic potential (Python)

eco_ppp models economic PV potential for buildings from vector geometries: roof outlines, roof segments (with azimuth), and superstructures. It places PV modules, simulates generation (PVGIS), building electricity use (standard load profiles), battery operation, and computes self-consumption, self-sufficiency, LCOE, and payback.

This repository contains the core pipeline (eco_ppp/) and an example script that runs the full workflow on sample GeoJSON data.

Requirements

  • Python 3.9 (recommended via Conda / Miniconda or Mambaforge)
  • Internet access on the first run per building/location, so the pipeline can call the PVGIS API and cache results (see below)

Quick start

1. Clone the repository

git clone https://github.com/TUMFTM/ECOPPP.git eco_ppp
cd eco_ppp

2. Create and activate the Conda environment

From the repository root (the folder that contains environment.yml):

conda env create -f environment.yml
conda activate eco_ppp

If the environment already exists and you want to recreate it:

conda env remove -n eco_ppp -y   # optional
conda env create -f environment.yml
conda activate eco_ppp

3. Working directory

Run commands from the repository root (the directory that contains environment.yml and the eco_ppp package folder). The example script adds this directory to sys.path automatically.

For other entry points (e.g. python -c "import eco_ppp"), set:

export PYTHONPATH="$(pwd)"

4. Example input data

The example expects these paths (relative to the repo root):

File Purpose
data/inputs/geodata_example/gdf_outlines_example.json Building footprints / roof outlines (EPSG:28992)
data/inputs/geodata_example/gdf_segments_example.json Roof segments with azimuth
data/inputs/geodata_example/gdf_superstructures_example.json Superstructures (dormers, etc.)
data/inputs/standard_load_profiles_VDEW.xls VDEW-style standard load profiles (Excel; used for electricity demand)

The example GeoJSON files under data/inputs/geodata_example/ and data/inputs/standard_load_profiles_VDEW.xls (VDEW standard load profiles) are included in this repository.

The three GeoJSON files can use building_id or image_id as the common key; the example copies image_idbuilding_id when needed.

Note: To use a different load-profile workbook, place it under data/inputs/ and update the path in eco_ppp/paths.py (PATHS.FP_STANDARD_LOAD_PROFILES).

5. Run the example

Always run from the repository root (so path resolution in eco_ppp/paths.py matches your data layout):

cd /path/to/eco_ppp
conda activate eco_ppp
python examples/run_example.py

The script:

  • Loads the example GeoJSONs and prints a short summary (outlines, segments, superstructures, number of buildings).
  • Runs the pipeline for every building that has both an outline and at least one roof segment.
  • Prints per-building metrics and aggregated portfolio statistics at the end.

First run: Each building triggers PVGIS (Joint Research Centre) for solar radiation data. Responses are cached under:

data/inputs/PVGIS_cache/

So the first run can take noticeably longer; later runs reuse the cache and are faster. Keep network access enabled until caches exist.

Project layout (core)

eco_ppp/                 # Python package: main pipeline, energy & economic models
examples/run_example.py  # End-to-end example
environment.yml          # Conda environment
data/inputs/             # Inputs (GeoJSON, load profiles, PVGIS cache)

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file in the repository root for the full text.

Citation

If you use this software in research, please cite the dissertation it relates to and this repository.

Dissertation

Krapf, S. M. (2026). Aerial Image-Based Photovoltaic Potential Analysis (Doctoral dissertation, TUM School of Engineering and Design, Technische Universität München). Chair of Automotive Technology (Prof. Lienkamp).

Software (eco_ppp)

Repository: https://github.com/TUMFTM/ECOPPP
License: Apache License 2.0 (see LICENSE).

BibTeX (example)

@phdthesis{Krapf2026AerialPV,
  author = {Krapf, Sebastian Michael},
  title  = {Aerial Image-Based Photovoltaic Potential Analysis},
  school = {Technische Universit{\"a}t M{\"u}nchen},
  year   = {2026},
  type   = {Dissertation},
  url    = {https://nbn-resolving.org/urn:nbn:de:bvb:91-diss-20260205-1781907-0-4}
}

@software{ECOPPP2026,
  author = {Krapf, Sebastian Michael},
  title  = {ECOPPP: Economic photovoltaic potential (Python)},
  year   = {2026},
  url    = {https://github.com/TUMFTM/ECOPPP},
  license = {Apache-2.0}
}

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages