人々。ここでは(それが依存しているSPパッケージと機能)Rのラスタパッケージを使用するソリューションです:
library(raster)
## Create a SpatialLines object
a <- c(2.1, 3.9)
b <- c(3.8, 4.8)
## Method #1 -- Uses functions from the sp package.
SL <- SpatialLines(list(Lines(list(Line(rbind(a,b))), "ab")))
## Method #2 -- Uses readWKT() from the rgeos package. Easier to read.
# library(rgeos)
# string <- paste0("LINESTRING(", paste(a, b, collapse=", "), ")")
# SL <- readWKT(string)
## Create a raster object
m <- 10
n <- 10
mat <- matrix(seq_len(m*n), nrow = m, ncol = n)
r <- raster(mat, xmn = 0, xmx = n, ymn = 0, ymx = m)
## Find which cells are intersected & get coordinates of their lower-left corners
ii <- extract(r, SL, cellnumbers=TRUE)[[1]][, "cell"]
floor(xyFromCell(r, ii))
# x y
# [1,] 2 4
# [2,] 3 4
# [3,] 2 3
## Confirm that this is correct with a plot
image(r)
plot(as(rasterize(SL, r), "SpatialPolygons"),
border = "darkgrey", lwd = 2, add = TRUE)
lines(SL)
あなたはおそらく*代わりに*象限*のグリッド*細胞を意味します。 – lhf
ありがとう、あなたはそれらを細胞と呼ぶことができます。助言がありますか? –
http://stackoverflow.com/questions/11694886/traverse-a-2-5d-grid(zの部分を無視する)の可能な複製。 – lhf