findPolys | R Documentation |
Find the polygons in a PolySet that contain events specified in EventData.
findPolys (events, polys, maxRows = 1e+05, includeBdry=NULL)
events |
EventData to use. |
polys |
PolySet to use. |
maxRows |
estimated maximum number of rows in the output LocationSet. |
includeBdry |
numeric: determines how points on boundaries are handled: |
The resulting data frame, a LocationSet, contains the columns
EID
, PID
, SID
(if in polys
), and
Bdry
, where an event (EID
) occurs in a polygon
(PID
, SID
) and SID
does not correspond to an
inner boundary. The Boolean variable Bdry
indicates whether an
event lies on a polygon's edge. Note that if an event lies properly
outside of all the polygons, then a record with (EID
,
PID
, SID
) does not occur in the output. It may happen,
however, that an event occurs in multiple polygons. Thus, the same
EID
can occur more than once in the output.
If an event happens to lie at the boundary intersection of two or more polygons
then one EID
will be associated with two or more polygons. A user
can choose to manipulate this result by setting the argument includeBdry
to a numeric value that constrains the association of a boundary event to
0 or 1 polygon (see argument description above).
LocationSet that links events with polygons.
Nicholas M. Boers, Staff Software Engineer
Jobber, Edmonton AB
Last modified Rd: 2014-12-15
combineEvents
,
findCells
,
locateEvents
,
locatePolys
,
LocationSet,
makeGrid
.
local(envir=.PBSmapEnv,expr={
oldpar = par(no.readonly=TRUE)
#--- create some EventData: a column of points at X = 0.5
events <- data.frame(EID=1:10, X=.5, Y=seq(0, 2, length=10))
events <- as.EventData(events, projection=1)
#--- create a PolySet: two squares with the second above the first
polys <- data.frame(PID=c(rep(1, 4), rep(2, 4)), POS=c(1:4, 1:4),
X=c(0, 1, 1, 0, 0, 1, 1, 0),
Y=c(0, 0, 1, 1, 1, 1, 2, 2))
polys <- as.PolySet(polys, projection=1)
#--- show a picture
plotPolys(polys, xlim=range(polys$X)+c(-0.1, 0.1),
ylim=range(polys$Y)+c(-0.1, 0.1), projection=1);
addPoints(events, col=2);
#--- run findPolys and print the results
print(findPolys(events, polys))
par(oldpar)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.