Расчет площади полигона с помощью пакета R геосфера
У меня проблемы с функцией areaPolygon в R. Иногда кажется, что она дает правильный результат, а иногда результаты кажутся на несколько порядков ниже.
Например, у меня есть многоугольник с этими точками:
lng <- c(-51.74768, -51.74768, -51.74735, -51.74735)
lat <- c(-0.1838690, -0.1840993, -0.1840984, -0.1838682)
и объединить их в массив данных
data <- data.frame(lng, lat)
Затем я пытаюсь получить площадь:
area <- geosphere::areaPolygon(x = data)
который выходит на 326928,8 м ^2.
Я ожидал чего-то большего в диапазоне 1000 м ^2.
Что странно, так это то, что это работает довольно хорошо примерно для половины вычисляемых ячеек, но не для другой половины.
В аналогичном вопросе Stackru отмечены странно малые значения из-за того, что точки расположены в неправильном порядке. Тем не менее, когда я строю график, например,
plot(data, type="l")
Кажется, что полигон рисует правильно.
Кто-нибудь знает, что здесь может быть не так? Спасибо!
0 ответов
С данными вашего примера, результат, как и ожидалось, как отмечено в комментариях.
library(geosphere)
lng <- c(-51.74768, -51.74768, -51.74735, -51.74735)
lat <- c(-0.1838690, -0.1840993, -0.1840984, -0.1838682)
d <- cbind(lng, lat)
geosphere::areaPolygon(d)
#[1] 935.2693
Идея о том, что округление играет роль, кажется надуманной.