Ошибка в rgeos::createPolygonsComment(oobj): осиротевшая дыра с использованием geojsonio в R
Я пытаюсь создать .geojson
файл в моем локальном репозитории для этого вывода. Я загружаю файл локально, вношу изменения и пишуinput21.geojson
Однако я получаю сообщение:
Error in rgeos::createPolygonsComment(oobj) :
rgeos_PolyCreateComment: orphaned hole, cannot find containing polygon for hole at index 51
Мой код на данный момент:
library(jsonlite)
library(rgdal)
library(downloader)
library(geojsonio)
library(maptools)
u <- paste0('https://servicodados.ibge.gov.br/api/v2/malhas/21?formato=application/vnd.geo+json')
downloader::download(url = u, destfile = "/tmp/gas.GeoJSON")
gas <- readOGR(dsn = "/tmp/gas.GeoJSON")
gas$var0031 <- 21
gas$var0517 <- 0
gas$var0514 <- as.numeric(substr(as.character(gas$var0031),1,1))
gas$var0512 <- "MA"
gas$var0513 <- "Maranhão"
gas <- gas[which(names(gas) %in% c("var0517", "var0031", "var0514", "var0512", "var0513"))]
geojsonio::geojson_write(gas, file = paste0("./data/in/sidra_malhas/input21.geojson"))
1 ответ
Я понял, что пакет называется cleangeo
который исправляет некоторые проблемы, связанные с геоструктурой, добавляя строки, решающие проблему:
gas <- cleangeo::clgeo_Clean(gas)
slot(gas, "polygons") <- lapply(slot(gas, "polygons"), checkPolygonsHoles)
перед строкой:
geojsonio::geojson_write(gas, file = paste0("./data/in/sidra_malhas/input21.geojson"))