findCells {PBSmapping} | R Documentation |
Find the grid cells in a PolySet that contain events specified in
EventData. Similar to findPolys
, except this
function requires a PolySet resulting from
makeGrid
. This restriction allows this function to
calculate the result with greater efficiency.
findCells (events, polys)
events |
EventData to use. |
polys |
PolySet to use. |
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
). 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 (i.e., on two or
more boundaries). Thus, the same EID
can occur more than once
in the output.
LocationSet that links events with polygons.
combineEvents
,
findPolys
,
locateEvents
,
locatePolys
,
LocationSet,
makeGrid
.
#--- create some EventData: points in a diagonal line events <- data.frame(EID=1:11, X=seq(0, 2, length=11), Y=seq(0, 2, length=11)) events <- as.EventData(events, projection=1); #--- create a PolySet (a grid) polys <- makeGrid (x=seq(0, 2, by=0.50), y=seq(0, 2, by=0.50), 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 findCells and print the results fc <- findCells(events, polys) fc <- fc[order(fc$EID, fc$PID, fc$SID), ] fc$label <- paste(fc$PID, fc$SID, sep=", ") print (fc) #--- add labels to the graph addLabels(as.PolyData(fc[!duplicated(paste(fc$PID,fc$SID)), ], projection=1), placement="CENTROID", polys=as.PolySet(polys, projection=1), col=4)