sp
, spatstat
were removed and replaced by sf
. All spatial outputs are now Simple Features. A Shapefile Polygon can still be passed as input to genetic_algorithm
/ windfarmGA
, but more underlying functions now require the Polygon to be of type Simple Feature.grid_area
& hexa_area
are now calculated with sf::st_make_grid
.elevatr
has been added because it provides elevation data with a higher resolution compared to raster::getData
.dependencies
that are not essential for the algorithm were moved to Suggests
.viewshed
parameter h1
can now also be a numeric vector with different height offsets. #18grid_area
argument resol
changed to size
.get_dist_angles
have changed to match the arguments of turbine_influences
.sh
Warning message:
In showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj = prefer_proj) :
Discarded datum European_Terrestrial_Reference_System_1989 in CRS definition
options(windfarmGA.cT = 0.75)
: Options = Default value | Description ----------------------------------| ------------------------ windfarmGA.cT = 0.88 | Wind Turbine Thrust coefficient windfarmGA.air_rh = 1.225 | Air Density Value windfarmGA.k = 0.075 | Wake expansion coefficient. It is assumed to be 0.075 for onshore windfarms and 0.05 for offshore windfarms windfarmGA.max_angle = 20 | Maximum angle (in degrees) to search for potential influencing turbines windfarmGA.max_distance = 100000 | Maximum distance (in meters) to search for potential influencing turbines windfarmGA.max_population = 300 | Maximum amount of individuals per generation windfarmGA.max_selection = 100 | Maximum amount of selected individuals
Old names | New names --------------------- | --------------------- StartGA | init_population selection1 | selection crossover1 | crossover VekWinkelCalc | get_dist_angles calculateEn | calculate_energy getRects | get_grids BaroHoehe | barometric_height GridFilter | grid_area HexaTex | hexa_area InfluPoints | turbine_influences genAlgo | genetic_algorithm RandomSearch | random_search RandomSearchTurb | random_search_single RandomSearchPlot | plot_random_search leafPlot | plot_leaflet heatmapGA | plot_heatmap plotbeorwor | plot_development plotCloud | plot_cloud plotEvolution | plot_evolution plotfitnessevolution | plot_fitness_evolution plotparkfitness | plot_parkfitness plotResult | plot_result PlotWindfarmGA | plot_windfarmGA plotWindrose | plot_windrose
The legend of plot_leaflet
now works correctly.
Some general linting / spell checking / performance optimization was done.
The Weibull Raster (for Austria) are now in a separate Github-repository, instead of being stored in the package as .rda file. I guess this never worked except on my computer.
The Corine Land Cover .tif file is also stored in that repository, as the EEA webpage did restrict downloads sometimes, which resulted in an error.
The plot_farm_3d
function has temporarily been removed from the package.
Most functions that required user-input previously used readline
which is now changed to readLines
as it allows to read from a file instead. This can be set via options(windfarmGA.connection = file())
.
A whole lot of tests were written.
cansee
,viewTo
, rasterprofile
, viewshed
, plot_viewshed
, interpol_view
, getISO3
, getDEM
The function genAlgo
/windfarmGA
and the plotting functions now accept SimpleFeature Polygons or coordinates in table format with long, lat or x, y column names. The terrain effect model can now be activated only by setting topograp to TRUE and it will attempt to download the land cover raster from the European Environment Agency website.
plot_farm_3d
Experimental rayshader function
The output of genAlgo
or windfarmGA
can be further randomized/optimized with the following
functions:
- RandomSearch
- RandomSearchTurb
RandomSearch
is used to randomize all turbines of the layout
RandomSearchTurb
is used to randomize a single turbine
RandomSearchPlot
is used to plot the output of those functions, comparing them with the
original result.
load(file = system.file("extdata/resultrect.rda", package = "windfarmGA"))
load(file = system.file("extdata/polygon.rda", package = "windfarmGA"))
Res = RandomSearchTurb(result = resultrect, Polygon1 = polygon, n=10)
RandomSearchPlot(resultRS = Res, result = resultrect, Polygon1 = polygon, best=2)
## Runs the same optimization, but with parallel processing and 3 cores.
result_par <- genAlgo(Polygon1 = Polygon1, GridMethod ="h", n=12, Rotor=30,
fcrR=5,iteration=10, vdirspe = data.in,crossPart1 = "EQU",
selstate="FIX",mutr=0.8, Proportionality = 1,
SurfaceRoughness = 0.3, topograp = FALSE,
elitism=TRUE, nelit = 7, trimForce = TRUE,
referenceHeight = 50,RotorHeight = 100,
Parallel = TRUE, numCluster = 3)
PlotWindfarmGA(result = result_par, GridMethod = "h", Polygon1 = Polygon1)
result_hex <- genAlgo(Polygon1 = Polygon1, GridMethod ="h", n=12, Rotor=30,
fcrR=5,iteration=10, vdirspe = data.in,crossPart1 = "EQU",
selstate="FIX",mutr=0.8, Proportionality = 1,
SurfaceRoughness = 0.3, topograp = FALSE,
elitism=TRUE, nelit = 7, trimForce = TRUE,
referenceHeight = 50,RotorHeight = 100)
PlotWindfarmGA(result = result_hex, GridMethod = "h", Polygon1 = Polygon1)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.