xy2segvert | R Documentation |
This function determines the closest vertex in the river network to each point of XY data and returns a list of river locations, defined as segment numbers and vertex numbers.
xy2segvert(x, y, rivers)
x |
A vector of x-coordinates to transform |
y |
A vector of y-coordinates to transform |
rivers |
The river network object to use |
A data frame of river locations, with segment numbers in $seg
,
vertex numbers in $vert
, and the snapping distance for each point in
$snapdist
. Two additional columns are $snap_x
and $snap_y
,
which give the x- and y-coordinates snapped to the river network.
Conversion to river locations is only valid if the input XY coordinates and river network are in the same projected coordinate system. Point data in geographic coordinates can be projected using sf_project in package 'sf', and an example is shown below.
Matt Tyers
pointshp2segvert, segvert2xy
data(Gulk,fakefish)
head(fakefish)
fakefish.riv <- xy2segvert(x=fakefish$x, y=fakefish$y, rivers=Gulk)
head(fakefish.riv)
plot(x=Gulk, xlim=c(862000,882000), ylim=c(6978000,6993000))
points(fakefish$x, fakefish$y, pch=16, col=2)
riverpoints(seg=fakefish.riv$seg, vert=fakefish.riv$vert, rivers=Gulk, pch=15, col=4)
## converting a matrix of points stored in long-lat to Alaska Albers Equal Area:
data(line98, Kenai1)
head(line98) # note that coordinates are stored in long-lat, NOT lat-long
line98albers <- sf::sf_project(pts=line98, to="+proj=aea +lat_1=55 +lat_2=65
+lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs
+ellps=GRS80")
head(line98albers)
zoomtoseg(seg=c(162,19), rivers=Kenai1)
points(line98albers)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.