Description Usage Arguments Details Value Optional graphical parameters Author(s) References See Also Examples
Calculates a wind profile, using on the Hellman exponential law.
1 2 3 4 5 6 7 8 9 | windprofile(mast, v.set, dir.set, num.sectors=12,
method=c("hellman", "loglm", "fixed"), alpha=NULL,
subset, digits=3, print=TRUE)
pro(mast, v.set, dir.set, num.sectors=12,
method=c("hellman", "loglm", "fixed"), alpha=NULL,
subset, digits=3, print=TRUE)
## S3 method for class 'windprofile'
plot(x, sector, measured=TRUE, ...)
|
mast |
Met mast object created by |
v.set |
Set(s) to be used for wind speed, specified as set number or set name. The first given dataset is used as reference height. If one single dataset is given, the same Hellman exponent is assumed for each sector and can be specified using |
dir.set |
Set to be used for wind direction, specified as set number or set name. |
num.sectors |
Number of wind direction sectors as integer value greater 1. Default is |
method |
Method to be used for the calculation. One of |
alpha |
Hellman exponent – one general exponent or a vector of exponents (one per sector). Optional and only used if the choosen |
subset |
Optional start and end time stamp for a data subset, as string vector |
digits |
Number of decimal places to be used for results as numeric value. Default is |
print |
If |
x |
Wind profile object created by |
sector |
Direction sector as integer (sector number) or string (sector code). If missing or |
measured |
If |
... |
Arguments to be passed to methods. For optional graphical parameters see below. |
The average wind speed as a function of height above ground gives a site's wind profile. For reasons of cost-efficiency met mast heights are usually below hub heights of modern wind turbines, thus measured wind speeds must be extrapolated by based wind profile. A common method is the Hellman exponential law or power law ("hellman"
), defined as:
v2/v1 = (h2/h1)^alpha
where v2 is the wind speed at height h2, v1 is the wind speed at height h1 and alpha is the Hellman exponent (also power law exponent or shear exponent).
To calculate alpha, profile
uses the inverted equation as:
alpha = log(v2/v1) / log(h2/h1)
If data is available for two or more heights, a log-linear model fit can be used for the computation of alpha. In this case the data is logarithmized to allow for fitting a linear model. The models slope is then used as alpha. Please note: depending on the data this method might result in negative alpha.
If the wind speed is only known for one height, alpha must be estimated. alpha depends on various issues, including roughness and terrain of the site. Some empirical values for temperate climates are:
Site conditions | α |
Open water | 0.08--0.15 |
Flat terrain, open land cover | 0.16--0.22 |
Complex terrain with mixed or continuous forest | 0.25--0.40 |
Exposed ridgetops, open land cover | 0.10--0.14 |
Sloping terrain with drainage flows | 0.10--0.15 |
Returns a list of:
profile |
Data frame containing alpha and reference wind speed for each direction sector. |
h.ref |
Reference height of the profile (the height of the first given dataset in |
The following graphical parameters can optionally be added to customize the plot:
bty
: Type of box to be drawn around the plot region. Allowed values are "o"
(the default), "l"
, "7"
, "c"
, "u"
, or "]"
. The resulting box resembles the corresponding upper case letter. A value of "n"
suppresses the box.
bty.leg
: Type of box to be drawn around the legend. Allowed values are "n"
(no box, the default) and "o"
.
cex
: Amount by which text on the plot should be scaled relative to the default (which is 1
), as numeric. To be used for scaling of all texts at once.
cex.axis
: Amount by which axis annotations should be scaled, as numeric value.
cex.lab
: Amount by which axis labels should be scaled, as numeric value.
cex.leg
: Amount by which legend text should be scaled, as numeric value.
col
: Vector of colours, one for each set plotted.
col.axis
: Colour to be used for axis annotations – default is "black"
.
col.box
: Colour to be used for the box around the plot region (if bty
) – default is "black"
.
col.lab
: Colour to be used for axis labels – default is "black"
.
col.leg
: Colour to be used for legend text – default is "black"
.
col.ticks
: Colours for the axis line and the tick marks respectively – default is "black"
.
las
: Style of axis labels. One of 0
(always parallel to the axis, default), 1
(always horizontal), 2
(always perpendicular to the axis), 3
(always vertical).
lty
: Line type(s) of the profile lines – assigned like col
. See par
for available line types.
lwd
: Line width(s) of the profile lines – assigned like col
. See par
for usage.
mar
: A numerical vector of the form c(bottom, left, top, right) which gives the number of lines of margin to be specified on the four sides of the plot – default is c(4, 4, 1, 1)
.
mgp
: A numerical vector of the form c(label, annotation, line), which gives the margin line for the axis label, axis annotation and axis line. The default is c(2.5, 0.7, 0)
.
pos.leg
: Position of legend – one of "bottomright"
, "bottom"
, "bottomleft"
, "left"
, "topleft"
, "top"
, "topright"
, "right"
or "center"
. Use NULL
to hide the legend.
xlab
: Alternative label for the x axis.
ylab
: Alternative label for the y axis.
xlim
: Numeric vector of the x limits of the plot.
ylim
: Numeric vector of the y limits.
x.intersp
: Horizontal interspacing factor for legend text, as numeric – default is 0.4
.
y.intersp
: Vertical line distance for legend text, as numeric – default is 0.8
.
Christian Graul
Bañuelos-Ruedas, F., Camacho, C.A., Rios-Marcuello, S. (2011) Methodologies Used in the Extrapolation of Wind Speed Data at Different Heights and Its Impact in the Wind Energy Resource Assessment in a Region. In: Gastón O. Suvire (Ed.), Wind Farm – Technical Regulations, Potential Estimation and Siting Assessment, Chapter 4, p. 97–114, InTech
Brower, M., Marcus, M., Taylor, M., Bernadett, D., Filippelli, M., Beaucage, P., Hale, E., Elsholz, K., Doane, J., Eberhard, M., Tensen, J., Ryan, D. (2010) Wind Resource Assessment Handbook. http://www.renewablenrgsystems.com/TechSupport/~/media/Files/PDFs/wind_resource_handbook.ashx
International Electrotechnical Commission (2005) IEC 61400-12 Wind Turbines – Part 12-1: Power Performance Measurements of Electricity Producing Wind Turbines. IEC Standard
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | ## Not run:
## load and prepare data
data("winddata", package="bReeze")
set40 <- set(height=40, v.avg=winddata[,2], dir.avg=winddata[,14])
set30 <- set(height=30, v.avg=winddata[,6], dir.avg=winddata[,16])
set20 <- set(height=20, v.avg=winddata[,10], v.std=winddata[,13])
ts <- timestamp(timestamp=winddata[,1])
neubuerg <- mast(timestamp=ts, set40, set30, set20)
neubuerg <- clean(mast=neubuerg)
## calculate profile
# create profile based on one height
windprofile(mast=neubuerg, v.set=1, dir.set=1) # default alpha=0.2
windprofile(mast=neubuerg, v.set=1, dir.set=1, alpha=0.15)
# calculate profile based on two heights
windprofile(mast=neubuerg, v.set=c(1,2), dir.set=1)
windprofile(mast=neubuerg, v.set=c(1,3), dir.set=1)
# same as above
windprofile(mast=neubuerg, v.set=c("set1", "set3"), dir.set="set1")
# calculate profile based on three heights
windprofile(mast=neubuerg, v.set=c(1,2,3), dir.set=1)
# change the method used for computation
# note: negative alphas!
windprofile(mast=neubuerg, v.set=c(1,2), dir.set=1, method="loglm")
# change number of direction sectors
windprofile(mast=neubuerg, v.set=c(1,2), dir.set=1, num.sectors=8)
# data subsets
windprofile(mast=neubuerg, v.set=1, dir.set=1,
subset=c("2009-12-01 00:00:00", "2009-12-31 23:50:00"))
windprofile(mast=neubuerg, v.set=c(1,2), dir.set=1,
subset=c("2010-01-01 00:00:00", NA)) # just 'start' time stamp
windprofile(mast=neubuerg, v.set=c(1:3), dir.set=1,
subset=c(NA, "2009-12-31 23:50:00")) # just 'end' time stamp
# change number of digits and hide results
windprofile(mast=neubuerg, v.set=1, dir.set=1, digits=2)
neubuerg.wp <- windprofile(mast=neubuerg, v.set=1, dir.set=1, print=FALSE)
neubuerg.wp
## plot profile objects
plot(neubuerg.wp) # default
plot(neubuerg.wp, measured=FALSE) # omit 'measured' points
# plot only one sector
plot(neubuerg.wp, sector=3) # ENE by sector number
plot(neubuerg.wp, sector="ene") # ENE by sector code
plot(neubuerg.wp, sector="all") # general profile
# customize plot
plot(neubuerg.wp, bty="l", bty.leg="o", cex.axis=0.8,
cex.lab=0.9, cex.leg=0.7, col=rainbow(13), col.axis=gray(0.2),
col.box=gray(0.2), col.lab=gray(0.2), col.leg=gray(0.2),
col.ticks=gray(0.2), las=0, lty=c(rep(3,12),1),
lwd=c(rep(1.2,12), 1.7), mar=c(3,3,0.5,0.5), mgp=c(2,0.7,0),
pos.leg="right", xlab="velocity [m/s]", ylab="height [m]",
xlim=c(0,11), ylim=c(0,150), x.intersp=1, y.intersp=1.2)
## End(Not run)
|
This is bReeze 0.4-3
Type changes("bReeze") to see changes/bug fixes, help(bReeze) for documentation
or citation("bReeze") for how to cite bReeze.
Attaching package: 'bReeze'
The following objects are masked from 'package:stats':
frequency, ts
The following object is masked from 'package:utils':
timestamp
Pattern found: %d.%m.%Y %H:%M
Cleaning set 1...
2938 samples lower than 0.4 replaced by 'NA' in average wind speed
Cleaning set 2...
3361 samples lower than 0.4 replaced by 'NA' in average wind speed
Cleaning set 3...
2896 samples lower than 0.4 replaced by 'NA' in average wind speed
16645 samples with average wind speed lower than 4 m/s replaced by 'NA' in turbulence intensity
Wind profile
alpha wind speed
[-] [m/s]
N 0.2 5.848
NNE 0.2 4.137
ENE 0.2 3.889
E 0.2 3.067
ESE 0.2 3.348
SSE 0.2 2.95
S 0.2 3.353
SSW 0.2 5.365
WSW 0.2 6.014
W 0.2 3.779
WNW 0.2 1.954
NNW 0.2 3.227
all 0.2 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=1, dir.set=1, num.sectors=12, method="fixed", alpha=c(0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2), subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.15 5.848
NNE 0.15 4.137
ENE 0.15 3.889
E 0.15 3.067
ESE 0.15 3.348
SSE 0.15 2.95
S 0.15 3.353
SSW 0.15 5.365
WSW 0.15 6.014
W 0.15 3.779
WNW 0.15 1.954
NNW 0.15 3.227
all 0.15 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=1, dir.set=1, num.sectors=12, method="fixed", alpha=c(0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15), subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.254 5.848
NNE 0.24 4.137
ENE 0.154 3.889
E 0.199 3.067
ESE 0.162 3.348
SSE 0.137 2.95
S 0.133 3.353
SSW 0.145 5.365
WSW 0.145 6.014
W 0.203 3.779
WNW 0.311 1.954
NNW 0.193 3.227
all 0.19 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 2), dir.set=1, num.sectors=12, method="hellman", alpha=NULL, subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.169 5.848
NNE 0.161 4.137
ENE 0.123 3.889
E 0.089 3.067
ESE 0.075 3.348
SSE 0.062 2.95
S 0.069 3.353
SSW 0.089 5.365
WSW 0.101 6.014
W 0.168 3.779
WNW 0.259 1.954
NNW 0.124 3.227
all 0.125 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 3), dir.set=1, num.sectors=12, method="hellman", alpha=NULL, subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.169 5.848
NNE 0.161 4.137
ENE 0.123 3.889
E 0.089 3.067
ESE 0.075 3.348
SSE 0.062 2.95
S 0.069 3.353
SSW 0.089 5.365
WSW 0.101 6.014
W 0.168 3.779
WNW 0.259 1.954
NNW 0.124 3.227
all 0.125 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 3), dir.set=1, num.sectors=12, method="hellman", alpha=NULL, subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.15 5.848
NNE 0.128 4.137
ENE 0.08 3.889
E 0.035 3.067
ESE 0.008 3.348
SSE 0.021 2.95
S 0.03 3.353
SSW 0.054 5.365
WSW 0.047 6.014
W 0.089 3.779
WNW 0.114 1.954
NNW 0.022 3.227
all 0.078 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 2, 3), dir.set=1, num.sectors=12, method="loglm", alpha=NULL, subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.21 5.848
NNE 0.14 4.137
ENE 0.022 3.889
E 0.108 3.067
ESE 0.04 3.348
SSE 0.044 2.95
S 0.024 3.353
SSW 0.047 5.365
WSW 0.036 6.014
W 0.018 3.779
WNW -0.057 1.954
NNW -0.176 3.227
all 0.058 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 2), dir.set=1, num.sectors=12, method="loglm", alpha=NULL, subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.251 5.639
NE 0.183 3.976
E 0.191 3.22
SE 0.148 3.134
S 0.137 3.501
SW 0.141 5.889
W 0.195 4.323
NW 0.27 2.304
all 0.19 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 2), dir.set=1, num.sectors=8, method="hellman", alpha=NULL, subset=NA, digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.2 6.59
NNE 0.2 3.989
ENE 0.2 3.063
E 0.2 2.41
ESE 0.2 2.803
SSE 0.2 3.844
S 0.2 5.001
SSW 0.2 7.757
WSW 0.2 7.46
W 0.2 4.082
WNW 0.2 2.227
NNW 0.2 2.463
all 0.2 6.015
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=1, dir.set=1, num.sectors=12, method="fixed", alpha=c(0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2), subset=c("2009-12-01 00:00:00", "2009-12-31 23:50:00"), digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N NaN NaN
NNE NaN NaN
ENE 0.006 5.27
E NaN NaN
ESE NaN NaN
SSE NaN NaN
S NaN NaN
SSW NaN NaN
WSW NaN NaN
W NaN NaN
WNW NaN NaN
NNW NaN NaN
all 0.006 5.27
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 2), dir.set=1, num.sectors=12, method="hellman", alpha=NULL, subset=c("2010-01-01 00:00:00", "NA"), digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.147 5.896
NNE 0.102 4.178
ENE 0.062 4.023
E 0.028 3.176
ESE 0.028 3.428
SSE 0.036 3.102
S 0.042 3.52
SSW 0.057 5.688
WSW 0.051 6.179
W 0.09 3.856
WNW 0.12 1.981
NNW 0.036 3.305
all 0.079 4.963
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=c(1, 2, 3), dir.set=1, num.sectors=12, method="loglm", alpha=NULL, subset=c("NA", "2009-12-31 23:50:00"), digits=3, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.2 5.85
NNE 0.2 4.14
ENE 0.2 3.89
E 0.2 3.07
ESE 0.2 3.35
SSE 0.2 2.95
S 0.2 3.35
SSW 0.2 5.37
WSW 0.2 6.01
W 0.2 3.78
WNW 0.2 1.95
NNW 0.2 3.23
all 0.2 4.83
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=1, dir.set=1, num.sectors=12, method="fixed", alpha=c(0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2), subset=NA, digits=2, print=TRUE)
Wind profile
alpha wind speed
[-] [m/s]
N 0.2 5.848
NNE 0.2 4.137
ENE 0.2 3.889
E 0.2 3.067
ESE 0.2 3.348
SSE 0.2 2.95
S 0.2 3.353
SSW 0.2 5.365
WSW 0.2 6.014
W 0.2 3.779
WNW 0.2 1.954
NNW 0.2 3.227
all 0.2 4.831
reference height: 40 m
call: windprofile(mast=neubuerg, v.set=1, dir.set=1, num.sectors=12, method="fixed", alpha=c(0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2), subset=NA, digits=3, print=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.