Очевидно, что ваш объект с именем 'multi_part' имеет только один (multi?) Многоугольник, так как area
возвращает одно значение.Здесь я проиллюстрирую, как исследовать то, что вам нужно:
library(raster)
d <- getData('GADM', country='Isle of Man', level=0)
area(d)
[1] 579672897
Разделить на 4 полигона (острова)
dd <- disaggregate(d)
a <- area(dd)
a
[1] 19424.12 2705442.41 25629.79 576922400.90
sum(a)
[1] 579672897
Одна и та же область, и нет никаких причин, по которым они будут другими,За исключением, возможно, если есть путаница с отверстиями многоугольника.Трудно комментировать без ваших данных.
Вы можете записать эти объекты на диск (см. Ниже) и посмотреть, что ArcGIS предоставляет вам как область (но обратите внимание, что в этом примере используются координаты lon / lat, я не уверен, что ArcGIS может вычислить области по ним).
shapefile(d, "man.shp")
Вот случай с и без отверстия:
p1 <- rbind(c(-180,-20), c(-140,55), c(10, 0), c(-140,-60), c(-180,-20))
p2 <- rbind(c(-150,-20), c(-100,-10), c(-110,20), c(-150,-20))
# two (overlapping) polygons (no hole)
pol1 <- spPolygons(p1, p2, crs="+proj=utm +zone=1 +datum=WGS84")
# single polygon with hole
pol2 <- spPolygons(list(p1, p2), crs="+proj=utm +zone=1 +datum=WGS84")
a <- area(pol1) / 10e+9
b <- area(pol2) / 10e+9
a
#[1] 10925 800
sum(a)
#[1] 11725
a[1]-a[2]
#[1] 10125
b
соответствует a[1] - a[2]
, как и ожидалось
b
#[1] 10125
Я получаю точноте же результаты с ArcGIS, используя «вычислить геометрию» для поля в таблицах атрибутов.