Список доступных слоев WFS и чтение во фрейм данных с помощью rgdal

У меня есть следующая проблема, согласно разным источникам, она должна иметь возможность читать слой WFS в R, используя rgdal.

dsn<-"WFS:http://geomap.reteunitaria.piemonte.it/ws/gsareprot/rp-01/areeprotwfs/wfs_gsareprot_1?service=WFS&request=getCapabilities"

ogrListLayers(dsn)
readOGR(dsn,"SIC")

Результатом этого кода должно быть 1) перечисление доступного слоя WFS и 2) чтение определенного слоя (SIC) в R как пространственный (точечный) фрейм данных.

Я пробовал несколько других серверов WFS, но они не работают. Я всегда получаю предупреждение:

Cannot open data source

При проверке драйвера WFS я получаю следующий результат:

> "WFS" %in% ogrDrivers()$name
[1] FALSE

Ну похоже драйвер WFS не реализован в rgdal (уже?) Или почему так много примеров "утверждающих" обратное?

Я также попробовал пакет gdalUtils, и он работает, но он выдает все консольное сообщение ogrinfo.exe, а не только доступные слои (я думаю, что он «просто» вызывает ogrinfo.exe и отправляет результат обратно в R, как используя команду r shell или system).

Ну, кто-нибудь знает, что я делаю неправильно, или возможно ли что-то подобное с rgdal или любым подобным пакетом?


person Deset    schedule 16.08.2015    source источник


Ответы (2)


Вы можете комбинировать два пакета для выполнения своей задачи.

Сначала преобразуйте нужный слой в локальный шейп-файл с помощью gdalUtils. Затем используйте rgdal как обычно. ПРИМЕЧАНИЕ: вы увидите предупреждающее сообщение после вызова ogr2ogr, но для меня он выполнил преобразование нормально. Кроме того, ogr2ogr не будет перезаписывать локальные файлы, если параметр overwrite не равен TRUE (есть и другие параметры, которые также могут быть полезны).

library(gdalUtils)
library(rgdal)

dsn <- "WFS:http://geomap.reteunitaria.piemonte.it/ws/gsareprot/rp-01/areeprotwfs/wfs_gsareprot_1?service=WFS&request=getCapabilities"

ogrinfo(dsn, so=TRUE)
## [1] "Had to open data source read only."
## [2] "INFO: Open of `WFS:http://geomap.reteunitaria.piemonte.it/ws/gsareprot/rp-01/areeprotwfs/wfs_gsareprot_1?service=WFS&request=getCapabilities'"
## [3] "      using driver `WFS' successful."
## [4] "1: AreeProtette"
## [5] "2: ZPS"  
## [6] "3: SIC"

ogr2ogr(dsn, "sic.shp", "SIC")

sic <- readOGR("sic.shp", "sic", stringsAsFactors=FALSE)
## OGR data source with driver: ESRI Shapefile 
## Source: "sic.shp", layer: "sic"
## with 128 features
## It has 23 fields

plot(sic)

введите описание изображения здесь

str(sic@data)

## 'data.frame': 128 obs. of  23 variables:
##  $ gml_id    : chr  "SIC.510" "SIC.472" "SIC.470" "SIC.508" ...
##  $ objectid  : chr  "510" "472" "470" "508" ...
##  $ inspire_id: chr  NA NA NA NA ...
##  $ codice    : chr  "IT1160026" "IT1160017" "IT1160018" "IT1160020" ...
##  $ nome      : chr  "Faggete di Pamparato, Tana del Forno, Grotta delle Turbiglie e Grotte di Bossea" "Stazione di Linum narbonense" "Sorgenti del T.te Maira, Bosco di Saretto, Rocca Provenzale" "Bosco di Bagnasco" ...
##  $ cod_tipo  : chr  "B" "B" "B" "B" ...
##  $ tipo      : chr  "SIC" "SIC" "SIC" "SIC" ...
##  $ cod_reg_bi: chr  "1" "1" "1" "1" ...
##  $ des_reg_bi: chr  "Alpina" "Alpina" "Alpina" "Alpina" ...
##  $ mese_istit: chr  "11" "11" "11" "11" ...
##  $ anno_istit: chr  "1996" "1996" "1996" "1996" ...
##  $ mese_ultmo: chr  "2" NA NA NA ...
##  $ anno_ultmo: chr  "2002" NA NA NA ...
##  $ sup_sito  : chr  "29396102.9972" "82819.1127" "7272687.002" "3797600.3563" ...
##  $ perim_sito: chr  "29261.8758" "1227.8846" "17650.289" "9081.4963" ...
##  $ url1      : chr  "http://gis.csi.it/parchi/schede/IT1160026.pdf" "http://gis.csi.it/parchi/schede/IT1160017.pdf" "http://gis.csi.it/parchi/schede/IT1160018.pdf" "http://gis.csi.it/parchi/schede/IT1160020.pdf" ...
##  $ url2      : chr  "http://gis.csi.it/parchi/carte/IT1160026.djvu" "http://gis.csi.it/parchi/carte/IT1160017.djvu" "http://gis.csi.it/parchi/carte/IT1160018.djvu" "http://gis.csi.it/parchi/carte/IT1160020.djvu" ...
##  $ fk_ente   : chr  NA NA NA NA ...
##  $ nome_ente : chr  NA NA NA NA ...
##  $ url3      : chr  NA NA NA NA ...
##  $ url4      : chr  NA NA NA NA ...
##  $ tipo_geome: chr  "poligono" "poligono" "poligono" "poligono" ...
##  $ schema    : chr  "Natura2000" "Natura2000" "Natura2000" "Natura2000" ...
person hrbrmstr    schedule 16.08.2015
comment
Я попробовал этот метод для этой ссылки: "http://inspire.redcar-cleveland.gov.uk/geoserver/RCBC_INSPIRE_WFS/wfs?request=getfeature&version=2.0.0&typeName=RCBC_INSPIRE_WFS:RCBC-LANDSCAPE_CHARACTER_TRACT&outputformat=GML32", но получил статус 1. Как я мог открыть его, не могли бы вы подсказать? - person Peter.k; 30.05.2019

Ни спрашивающий, ни отвечающий не говорят, как был установлен rgdal. Если это двоичный файл CRAN для Windows или OSX, он вполне может иметь меньший набор драйверов, чем независимая установка GDAL, лежащего в основе gdalUtils. Всегда указывайте свою платформу, и был ли rgdal установлен двоичным или из исходного кода, и всегда предоставляйте вывод сообщений, отображаемых как загрузки rgdal, а также sessionInfo(), чтобы показать платформу, на которой вы работаете.

Учитывая возможную разницу в наборах драйверов, данный совет кажется разумным.

person Roger Bivand    schedule 30.09.2015