Retrieve a list of arrays of modules that will likely be mounted together.
Each racking array is a group of adjacent solar modules that have the same mounting plane, module model, azimuth, pitch, rotation, tilt, and orientation (portrait vs. landscape). This is similar to the definition of array used in the Design Summary endpoint, but electronics and stringing are not considered here. Modules are considered adjacent if the gap between them is less than a configurable distance (default 1cm) and they are aligned in a grid. If a module in one row or column is staggered so that it doesn't align with the grid from the preceding row or column, it will not be included in the same array even if the modules are touching.
Arrays are not listed in a guaranteed order, but within each array, rows are listed in order starting closest to the ridge line.
Modules in filler rows and those that are offset from the grid (to avoid obstructions or match the roof shape) will be grouped into separate arrays.
When arrays are adjacent but not aligned on the same grid, their relationship is communicated by the adjacent_arrays
field, which lists all arrays that are contiguous with the current array. That includes arrays that are adjacent to the current array as well any arrays that are adjacent to an adjacent array, forming a contiguous group. See below for an example. The list contains information about each array, including its position in the list of racking arrays and the relative distance between the arrays. Note that adjacent arrays must still share a roof face, rotation, tilt, and module model.
The example design above contains four arrays that are contiguous. The adjacent_arrays object for each array shows how it is related to the other contiguous arrays in the design, measured from the center of the leftmost panel on the top row in each array:
{
"racking_arrays": [
{
"array_layout": [
"LL"
],
"adjacent_arrays": [
{
"idx": 1,
"x": -12.08,
"y": -4.64
},
{
"idx": 2,
"x": -18.40,
"y": -10.19
},
{
"idx": 3,
"x": 4.55,
"y": -10.19
}
],
...
},
{
"array_layout": [
"PPPPPPP"
],
"adjacent_arrays": [
{
"idx": 0,
"x": 12.08,
"y": 4.64
},
{
"idx": 2,
"x": -6.32,
"y": -5.55
},
{
"idx": 3,
"x": 16.63,
"y": -5.55
}
],
...
},
{
"array_layout": [
"PPPPP"
],
"adjacent_arrays": [
{
"idx": 0,
"x": 18.40,
"y": 10.19
},
{
"idx": 1,
"x": 6.32,
"y": 5.55
},
{
"idx": 3,
"x": 22.96,
"y": 0.0
}
],
...
},
{
"array_layout": [
"PPPP"
],
"adjacent_arrays": [
{
"idx": 0,
"x": -4.55,
"y": 10.19
},
{
"idx": 1,
"x": -16.63,
"y": 5.55
},
{
"idx": 2,
"x": -22.96,
"y": -0.0
}
],
...
}
]
}
Array 0, with landscape modules, is adjacent to array 1, the unbroken row of portrait modules. The distance from the leftmost module in array 0 to the leftmost module in array 1 is 12.08 feet to the left and 4.64 feet down. Array 1 is adjacent to all three of the other arrays; note that the x and y values relating array 1 to array 0 have the opposite signs to indicate that the module is to the right and up from this perspective.
Array 0 is not directly adjacent to arrays 2 or 3, but because they are all contiguous, they are listed in adjacent_arrays for array 0 as well.
Note that the distances between contiguous arrays may not be equal to the sum of the distances to intermediate arrays due to rounding. For example, the x distance between arrays 2 and 3 is 22.96 feet, which is not equal to 6.32 + 16.63 (the x distances between arrays 1 and 2 and arrays 1 and 3, respectively).