R: Smooth curves and put arrows in the beginning and end.
geocurve
R Documentation
Smooth curves and put arrows in the beginning and end.
Description
Smooth curves and put arrows in the beginning and end. Useful for plotting
closed areas, making smooth lines with arrows etc. The function needs
dataframe with columns lat and lon. No NA values currently allowed. Uses
the functions ns or ps to smooth the curve depending on if the curve is open
or closed. Smooths seperatly lat ~ ns(d,df) , lon ~ ns(d,df). d is here
distance along the curve. If the same curve is smoothed many times the
output is stored the first time and the function called later with smooth=F.
Degrees of Freedom in smoothing the curve. Default is number of
points/2. Maximum allowed df is nrow(data)-1. df="all" gives this value.
n
How much denser the output data is than the input data. n=10 means
that the value of the smoothing spline is predicted at 9 evenly spaced
points beetween each pair of data points. Default is n = 10.
open
Is the curve open or closed. Default open.
arrow
If there is an arrow in the beginning, end or both of the line
segment. Options are "none","start","end","both".
col
Color of line.
lwd
Width of line segment. Default is 1. lwd=2 seems to fit well
with default size of arrows.
size
Size of arrow, default 0.2 inches.
angle
Angle of arrow opening, default 15 degrees.
smooth
Should the data be smoothed, default is T.
plot
Should the curve be plotted, default is T.
...
Other parameters to geolines and geopolygons.
Value
If smooth=F = the input data is returned, else smoothed inputdata.
Side Effects
Plots the line segment on the screen.
See Also
geolines, geopolygon, ns.
Examples
## Not run: # define curve store the result.
curve1 <- geocurve(geolocator(type="p"),arrow="end",lwd=2)
# use the result.
geocurve(curve1,smooth=F,arrow="start",lwd=2,col=150)
# define closed area and hatch it.
area1 <- geocurve(geodefine(),open=F)
geopolygon(area1,density=10,col=1)
# Make closed curve with big arrow and not store the result.
geocurve(geodefine(),open=F,arrow="end",lwd=2,size=0.5)
## End(Not run)