> ## 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.

# Spectral Correction

export const IAM = () => <Tooltip tip="Incidence Angle Modifier: correction factor for optical losses at non-perpendicular light angles.">
    IAM
  </Tooltip>;

export const SpectralMismatch = () => <Tooltip tip="Difference between actual solar spectrum and reference spectrum (AM1.5G), affecting module performance vs. rated efficiency.">
    spectral mismatch
  </Tooltip>;

export const SaturationVaporPressure = () => <Tooltip tip="Maximum water vapor pressure air can hold at a given temperature; increases exponentially with temperature.">
    saturation vapor pressure
  </Tooltip>;

export const DewpointTemperature = () => <Tooltip tip="Temperature at which air becomes saturated (RH = 100%); indicates atmospheric moisture content.">
    dewpoint temperature
  </Tooltip>;

export const RelativeHumidity = () => <Tooltip tip="Ratio of actual water vapor pressure to saturation vapor pressure at a given temperature (0–100%).">
    relative humidity
  </Tooltip>;

export const PrecipitableWater = () => <Tooltip tip="Total water vapor in an atmospheric column, expressed as equivalent depth of liquid water (typically 0.5–5 cm).">
    precipitable water
  </Tooltip>;

export const AirMass = () => <Tooltip tip="Ratio of atmospheric path length to path length at zenith; equals 1 when sun is overhead.">
    air mass
  </Tooltip>;

## Summary

Spectral Correction accounts for <SpectralMismatch />—the difference between the module's spectral response and the actual incident solar spectrum. PV modules are rated under a reference spectrum (AM1.5G), but the real spectrum varies with atmospheric conditions (e.g., <AirMass>air mass</AirMass>, <PrecipitableWater />). Different module technologies (e.g., crystalline silicon, CdTe) have different spectral responses, causing them to over- or under-perform relative to their rating depending on the incident spectrum. PlantPredict implements four spectral correction approaches: No Spectral Shift, Monthly Override, Single-Variable Models (technology-specific), and Two-Variable Model. The spectral correction factor $U_{spectr}$ is a multiplier applied to effective irradiance after <IAM /> corrections.

## Inputs

| Name                            | Symbol             | Units | Description                                                                     |
| ------------------------------- | ------------------ | ----- | ------------------------------------------------------------------------------- |
| **Pressure-Corrected Air Mass** | $AM'$              | —     | Air mass corrected for atmospheric pressure                                     |
| **Precipitable Water**          | $W$                | cm    | Column depth of precipitable water vapor                                        |
| **Relative Humidity**           | $RH$               | %     | Surface relative humidity                                                       |
| **Ambient Air Temperature**     | $T_a$              | °C    | Ambient air temperature                                                         |
| **Dewpoint Temperature**        | $T_d$              | °C    | Dewpoint temperature                                                            |
| **Monthly Spectral Loss**       | $L_{spectr,month}$ | %     | User-specified spectral loss percentage for each month (Monthly Override model) |
| **Sandia Polynomial Factors**   | $[a_0, ..., a_4]$  | —     | Polynomial coefficients for Sandia spectral model                               |
| **Two-Variable Coefficients**   | $[b_0, ..., b_5]$  | —     | Coefficients for two-variable spectral model                                    |

***

## Outputs

| Name                           | Symbol       | Units | Description                                          |
| ------------------------------ | ------------ | ----- | ---------------------------------------------------- |
| **Spectral Correction Factor** | $U_{spectr}$ | —     | Multiplier applied to effective irradiance after IAM |

***

## Detailed Description

### Available Models

PlantPredict offers four Spectral Correction options:

1. **No Spectral Shift**: No spectral correction ($U_{spectr} = 1$)
2. **Monthly Override**: User-specified monthly values
3. **Single-Variable Models**: Technology-specific models using one atmospheric parameter:
   * **Sandia**: Uses air mass; for crystalline silicon modules
   * **First Solar Series 4 & Earlier**: Uses precipitable water; for First Solar Series ≤ 4 modules
   * **First Solar Series 4-2 & Later**: Uses precipitable water; for First Solar Series ≥ 4-2 modules
4. **Two-Variable Model** (Lee & Panchula): Uses both air mass and precipitable water with module-specific coefficients

### No Spectral Shift

No spectral correction:

$$
U_{spectr} = 1
$$

### Monthly Override

The user specifies a spectral loss percentage for each month. The percentage is converted to a correction factor:

$$
U_{spectr} = 1 - \frac{L_{spectr,month}}{100}
$$

where $L_{spectr,month}$ is the user-entered spectral loss (%) for the current month. A positive value represents a loss (e.g., 2% → $U_{spectr} = 0.98$); a negative value represents a spectral gain (e.g., −1% → $U_{spectr} = 1.01$).

### Single-Variable Models

These models rely on atmospheric parameters, including precipitable water. If precipitable water cannot be determined (precipitable water, <RelativeHumidity />, and <DewpointTemperature /> all missing from the weather file), all single-variable models default to $U_{spectr} = 1$—including the Sandia model.

#### Sandia Polynomial Model

Typically used for crystalline silicon (c-Si) modules, but applicable to any technology with user-defined polynomial coefficients:

$$
U_{spectr} = a_0 + a_1 \cdot AM' + a_2 \cdot (AM')^2 + a_3 \cdot (AM')^3 + a_4 \cdot (AM')^4
$$

where $[a_0, a_1, a_2, a_3, a_4]$ are user-defined Sandia polynomial factors and $AM'$ is the pressure-corrected air mass.

