latitude = 51.6616267
longitude = 8.6013146Handout (pvlib)
Potenzialanalyse für Dachflächen-Photovoltaik
Bestrahlungsstärke berechnen mit pvlib
Standort festlegen (Lokalisierung)
Legt die Position der Dachfläche anhand von geografischen Koordinaten fest.
Neigung und Ausrichtung ermitteln
Liest Neigungswinkel und Azimutwinkel aus der gewählten Dachfläche.
surface_tilt = 30
surface_azimuth = 90Zeitraum und Zeitzone definieren
Bestimmt Zeitzone und erzeugt eine Zeitreihe für den gewünschten Zeitraum.
from pytz import timezone
from pvlib.location import Location
import pandas as pd
tz = timezone('Europe/Berlin')
location = Location(latitude=latitude, longitude=longitude, tz=tz)
start = '2024-06-01'
end = '2024-06-02'
freq = '1h'
date_range = pd.date_range(start=start, end=end, freq=freq, tz=tz, inclusive='left')Sonnenstand berechnen
Berechnet den Sonnenstand für jede Stunde im angegebenen Zeitraum.
solar_position = location.get_solarposition(date_range)
solar_position.head(5)| apparent_zenith | zenith | apparent_elevation | elevation | azimuth | equation_of_time | |
|---|---|---|---|---|---|---|
| 2024-06-01 00:00:00+02:00 | 104.024246 | 104.024246 | -14.024246 | -14.024246 | 340.120688 | 2.174048 |
| 2024-06-01 01:00:00+02:00 | 106.075224 | 106.075224 | -16.075224 | -16.075224 | 354.352129 | 2.167611 |
| 2024-06-01 02:00:00+02:00 | 105.813555 | 105.813555 | -15.813555 | -15.813555 | 8.799992 | 2.161163 |
| 2024-06-01 03:00:00+02:00 | 103.265049 | 103.265049 | -13.265049 | -13.265049 | 22.910796 | 2.154702 |
| 2024-06-01 04:00:00+02:00 | 98.666027 | 98.666027 | -8.666027 | -8.666027 | 36.266856 | 2.148229 |
Bestrahlungsstärke bei klarem Himmel berechnen
Berechnet die Direkt-, Diffus- und Gesamtstrahlung bei klarer Atmosphäre.
clear_sky = location.get_clearsky(date_range)
clear_sky.head(5)| ghi | dni | dhi | |
|---|---|---|---|
| 2024-06-01 00:00:00+02:00 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 01:00:00+02:00 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 02:00:00+02:00 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 03:00:00+02:00 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 04:00:00+02:00 | 0.0 | 0.0 | 0.0 |
Globale Bestrahlungsstärke berechnen
Berechnet die Einstrahlung pro
from pvlib.irradiance import get_total_irradiance
irradiance = get_total_irradiance(
surface_tilt=surface_tilt,
surface_azimuth=surface_azimuth,
dni=clear_sky['dni'],
ghi=clear_sky['ghi'],
dhi=clear_sky['dhi'],
solar_zenith=solar_position['zenith'],
solar_azimuth=solar_position['azimuth']
)
irradiance.head(5)| poa_global | poa_direct | poa_diffuse | poa_sky_diffuse | poa_ground_diffuse | |
|---|---|---|---|---|---|
| 2024-06-01 00:00:00+02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 01:00:00+02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 02:00:00+02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 03:00:00+02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2024-06-01 04:00:00+02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Tagesleistung berechnen
Ermittelt die Gesamtstrahlung für die Dachfläche in Wattstunden.
surface_area = 30
energy_per_area = irradiance['poa_global'].sum()
total_energy = energy_per_area * surface_area
total_energynp.float64(202062.7064577622)
Energie in Kilowattstunden umrechnen
Wandelt die Energie in kWh um und rundet sie für die Ausgabe.
total_energy_kwh = total_energy / 1000
print('Tagesleistung:', total_energy_kwh.round(2), 'kWh')Tagesleistung: 202.06 kWh
Fachbegriffe & Einheiten
Bestrahlungsstärke (engl. Irradiance)
- Definition: Leistung der Sonnenstrahlung pro Fläche, die auf eine Oberfläche trifft
- Einheit: Watt pro Quadratmeter
- Symbol:
- Variable:
irradiance
Bestrahlungsenergie pro Fläche (engl. Solar Energy)
- Definition: Energie, die über einen Zeitraum pro Fläche eintrifft
- Einheit: Wattstunden pro Quadratmeter
- Symbol:
- Variable:
energy_per_area
Bestrahlungsenergie
- Definition: Energie auf Basis der Fläche, die tatsächlich bestrahlt wird
- Einheit: Wattstunden (Wh) oder Kilowattstunden (kWh)
- Symbol:
bzw. - Variable:
total_energy
Wiederverwendung
Zitat
@online{sparmann2025,
author = {Sparmann, Sören},
title = {Handout (pvlib)},
date = {2025-09-14},
url = {https://material.cdec.io/modul_2/submodules/03_photovoltaik/03_handout.html},
langid = {de}
}