# Verschattung & Horizont

pvnode unterstützt mehrere Verschattungsmechanismen, die kombiniert werden können. Die gesamte Verschattung wird automatisch während der Simulation angewendet – Sie konfigurieren lediglich die Parameter.

## Geländebasierte Horizontverschattung

Setzen Sie `terrain_based_horizon_coverage=true`, um die automatische Fernverschattung auf Basis hochauflösender Geländedaten (25 m in Europa, 30 m global) zu aktivieren. Dies berücksichtigt Berge, Hügel und andere Geländemerkmale, die das direkte Sonnenlicht bei niedrigen Sonnenwinkeln blockieren.

Keine weitere Konfiguration erforderlich – das Horizontprofil wird aus den Standortkoordinaten abgeleitet.

## Konfiguration von Himmelshindernissen

Verwenden Sie `sky_obstruction_config`, um nahegelegene Hindernisse zu definieren, die Teile des Himmelsdoms blockieren (Gebäude, Bäume, Wände). Jedes Hindernis wird durch drei durch Doppelpunkte getrennte Werte definiert:

| Wert | Beschreibung |
|---|---|
| Start-Azimut | Winkel in Grad von Nord, an dem das Hindernis beginnt |
| End-Azimut | Winkel in Grad von Nord, an dem das Hindernis endet |
| Elevation | Maximaler Winkel über dem Horizont, den das Hindernis abdeckt |

Mehrere Hindernisse werden mit Unterstrichen `_` verbunden. Sie können bis zu 10 definieren.

**Beispiele:**

```
# Nordost-Hindernis, Azimut 0° bis 90°, 20° hoch
sky_obstruction_config=0:90:20

# Zwei Hindernisse: NO-Segment + SW-Segment
sky_obstruction_config=0:90:20_180:270:30
```


## Reihenverschattung (Bodenbedeckungsgrad)

Der Parameter `ground_coverage_ratio` steuert die Reihenverschattung bei bodenmontierten Anlagen. Er ist definiert als:

```
GCR = Modullänge / Reihenabstand
```


- `GCR = 0` bedeutet keine Reihenverschattung (Standard)
- `GCR = 0.5` bedeutet, dass die Module die Hälfte der Grundfläche bedecken
- Höhere Werte = engerer Abstand = mehr Verschattung

Das zweite Array hat seinen eigenen Parameter: `second_array_ground_coverage_ratio`.

## Saisonale Verschattungskonfiguration

Verwenden Sie `shading_config`, um tages- und jahreszeitliche Verschattungsmuster auf dem PV-Array zu definieren. Das Format verwendet vier Ganzzahlen pro Zeitblock (eine pro Jahreszeit), getrennt durch Doppelpunkte. Jede Ganzzahl repräsentiert die Verschattung als Prozentsatz × 10.

**Drei Zeitblöcke, verbunden mit Unterstrichen:**

| Block | Tageszeit |
|---|---|
| 1. | Morgen (6–10 Uhr) |
| 2. | Mittag (11–14 Uhr) |
| 3. | Nachmittag/Abend (15–20 Uhr) |

**Vier Werte pro Block:** Winter, Frühling, Sommer, Herbst.

**Beispiel:**

```
shading_config=7:2:3:1_1:1:0:0_0:0:0:0
```


Das bedeutet:
- **Morgen:** 70 % Verschattung im Winter, 20 % Frühling, 30 % Sommer, 10 % Herbst
- **Mittag:** 10 % im Winter und Frühling, keine im Sommer und Herbst
- **Nachmittag:** Keine Verschattung in keiner Jahreszeit

Das zweite Array verwendet `second_array_shading_config`.

## Verschattung auf String-Ebene

Für eine detaillierte Verschattungsanalyse auf String-Ebene unterstützt pvnode die Konfiguration der Verschattung pro String innerhalb des PV-Arrays. Die vollständige Parameterspezifikation finden Sie in der [API-Referenz](/docs/api).