Расчет площади полигона с помощью пакета 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

Идея о том, что округление играет роль, кажется надуманной.

Другие вопросы по тегам