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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.