poly2nb {spdep} неправильно идентифицирует соседей - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь сделать некоторые пространственные обобщенные линейные смешанные модели для данных площадных единиц с помощью пакета CARBayes. Как часть этого, мне нужно идентифицировать соседей многоугольника в список соседей, используя spdep::poly2nb.

Шейп-файл, который у меня есть в NSW, находится здесь: Dropbox с шейп-файлом

Существует свободно доступная широкая версия для Австралии по адресу: ABS.gov.au но я только после NSW.

library(spdep)
Library(sf)
Library(sp)
Library(lwgeom)

p <- read_sf("NSW_POA_arc.shp")

p.nb <- poly2nb(p)

coords <- st_coordinates(st_centroid(st_geometry(p))) # this seems to miss some polygons

plot(st_geometry(p), border="grey")
plot(xx, coords, pch = 19, cex = 0.4, add=TRUE)

enter image description here

По какой-то причине poly2nb не признает, что некоторые из полигонов соседи друг к другу. Я пытался использовать функцию snap, но она работает только на snap = 0.0001. Это также добавляет связи с не соседями.

xx <- poly2nb(p, snap = 0.0001)
plot(st_geometry(p), border="grey")
plot(xx, coords, pch = 19, cex = 0.4, add=TRUE)

enter image description here

Я не уверен, что это проблема топологии, но lwgeom::st_is_valid говорит, что полигоны действительны.

Любые идеи были бы потрясающими. Я очень новичок в написании этих вопросов должным образом, поэтому любые отзывы приветствуются. Большое спасибо

...