Открытие файла SHP в RStudio

У меня есть пакет из пяти файлов со всеми французскими административными ограничениями (доступен здесь). Все эти пять файлов LIMITE_DEPARTEMENT.SHP/DBF/AVL/PRJ/SHX находятся в папке /home/jonathan/R.

Я использую этот код:

library(maptools)
setwd('/home/jonathan/R')
france<-readShapeSpatial("LIMITE_DEPARTEMENT", proj4string=CRS("+proj=longlat"))

который получает меня:

Error in read.dbf(filen1) : unable to open DBF file

Я пробовал в R (3.0.1) и в Rstudio (0.97.551). Я также прочитал этот пост и этот один. Но теперь я понятия не имею, что я могу сделать...

Спасибо за любую помощь.


person jonathan    schedule 26.06.2013    source источник


Ответы (4)


Ошибка связана с тем, что расширение dbf-файла .DBF, а не .dbf, поэтому один из способов обхода — просто переименовать его.

И лучше использовать функцию rgdal::readOGR для чтения шейп-файла в R.

У меня есть файл формы в моей папке /tmp, поэтому измените его на ваш фактический путь, чтобы он работал.

require(rgdal)
file.copy(from = "/tmp/LIMITE_DEPARTEMENT.DBF", 
          to = "/tmp/LIMITE_DEPARTEMENT.dbf")
file.remove("/tmp/LIMITE_DEPARTEMENT.DBF")
depart <- readOGR(dsn = "/tmp", layer = "LIMITE_DEPARTEMENT")
str(depart, max.level = 2)
## Formal class 'SpatialLinesDataFrame' [package "sp"] with 4 slots
##   ..@ data       :'data.frame':  330 obs. of  2 variables:
##   ..@ lines      :List of 330
##   .. .. [list output truncated]
##   ..@ bbox       : num [1:2, 1:2] 99226 6049647 1242375 7110524
##   .. ..- attr(*, "dimnames")=List of 2
##   ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
person dickoa    schedule 26.06.2013
comment
Бинго! Это было так просто... (и сложно) Спасибо, спасибо, спасибо... :) - person jonathan; 26.06.2013

Я также начинаю с R (по-французски…), и у меня была похожая проблема с тем же сообщением, которое вы получаете. И я нашел решение: я просто вставил точный путь к файлу .shp. Например, с моим Mac: /Applications/R/DEPARTEMENT/DEPARTEMENT.SHP. Справочник GEOFLAT 2014 (содержащий файл «DEPARTEMENT.SHP») был загружен с веб-сайта IGN (Национальный географический институт). В первый раз я изменил «SHP» на «shp» (и написал так в консоли R: «DEPARTEMENT.shp»): безрезультатно. Во второй раз я имел в виду завершенный путь к файлу: и успех.

Я использовал расширения «maps» и «maptools» (с «sp» и так далее).

Попробуйте, пожалуйста, и ответьте мне.

person fred02840    schedule 23.12.2014

Взгляните на readOGR(dsn = "/path/to/data", layer = "LIMITE_DEPARTEMENT", ...), который идет вместе с rgdal. Обычно у него нет проблем с файлами .dbf.

person fdetsch    schedule 26.06.2013

Возможно, вам нужно включить внешний пакет для чтения файлов .dbf.

person matteo    schedule 26.06.2013
comment
Иностранный пакет теперь перевернут... и ничего не меняется. Я также пробовал « France‹-read.dbf(LIMITE_DEPARTEMENT, package=foreign) » - person jonathan; 26.06.2013
comment
Я попробовал с shape‹-readShapeSpatial(path_to_shape/shape.shp), и это сработало. - person matteo; 26.06.2013
comment
гррр... так что тут происходит? Если я переименовываю файлы в shape.shp и shape.dbf, ошибка становится ошибкой при открытии файла SHP. // Используете ли вы какой-либо другой пакет? sp/gripd/решетка/gpclib ? - person jonathan; 26.06.2013
comment
на самом деле нет .. Я установил sp и maptools. - person matteo; 26.06.2013