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

# 3D Transposition

export const Albedo = () => <Tooltip tip="Ground reflectance (0–1); fraction of incident light reflected by the surface.">
    albedo
  </Tooltip>;

export const Bay = () => <Tooltip tip="Section of a tracker where modules share the same tilt and rotation angle, receiving uniform irradiance.">
    bay
  </Tooltip>;

export const POAIrradiance = () => <Tooltip tip="Solar irradiance on the tilted module surface (beam + diffuse + reflected); drives PV power generation.">
    POA irradiance
  </Tooltip>;

## Summary

3D transposition calculates <POAIrradiance /> on a <Bay />-by-bay basis within a 3D scene, accounting for variations in tracker rotation angle and tracker axis tilt. This transposition method is automatically invoked when 3D site-level scene modeling is enabled. It uses the pvlib implementation of the Perez transposition model to compute POA irradiance for each tracker bay at each timestamp, incorporating the terrain-corrected bay orientation when terrain-aware backtracking is enabled.

## Inputs

| Name                                          | Symbol            | Units   | Description                                                                                         |
| --------------------------------------------- | ----------------- | ------- | --------------------------------------------------------------------------------------------------- |
| **Tracker Axis Azimuth**                      | $\gamma_{axis}$   | degrees | Azimuth of tracker axis measured clockwise from north                                               |
| **Standard Backtracking Angle**               | $\alpha_B$        | degrees | Tracker rotation angle from baseline tracking algorithm (true tracking or backtracking, no terrain) |
| **Terrain-Corrected Angle**                   | $\alpha_{TABT,i}$ | degrees | East-west rotation angle of bay $i$                                                                 |
| **Tracker Axis Tilt**                         | $\beta_{axis,i}$  | degrees | North-south tilt of tracker axis for bay $i$                                                        |
| **Bay Length**                                | $L_{b,i}$         | m       | Length of bay $i$ (used for weighted averaging)                                                     |
| **Global Horizontal Irradiance**              | $GHI$             | W/m²    | Total irradiance on horizontal surface                                                              |
| **Direct Normal Irradiance**                  | $DNI$             | W/m²    | Direct beam irradiance perpendicular to sun                                                         |
| **Diffuse Horizontal Irradiance**             | $DHI$             | W/m²    | Diffuse irradiance on horizontal surface                                                            |
| **Extraterrestrial Direct Normal Irradiance** | $DNI_{extra}$     | W/m²    | Direct normal irradiance at top of atmosphere                                                       |
| **Solar Zenith Angle**                        | $\theta_z$        | degrees | Angle between sun and local vertical                                                                |
| **Solar Azimuth Angle**                       | $\gamma_s$        | degrees | Sun azimuth angle measured clockwise from north                                                     |
| **Albedo**                                    | $\rho$            | —       | Ground reflectance (0-1)                                                                            |

***

## Outputs

| Name                                   | Symbol        | Units | Description                                             |
| -------------------------------------- | ------------- | ----- | ------------------------------------------------------- |
| **Transposition Factor (Global)**      | $TF_{POA}$    | —     | Ratio of 3D to baseline POA global irradiance           |
| **Transposition Factor (Beam)**        | $TF_{beam}$   | —     | Ratio of 3D to baseline POA beam irradiance             |
| **Transposition Factor (Sky Diffuse)** | $TF_{sky}$    | —     | Ratio of 3D to baseline POA sky diffuse irradiance      |
| **Transposition Factor (Ground)**      | $TF_{ground}$ | —     | Ratio of 3D to baseline POA ground-reflected irradiance |

***

## Detailed Description

### Bay Orientation

For each bay $i$, bay tilt $\beta_i$ and azimuth $\gamma_i$ are computed from the terrain-corrected angle $\alpha_{TABT,i}$ and tracker axis tilt $\beta_{axis,i}$, using pvlib's implementation:

$$
\beta_i = \arccos(\cos\alpha_{TABT,i} \cdot \cos\beta_{axis,i})
$$

$$
\gamma_i = \gamma_{axis} + \arcsin\left(\frac{\sin\alpha_{TABT,i}}{\sin\beta_i}\right)
$$

### Baseline POA

