> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plantpredict.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sky Diffuse Shading

export const GroundCoverageRatio = () => <Tooltip tip="Ratio of collector width to row pitch, typically 0.2–0.5 for single-axis trackers.">
    ground coverage ratio
  </Tooltip>;

export const SkyDome = () => <Tooltip tip="Hemispherical view of the sky from a surface; source of diffuse irradiance.">
    sky dome
  </Tooltip>;

export const ViewFactor = () => <Tooltip tip="Fraction of radiation leaving one surface that reaches another; determined by geometry.">
    view factor
  </Tooltip>;

## Summary

Sky diffuse shading accounts for the reduction in sky diffuse irradiance caused by neighboring array rows blocking part of the <SkyDome />. Unlike beam shading, which depends on sun position, sky diffuse shading losses are determined primarily by array geometry (<GroundCoverageRatio />, tilt angle). For fixed-tilt systems, these losses remain relatively constant throughout the day; for tracking systems, they vary with tracker rotation angle.

This model uses a 2D representation of the PV array, analyzing geometry in the plane perpendicular to the row axis.

## Inputs

| Name                  | Symbol    | Units   | Description                                       |
| --------------------- | --------- | ------- | ------------------------------------------------- |
| **Module Tilt Angle** | $\beta_m$ | degrees | Tilt angle of module from horizontal              |
| **Row-to-Row Pitch**  | $p$       | m       | Horizontal distance between tracker rotation axes |
| **Collector Width**   | $\ell_m$  | m       | Tracker bay width perpendicular to rotation axis  |
| **Cross-Axis Slope**  | $\beta_c$ | degrees | Ground slope perpendicular to tracker axis        |

***

## Outputs

| Name                           | Symbol      | Units | Description                                              |
| ------------------------------ | ----------- | ----- | -------------------------------------------------------- |
| **Sky Diffuse Shading Factor** | $U_{shd,D}$ | —     | Fraction of sky diffuse irradiance reaching module (0-1) |

***

## Detailed Description

A tilted module in an array can only "see" part of the sky hemisphere—the rest is blocked by the adjacent row in front. The sky diffuse shading factor quantifies this reduction by comparing the visible sky area to what an isolated module would see.

This calculation is purely geometric—IAM effects on sky diffuse irradiance are handled separately in the IAM model.

### Step 1: Calculate Blocking Angle

The blocking angle $\psi$ represents the elevation angle from the observation point (center of the module) to the top of the adjacent row in front. For arrays on sloped terrain with cross-axis slope $\beta_c$:

$$
\psi = \text{atan}\left( \frac{\ell_m \sin(\beta_m) + 2p \tan(\beta_c)}{2p - \ell_m \cos(\beta_m)} \right)
$$

For flat terrain ($\beta_c = 0$), this reduces to:

$$
\psi = \text{atan}\left( \frac{\ell_m \sin(\beta_m)}{2p - \ell_m \cos(\beta_m)} \right)
$$

The blocking angle is clamped to non-negative values: $\psi = \max(\psi, 0)$. The cross-axis slope modifies the effective blocking:

* **Uphill slope** ($\beta_c > 0$, front row higher): increases $\psi$, more blocking
* **Downhill slope** ($\beta_c < 0$, front row lower): decreases $\psi$, less blocking

Backward diffuse shading (from the row behind when $-\beta_c > \beta_m$ on downhill slopes) is not currently implemented.

### Step 2: Calculate Sky View Factor

The sky view factor with blocking is:

$$
F_{sky} = \frac{1 + \cos(\beta_m + \psi)}{2}
$$

This is the standard isotropic sky view factor formula, where $F_{sky} = 1$ for a horizontal surface with no blocking ($\beta_m = \psi = 0$).

### Step 3: Calculate Shading Factor

The shading factor is the ratio of actual sky view to the baseline (infinite spacing, where $\psi = 0$):

$$
U_{shd,D} = \frac{F_{sky}}{F_{sky,\infty}} = \frac{1 + \cos(\beta_m + \psi)}{1 + \cos(\beta_m)}
$$

where $F_{sky,\infty} = \frac{1 + \cos(\beta_m)}{2}$ is the baseline sky view factor for the tilted module with no row-to-row blocking.

Note that $U_{shd,D}$ represents the **fraction of sky diffuse irradiance that reaches the module**, not the shading loss. A value of 1.0 means no shading (all diffuse reaches the module), while 0.95 indicates a 5% diffuse shading loss.
