Я пытаюсь создать набор полигонов из местоположений вершин, сохраненных в формате X, Y. Пожалуйста, со мной, как я новичок в R, и потратил немало времени на поиск других сообщений сегодня.
Вот пример моих данных - каждая строка представляет вершины для одного многоугольника. многоугольники являются квадратами
square <- rbind(c(255842.4, 4111578, 255862.4, 4111578, 255862.4, 4111558,
255842.4, 4111558, 255842.4, 4111578, 255842.4, 4111578),
c(257397.0, 4111309, 257417.0, 4111309, 257417.0, 4111289,
257397.0, 4111289, 257397.0, 4111309, 257397.0, 4111309))
ID <- c("SJER1", "SJER2")'
Я использую SpatialPolygons
, поэтому мои данные должны быть в списке. поэтому я создал цикл, чтобы попытаться получить мои данные в формате списка из матрицы.
Я создаю цикл, следующий за кодом, который я нашел в некоторых других вопросах на этом сайте. Я пробил каждый шаг, чтобы попытаться понять, почему я получаю только один полигон в качестве результата даже через два набора точек.
for (i in 1:2) {
pts <- rbind(c(square[i,1], square[i,2]), c(square[i,3], square[i,4]),
c(square[i,5],square[i,6]), c(square[i,7],square[i,8]),
c(square[i,9],square[i,10]))
sp1 <- list(Polygon(pts))
sp2 <- list(Polygons(sp1,i))
sp = SpatialPolygons(sp2)
}
plot(sp)
Не могли бы вы помочь мне понять, как я корректирую код, чтобы выписать два полигона вместо одного? А также, как я присваиваю идентификатор каждому полигону, учитывая, что я использую матрицу (квадрат) в качестве моего исходного набора данных, и если я назначаю идентификатор символа, он преобразует все мои данные в символ.
Моя конечная цель - два полигона в объекте SpatialPolygons
, первый с идентификатором SJER1
, а второй с идентификатором SJER2
, хранящимся в объекте SpatialPolygons
.
Затем я напишу это в шейп файл.
Спасибо за любые советы и за терпение. Leah