Baseline POA irradiance components ($G_{beam,baseline}$, $G_{sky,baseline}$, $G_{ground,baseline}$) are calculated assuming flat terrain ($\beta_{axis} = 0$) using the standard backtracking angle $\alpha_B$ and pvlib's implementation of the Perez model with the All Sites Composite 1990 coefficient set. The Perez model uses the horizontal irradiance components ($GHI$, $DNI$, $DHI$), extraterrestrial irradiance ($DNI_{extra}$), solar geometry ($\theta_z$, $\gamma_s$), and albedo ($\rho$) as inputs.

### 3D POA

POA irradiance components ($G_{beam,i}$, $G_{sky,i}$, $G_{ground,i}$) are calculated for each bay $i$ using the terrain-corrected angle $\alpha_{TABT,i}$ and tracker axis tilt $\beta_{axis,i}$, with the same Perez model inputs.

### Transposition Factors

For each irradiance component, the transposition factor is computed for each bay:

$$
TF_{beam,i} = \frac{G_{beam,i}}{G_{beam,baseline}}
$$

$$
TF_{sky,i} = \frac{G_{sky,i}}{G_{sky,baseline}}
$$

$$
TF_{ground,i} = \frac{G_{ground,i}}{G_{ground,baseline}}
$$

$$
TF_{POA,i} = \frac{G_{beam,i} + G_{sky,i} + G_{ground,i}}{G_{beam,baseline} + G_{sky,baseline} + G_{ground,baseline}}
$$

### Field Average

The transposition factors are averaged across all bays, weighted by bay length $L_{b,i}$:

$$
TF_{beam} = \frac{\sum_i L_{b,i} \cdot G_{beam,i}}{\sum_i L_{b,i} \cdot G_{beam,baseline}}
$$

$$
TF_{sky} = \frac{\sum_i L_{b,i} \cdot G_{sky,i}}{\sum_i L_{b,i} \cdot G_{sky,baseline}}
$$

$$
TF_{ground} = \frac{\sum_i L_{b,i} \cdot G_{ground,i}}{\sum_i L_{b,i} \cdot G_{ground,baseline}}
$$

$$
TF_{POA} = \frac{\sum_i L_{b,i} \cdot (G_{beam,i} + G_{sky,i} + G_{ground,i})}{\sum_i L_{b,i} \cdot (G_{beam,baseline} + G_{sky,baseline} + G_{ground,baseline})}
$$

A value less than 1 indicates a reduction in that irradiance component due to terrain effects; a value greater than 1 indicates an increase.

The calculated field-averaged transposition factors are applied as site-level modifiers to the POA irradiance components computed by the standard transposition model. This allows the main prediction engine to account for terrain effects without requiring bay-level calculations throughout the full simulation.

***

## References

* Marion, W. F., & Dobos, A. P. (2013). *Rotation Angle for the Optimum Tracking of One-Axis Trackers.* NREL Technical Report NREL/TP-6A20-58891. DOI: [10.2172/1089596](https://doi.org/10.2172/1089596)
* Perez, R., Seals, R., Ineichen, P., Stewart, R., & Menicucci, D. (1987). *A new simplified version of the Perez diffuse irradiance model for tilted surfaces.* Solar Energy, 39(3), 221–231. DOI: [10.1016/S0038-092X(87)80031-2](https://doi.org/10.1016/S0038-092X\(87\)80031-2)
* Perez, R., Ineichen, P., Seals, R., Michalsky, J., & Stewart, R. (1990). *Modeling daylight availability and irradiance components from direct and global irradiance.* Solar Energy, 44(5), 271–289. DOI: [10.1016/0038-092X(90)90055-H](https://doi.org/10.1016/0038-092X\(90\)90055-H)
* Holmgren, W. F., Hansen, C. W., & Mikofski, M. A. (2018). *pvlib python: A python package for modeling solar energy systems.* Journal of Open Source Software, 3(29), 884. DOI: [10.21105/joss.00884](https://doi.org/10.21105/joss.00884)
* pvlib python. *Irradiance module source code.* [https://pvlib-python.readthedocs.io/en/latest/\_modules/pvlib/irradiance.html](https://pvlib-python.readthedocs.io/en/latest/_modules/pvlib/irradiance.html)
