как агрегировать / растворять подмножество полигонов в шейп-файле в R - PullRequest
0 голосов
/ 08 мая 2019

У меня есть шейп-файл "разновидностей" (AA_G, BB_P, CC_P), встречающихся в разных африканских странах ("страна2"), с информацией о количестве особей в стране2 ("n_ind") и известном ареале видовв стране2 ("область").

Для каждого вида мне нужно распустить все страны2, которые имеют общую границу и имеют n_ind = 0;но я не хочу, чтобы другие страны распались, даже если они разделяют такое же количество людей.т.е. мне нужно применить «растворение» к подмножеству данных (когда n_ind = 0), сохраняя при этом все другие многоугольники (страна2), как они есть.Мне также нужно суммировать площади "новых" стран (то есть объединенной страны2).

Вот часть моих данных:

структура dput (data) (list (вид = структура (c (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,3L, 3L), .Label = c («AA_G», «BB_P», «CC_P»), class = «factor»), country2 = структура (c (3L, 4L, 6L, 7L, 10L, 11L, 12L,13L, 14L, 17L, 18L, 1L, 2L, 8L, 9L, 15L, 16L, 19L, 20L, 5L, 7L, 13L, 14L, 17L), .Label = c («AGO», «BDI», «BEN»"," BFA "," CAF "," CIV "," CMR "," COD "," COG "," GHA "," MLI "," MRT "," NER "," NGA "," RWA ","SSD", "TCD", "TGO", "TZA", "UGA"), класс = "фактор"), n_ind = c (5L, 6L, 1L, 0L, 0L, 2L, 7L, 1L, 0L,0L, 4L, 0L, 2L, 10L, 6L, 0L, 1L, 0L, 1L, 0L, 5L, 0L, 0L, 1L), зона = c (100L, 200L, 34L, 56L, 144L, 567L, 233L, 345L, 455L, 100L, 45L, 56L, 78L, 90L, 24L, 567L, 56L, 78L, 88L, 73L, 567L, 321L, 432L)), класс = "data.frame", row.names = c (NA, -24L))

Я не мог найти что-нибудь о том, как перфорироватьИли эти вычисления в R. aggregate () могли бы стать одним из очевидных путей, но я не был в состоянии сказать функции агрегировать только country2 с n_ind = 0 - так как это ключевая проблема.Любые предложения будут полезны - большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...