Объединение большого пространственного многоугольника, который выглядит как сетка, с растровым слоем R - PullRequest
0 голосов
/ 18 октября 2018

У меня есть большой фрейм данных Пространственный полигон, у меня также есть растровый слой, который имеет много точек информации.Оба имеют географическую привязку, и я хотел бы наложить сетку поверх моего растрового слоя и назначить каждую точку внутри ячейке сетки, в которую она попадает.Проблема, с которой я сталкиваюсь, заключается в том, что имеющаяся у меня сетка не обрабатывается как сетка, а просто построенный полигон. Это то, что я получаю, когда строю одно поверх другого в ggplot после преобразования обоих в точки. s

Просмотр данных, измененных на точки:

Сетка:

      long    lat order  hole piece   id  group 
1 -101.940 31.710     1 FALSE     1 1012 1012.1  
2 -101.940 31.715     4 FALSE     1 1012 1012.1  
3 -101.940 31.710     5 FALSE     1 1012 1012.1  
4 -101.930 31.670     3 FALSE     1 1016 1016.1  
5 -101.925 31.670     4 FALSE     1 1016 1016.1  
6 -101.890 31.715     1 FALSE     1 1028 1028.1  

Растровый слой:

      longS     latS intensity
1 -101.9395 31.73822        85
2 -101.9394 31.73822        85
3 -101.9393 31.73822        86
4 -101.9392 31.73822        87
5 -101.9391 31.73822        62
6 -101.9390 31.73822        65

Преобразования выполнены с использованием:

S <- rasterToPoints(S)
SHP <- fortify(SHP)

Вещи, которые я пробовал: Различные методы слияния для полигонов и растра, но для примеров я нашел людей, которые создали там собственную сетку, и в этом случае я должен использовать эту сетку или одну с точнымразмеры.

Iv также пытался изменить их на точки и объединить на основе идентификатора многоугольника, но я обнаружил, что идентификатор не связан с единицами ячейки, а только с строящимися линиями.

Любая помощь по слиянию двух и назначению точек внутри показанных ячеек сетки будет принята с благодарностью.

1 Ответ

0 голосов
/ 18 октября 2018

Ваш вопрос сбивает с толку, поскольку отображаемые вами данные, похоже, не совпадают с тем, что вы указали, и путем преобразования данных в готовую для ggplot.Вместо этого, пожалуйста, предоставьте несколько простых примеров данных, если вы можете, например:

library(raster)
r <- raster(nrow=2, ncol=4, vals=1:8)  
p <- as(r, 'SpatialPolygonsDataFrame')
r <- disaggregate(r, 2)
values(r) <- 1:ncell(r)
plot(r)
plot(p, add=TRUE)

С SpatialPolygonsDataFrame p и RasterLayer r, теперь вы можете сделать

p$ID <- 1:length(p)
x <- rasterize(p, r, 'ID')
s <- stack(x, r)
head(values(s))

#     layer.1 layer.2
#[1,]       1       1
#[2,]       1       2
#[3,]       2       3
#[4,]       2       4
#[5,]       3       5
#[6,]       3       6

Или

e <- extract(r, p)

e[1:3]
#[[1]]
#[1]  1  2  9 10
#[[2]]
#[1]  3  4 11 12
#[[3]]
#[1]  5  6 13 14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...