Find Grid Cells that Contain Events
findCells (events, polys, includeBdry=NULL)
events |
EventData to use. |
polys |
PolySet to use. |
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
). The Boolean (0,1) 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.
If an event happens to lie at the boundary intersection of four (or two) grid cells
then one EID
will be associated with four (or two) grid cells. 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 grid cell (see argument description above).
LocationSet that links events with polygons.
Nicholas M. Boers, Associate Professor – Computer Science
MacEwan University, Edmonton AB
Last modified Rd: 2014-12-15
local(envir=.PBSmapEnv,expr={ oldpar = par(no.readonly=TRUE) #--- 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) par(oldpar) })
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.