2 votos

R gdalUtils::ogrinfo error o muy lento

Estoy tirando de los datos de WFS en R y utilizando gdalUtils::ogrinfo para ver los nombres de capa disponibles en un servidor WFS. Usando la misma url en QGIS, esto es muy rápido y da información completa. Con gdalUtils::ogrinfo o me da un error, o es muy lento.

Esta url funciona bien en QGIS (nota: tendrás que conseguir tu propia Clave y sustituirla <YourKey> si quieres probarlo)

https://data.linz.govt.nz/services;key=<YourKey>/wfs?

El siguiente código en R:

keyLINZ <- "<YourKey>"
dsnLINZ <- paste0("https://data.linz.govt.nz/services;key=", keyLINZ,"/wfs?")
ogrinfo(dsnLINZ, ro = TRUE, so = TRUE, verbose = TRUE)

Da el siguiente error:

 [1] "ERROR 4: Failed to read GeoJSON data"                                                                                                
 [2] "FAILURE:"                                                                                                                            
 [3] "Unable to open datasource `https://data.linz.govt.nz/services;key=<YourKey>/wfs?' with the following drivers."
...
list of all GDAL drivers
...
attr(,"status")
[1] 1
Warning message:
running command '"C:\OSGeo4W64\bin\ogrinfo.exe" -ro  -so  "https://data.linz.govt.nz/services;key=<YourKey>/wfs?" ' had status 1 

Sigue sin funcionar añadiendo request=GetCapabilities al final de la url (como otras urls de WFS que funcionan).

Sin embargo, funciona añadiendo SERVICE=WFS&REQUEST=GetCapabilities al final de la url. Pero, toma un muy mucho tiempo para enumerar las capas. Además, sólo muestra el número de capa y el tipo de característica (polígono, punto, línea). Ninguna de las otras informaciones que QGIS enumera (Título, Nombre de la capa, Resumen, sistema de coordenadas) se enumeran, incluso con el q = TRUE opción establecida.

¿Cómo puedo obtener la información WFS del servidor en R de forma similar a la información en QGIS y a la misma velocidad?

1voto

uvts_cvs Puntos 4163

Desarrollador de gdalUtils aquí: gdalUtils no está haciendo nada excepto envolver las utilidades de GDAL en una llamada al sistema de R(), por lo que la velocidad de ejecución va a ser inherente al ejecutable de gdal, nada específico de la envoltura de R.

Su salida verbosa puede ayudar -- debería ser capaz de copiar/pegar donde dice "comando en ejecución" en su ventana cmd de Windows y tratar de averiguar el error de esa manera -- si se ejecuta en su ventana de comandos, eso me dice que puede haber algo muy raro. Sospecho que verás el mismo error en tu ventana de comandos. Intenta modificar eso para que funcione. Una posibilidad es que tu cadena tenga algunos caracteres Impares que a R no le gusten. ¿Puedes probar la forma "manual" y tal vez enviarme un mensaje fuera de línea (puedes obtener mi información de contacto en la ayuda del paquete) si quieres más ayuda para solucionar el problema?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X