#### First Solar Models

Recommended for First Solar CdTe modules:

$$
U_{spectr} = c_0 + c_1 \cdot e^{c_2 (W + c_3)^{c_4}}
$$

where $W$ is the precipitable water (cm) and coefficients depend on module series:

| Coefficient | Series 4 & Earlier | Series 4-2 & Later |
| ----------- | ------------------ | ------------------ |
| $c_0$       | 0.6318             | 1.266              |
| $c_1$       | 0.1341             | −0.0913            |
| $c_2$       | 0.9757             | 1.1987             |
| $c_3$       | 0.05               | 0.5                |
| $c_4$       | 0.0788             | −0.21              |

### Two-Variable Model

Six-parameter model from Lee and Panchula, accounting for pressure-corrected air mass $AM'$ and precipitable water $W$:

$$
U_{spectr} = b_0 + b_1 AM' + b_2 W + b_3 \sqrt{AM'} + b_4 \sqrt{W} + b_5 \frac{AM'}{\sqrt{W}}
$$

$b_0$ through $b_5$ are user-defined coefficients specific to the module technology.

To ensure numerical stability, precipitable water is clamped to a minimum of 0.1 cm and air mass is clamped to a maximum of 10. If precipitable water cannot be determined (precipitable water, relative humidity, and dewpoint all missing from the weather file), the model defaults to $U_{spectr} = 1$.

### Precipitable Water Calculation

If precipitable water is not directly available in the weather file, it is calculated from relative humidity or dewpoint.

#### From Relative Humidity

Using the Gueymard (1994) model, which uses absolute temperature $T_K = T_a + 273.15$ (Kelvin) throughout.

First, the **apparent water vapor scale height** $H_v$ (km) is calculated. This represents the height of an equivalent column if all atmospheric water vapor were compressed to surface-level density.

$$
H_v = 0.4976 + 1.5265 \frac{T_K}{273.15} + e^{13.6897 \frac{T_K}{273.15} - 14.9188 (\frac{T_K}{273.15})^3}
$$

Next, the **surface water vapor density** $\rho_v$ (g/m³) is calculated from relative humidity $RH$ (%) and temperature:

$$
\rho_v = \frac{216.7 \cdot RH}{100 \cdot T_K} \cdot e^{22.33 - \frac{4914}{T_K} - 10.922 (\frac{100}{T_K})^2 - 0.39015 \frac{T_K}{100}}
$$

Finally, precipitable water $W$ (cm) is the product of scale height and vapor density, where the factor 0.1 converts from (km × g/m³) to cm of liquid water (with water density = 1000 kg/m³):

$$
W = 0.1 \cdot H_v \cdot \rho_v
$$

#### From Dewpoint

When only dewpoint temperature $T_d$ is available, relative humidity is calculated using the August-Roche-Magnus approximation for <SaturationVaporPressure /> $e_s$ (hPa). The saturation vapor pressure is the maximum water vapor pressure that air can hold at a given temperature—at the dewpoint, the air is saturated ($RH = 100\%$).

The ratio of saturation vapor pressures at dewpoint and ambient temperature gives relative humidity:

$$
RH = 100 \cdot \frac{e_s(T_d)}{e_s(T_a)}
$$

where the saturation vapor pressure follows the August-Roche-Magnus equation:

$$
e_s(T) = c_0 \cdot e^{\frac{c_1 \cdot T}{c_2 + T}}
$$

with $T$ in °C and coefficients depending on PlantPredict version:

<div className="coef-table">
  | Software Version | $c_0$  | $c_1$  | $c_2$  |
  | ---------------- | ------ | ------ | ------ |
  | ≤ 10             | 6.11   | 17.1   | 234.2  |
  | ≥ 11             | 6.1094 | 17.625 | 243.04 |

  Version 11+ uses the improved coefficients from Alduchov and Eskridge (1996), which provide less than 0.4% error over the range -40°C to 50°C.
</div>

Then calculate $W$ from $RH$ using the Gueymard method above.

### Application to Irradiance

Spectral correction factor applied after IAM:

$$
G_{beam,spectral} = G_{beam,IAM} \times U_{spectr}
$$

$$
G_{sky,spectral} = G_{sky,IAM} \times U_{spectr}
$$

$$
G_{ground,spectral} = G_{ground,IAM} \times U_{spectr}
$$

***

## References

* King, D. L., Boyson, W. E., & Kratochvil, J. A. (2004). *Photovoltaic array performance model.* SAND2004-3535, Sandia National Laboratories. DOI: [10.2172/919131](https://doi.org/10.2172/919131)
* Lee, M., & Panchula, A. (2016). *Spectral correction for photovoltaic module performance based on air mass and precipitable water.* 2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC), 1351-1356. DOI: [10.1109/PVSC.2016.7749836](https://doi.org/10.1109/PVSC.2016.7749836)
* Gueymard, C. (1994). *Analysis of monthly average atmospheric precipitable water and turbidity in Canada and Northern United States.* Solar Energy, 53(1), 57-71. DOI: [10.1016/0038-092X(94)90175-9](https://doi.org/10.1016/0038-092X\(94\)90175-9)
* Alduchov, O. A., & Eskridge, R. E. (1996). *Improved Magnus form approximation of saturation vapor pressure.* Journal of Applied Meteorology, 35(4), 601-609. DOI: [10.1175/1520-0450(1996)035%3C0601:IMFAOS%3E2.0.CO;2](https://doi.org/10.1175/1520-0450\(1996\)035%3C0601:IMFAOS%3E2.0.CO;2)
