Создавайте квадратные многоугольники из координат одного центра и площади в R

У меня возникают проблемы с отображением точных пикселей географического экстента в R. файлы поставляются со списком ежедневных одиночных координат и размером пикселя (областью). Также существует отдельный Z-элемент. Структура данных выглядит так:

 X <- c(1,3,6,7)
 Y <- c(3,2,7,8)
 Z <- c(38,23,12,12)
 Area <- c(32,23,45,67)

X и Y указаны в градусах долготы и широты, а площадь - в квадратных километрах. Я легко создаю точечные объекты, используя:

library(sp)
A <- cbind(X,Y,Z,Area)
B <- SpatialPoints(A)

Я легко рисую их, используя значения площади для определения "cex" для построения. Столбец Z - это интенсивность, и я использую эти значения для определения цветов. Как мне создать пространственные полигоны, используя площади для каждой точки в R? Я бы использовал эти точки для создания растров с сеткой.


person Joke O.    schedule 23.02.2015    source источник


Ответы (1)


Это должно помочь:

library(rgeos)      ## for gBuffer()
library(raster)     ## for bind()

ww <- sqrt(B$Area)/2  ## Widths of buffers needed to produce desired areas    

pp <- list()
for(i in seq_along(B)) {
    pp[i] <- gBuffer(B[i], width=ww[i], quadsegs=1, capStyle="SQUARE")
}
PP <- do.call(bind, pp)

## Check that it worked
plot(PP)
plot(B, add=TRUE)
text(B, labels=1:4, adj=c(-1,0), col="red")

введите описание изображения здесь

person Josh O'Brien    schedule 23.02.2015
comment
Спасибо, Джош. Это сработало. Если у вас есть do.call (bind, res), я изменил его на (bind, pp), чтобы он работал. - person Joke O.; 23.02.2015
comment
@JokeO. - О да. Спасибо, что уловили это. Ваше здоровье. - person Josh O'Brien; 23.02.2015
comment
У вас есть идея, как добавить значения Z к полигонам перед преобразованием в растр? - person Joke O.; 23.02.2015
comment
@JokeO. - Не раньше, а потом вы можете просто сделать SPP <- SpatialPolygonsDataFrame(PP, data.frame(B)), после чего data.frame(SPP) и т. Д. Найдут прикрепленные данные. - person Josh O'Brien; 23.02.2015