В пакете tmaptools read_shape выдает ошибку "слой не найден"

Я много раз успешно использовал функцию read_shape() из пакета tmaptools для импорта шейп-файлов, но теперь я столкнулся со странной ошибкой.

Для некоторых шейп-файлов команда read_shape() выдает сообщение:

«Ошибка в ogrInfo (dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,: Layer not found»)

Для других шейп-файлов у меня нет никаких проблем. Вот пример шейп-файла открытых данных, для которого я получаю эту ошибку: https://opendata.arcgis.com/datasets/3605212dc7f0477cacb4cca884487e3d_0.zip?outSR=%7B%22wkid%22%3A32054%2C%22latestWkid%22%3A32054%7D

Я считаю, что ошибка может быть связана с пакетом tmap, потому что я могу без проблем открывать соответствующие шейп-файлы в QGIS. Я использую текущие версии RStudio, tmap и tmaptools.

Любые идеи?


person John J.    schedule 12.02.2017    source источник
comment
Ошибка часто встречается с rgdal::readOGR() (который на самом деле загружает шейп-файл; tmaptools::read_shape() - это просто оболочка). Часто это происходит потому, что аргумент dsn (т.е. каталог) указан неправильно. Это и это может помочь.   -  person Phil    schedule 12.02.2017
comment
Спасибо @Phil за то, что указал мне правильный путь. tmaptools::read_shape() иногда путают, когда находится имя каталога, в котором хранится файл .shp и сопутствующие ему файлы. Если оставить имя папки без изменения, этой ошибки можно избежать.   -  person John J.    schedule 07.04.2017


Ответы (1)


После того, как я столкнулся с этой ошибкой в ​​нескольких ситуациях, я обнаружил, что единственное последовательное исправление - это использование другого инструмента.

Теперь я использую команду "shapefile" из растрового пакета.

So,

 #install.packages("raster")
 library(raster)
 shapefile("~/YOURFILEPATHHERE")

Это прочитает шейп-файл в ваш сеанс как SpatialPolygonsDataFrame, который затем может использоваться пакетом tmap (или аналогичным).

person John J.    schedule 14.08.2017