| fitness | R Documentation |
The fitness of all individuals in the current population
is calculated after their energy output has been evaluated in
calculate_energy. This function reduces the resulting energy
outputs to a single fitness value for each individual.
fitness(
population,
reference_height,
rotor_height,
surface_roughness,
area,
rotor,
wind,
elevation = NULL,
terrain = FALSE,
ccl_raster = NULL,
weibull = FALSE,
parallel = FALSE,
n_cluster = 2
)
population |
A list of individuals (layouts with X/Y and cell IDs). |
reference_height |
Height at which |
rotor_height |
Hub height in metres. |
surface_roughness |
Roughness length in metres. Per-cell when
|
area |
Site polygon ( |
rotor |
Rotor radius in metres. |
wind |
Wind data as returned by |
elevation |
Terrain list from |
terrain |
Terrain model (elevation + land cover). |
ccl_raster |
Land-cover roughness raster from |
weibull |
Raster of estimated wind speeds, or |
parallel |
Parallel fitness ( |
n_cluster |
Worker count when |
Returns a list with every individual, consisting of X & Y coordinates, rotor radii, the runs and the selected grid cell IDs, and the resulting energy outputs, efficiency rates and fitness values.
Other Genetic Algorithm Functions:
crossover(),
genetic_algorithm(),
init_population(),
mutation(),
selection(),
set_crossover(),
swap_mutation(),
trimton()
## Create a random rectangular shapefile
library(sf)
area <- sf::st_as_sf(sf::st_sfc(
sf::st_polygon(list(cbind(
c(4498482, 4498482, 4499991, 4499991, 4498482),
c(2668272, 2669343, 2669343, 2668272, 2668272)
))),
crs = 3035
))
## Create a uniform and unidirectional wind data.frame and plots the
## resulting wind rose
## Uniform wind speed and single wind direction
wind <- data.frame(ws = 12, wd = 0)
# windrosePlot <- plot_windrose(data = wind, spd = wind$ws,
# dir = wind$wd, dirres=10, spdmax=20)
## Calculate a Grid and an indexed data.frame with coordinates and
## grid cell IDs.
Grid1 <- grid_area(area = area, size = 200, prop = 1)
Grid <- Grid1[[1]]
AmountGrids <- nrow(Grid)
wind <- list(wind, probab = 100)
startsel <- init_population(Grid, 10, 20)
fit <- fitness(
population = startsel, reference_height = 100, rotor_height = 100,
surface_roughness = 0.3, area = area, rotor = 20,
wind = wind, terrain = FALSE, parallel = FALSE
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.