[R-sig-Geo] rgdal: Cannot open data source
Rainer Hurling
rhurlin at gwdg.de
Thu Jul 16 15:52:53 CEST 2015
Hi Roger,
Am 16.07.2015 um 11:55 schrieb Roger Bivand:
> Do you have other versions of GDAL on the system, and was rgdal 1.0-4
> installed against GDAL 2.0.0? I believe that the package should check
> that the GDAL runtime is the same as the one used to install rgdal, but
> the check may not be robust. I am away until mid-August, and cannot help
> with FreeBSD anyway. Does setwd() to the dsn of the shapefile help ,
> then dsn=":"? Does
Yep. rgdal_1.0-4 is build against GDAL 2.0.0. Version 2.0.0 is the only
one installed, see sessionInfo() at bottom of previous mail.
Other functions like ogrDrivers() work fine:
ogrDrivers()
name
long_name write copy isVector
1 ARCGEN Arc/Info
Generate FALSE FALSE TRUE
2 AVCBin Arc/Info Binary
Coverage FALSE FALSE TRUE
3 AVCE00 Arc/Info E00 (ASCII)
Coverage FALSE FALSE TRUE
4 AeronavFAA
Aeronav FAA FALSE FALSE TRUE
5 BNA
Atlas BNA TRUE FALSE TRUE
[..snip..]
And also, ogrinfo() from package gdalUtils works fine:
gdalUtils::ogrinfo("/home/rhurlin/SpatialData/world",
"TM_WORLD_BORDERS-0.3", so=TRUE)
[1] "INFO: Open of `/home/rhurlin/SpatialData/world'"
[2] " using driver `ESRI Shapefile' successful."
[3] ""
[4] "Layer name: TM_WORLD_BORDERS-0.3"
[5] "Metadata:"
[6] " DBF_DATE_LAST_UPDATE=2008-07-30"
[7] "Geometry: Polygon"
[8] "Feature Count: 246"
[9] "Extent: (-180.000000, -90.000000) - (180.000000, 83.623596)"
[10] "Layer SRS WKT:"
[11] "GEOGCS[\"GCS_WGS_1984\","
[12] " DATUM[\"WGS_1984\","
[13] " SPHEROID[\"WGS_84\",6378137.0,298.257223563]],"
[14] " PRIMEM[\"Greenwich\",0.0],"
[15] " UNIT[\"Degree\",0.0174532925199433]]"
[16] "FIPS: String (2.0)"
[17] "ISO2: String (2.0)"
[18] "ISO3: String (3.0)"
[19] "UN: Integer (3.0)"
[20] "NAME: String (50.0)"
[21] "AREA: Integer (7.0)"
[22] "POP2005: Integer64 (10.0)"
[23] "REGION: Integer (3.0)"
[24] "SUBREGION: Integer (3.0)"
[25] "LON: Real (8.3)"
[26] "LAT: Real (7.3)"
I am afraid, I don't get you with the dsn=":" thing ;(
> ogrInfo("/home/rhurlin/SpatialData/world/TM_WORLD_BORDERS-0.3.shp",
> "TM_WORLD_BORDERS-0.3")
This works fine:
ogrInfo("/home/rhurlin/SpatialData/world/TM_WORLD_BORDERS-0.3.shp",
"TM_WORLD_BORDERS-0.3")
Source: "/home/rhurlin/SpatialData/world/TM_WORLD_BORDERS-0.3.shp",
layer: "TM_WORLD_BORDERS-0.3"
Driver: ESRI Shapefile; number of rows: 246
Feature type: wkbPolygon with 2 dimensions
Extent: (-180 -90) - (180 83.6236)
CRS: +proj=longlat +datum=WGS84 +no_defs
LDID: 87
Number of fields: 11
name type length typeName
1 FIPS 4 2 String
2 ISO2 4 2 String
3 ISO3 4 3 String
4 UN 0 3 Integer
5 NAME 4 50 String
6 AREA 0 7 Integer
7 POP2005 12 10 Integer64
8 REGION 0 3 Integer
9 SUBREGION 0 3 Integer
10 LON 2 8 Real
11 LAT 2 7 Real
> help?
>
> Is the shapefile in that folder? Do other drivers work? Does
> example(readOGR) work?
It is the same as with ogrInfo(). With shape integrated in the dsn
string it works, without not:
tm <- readOGR("/home/rhurlin/SpatialData/world", "TM_WORLD_BORDERS-0.3")
Fehler in ogrInfo(dsn = dsn, layer = layer, encoding = encoding,
use_iconv = use_iconv, :
Cannot open data source
tm <-
readOGR("/home/rhurlin/SpatialData/world/TM_WORLD_BORDERS-0.3.shp",
"TM_WORLD_BORDERS-0.3")
OGR data source with driver: ESRI Shapefile
Source: "/home/rhurlin/SpatialData/world/TM_WORLD_BORDERS-0.3.shp",
layer: "TM_WORLD_BORDERS-0.3"
with 246 features
It has 11 fields
Many thanks for your answer and your suggestions. It seems, there is
something odd in the interpretation of the dsn string.
Best wishes,
Rainer
> Roger
>
> On Thu, 16 Jul 2015, Rainer Hurling wrote:
>
>> I am using GDAL 2.0.0 on FreeBSD and having trouble to get rgdal-1.0-4
>> work correctly.
>>
>> (1) The error looks like this:
>>
>> ogrInfo("/home/rhurlin/SpatialData/world", "TM_WORLD_BORDERS-0.3")
>> Fehler in ogrInfo("/home/rhurlin/SpatialData/world",
>> "TM_WORLD_BORDERS-0.3") :
>> Cannot open data source
>>
>>
>> Obviously, rgdal does not find the path and/or files, given as
>> parameters to functions like ogrInfo(). This problem also exists with
>> similar rgdal tools like for example ogrListLayers:
>>
>> ogrListLayers("/home/rhurlin/SpatialData/world")
>> Fehler in ogrListLayers("/home/rhurlin/SpatialData/world") :
>> Cannot open data source
>>
>>
>> (2) The library rgdal loads fine so far:
>>
>> library(rgdal)
>> Lade nötiges Paket: sp
>> rgdal: version: 1.0-4, (SVN revision 548)
>> Geospatial Data Abstraction Library extensions to R successfully loaded
>> Loaded GDAL runtime: GDAL 2.0.0, released 2015/06/14
>> Path to GDAL shared files: /usr/local/share/gdal
>> Loaded PROJ.4 runtime: Rel. 4.9.1, 04 March 2015, [PJ_VERSION: 491]
>> Path to PROJ.4 shared files: (autodetected)
>> Linking to sp version: 1.1-1
>>
>>
>> (3) On the shell, outside of R, gdal 2.0.0 gives the expected output:
>>
>> ogrinfo -so "/home/rhurlin/SpatialData/world" "TM_WORLD_BORDERS-0.3"
>> INFO: Open of `/home/rhurlin/SpatialData/world'
>> using driver `ESRI Shapefile' successful.
>>
>> Layer name: TM_WORLD_BORDERS-0.3
>> Metadata:
>> DBF_DATE_LAST_UPDATE=2008-07-30
>> Geometry: Polygon
>> Feature Count: 246
>> Extent: (-180.000000, -90.000000) - (180.000000, 83.623596)
>> Layer SRS WKT:
>> GEOGCS["GCS_WGS_1984",
>> DATUM["WGS_1984",
>> SPHEROID["WGS_84",6378137.0,298.257223563]],
>> PRIMEM["Greenwich",0.0],
>> UNIT["Degree",0.0174532925199433]]
>> FIPS: String (2.0)
>> ISO2: String (2.0)
>> ISO3: String (3.0)
>> UN: Integer (3.0)
>> NAME: String (50.0)
>> AREA: Integer (7.0)
>> POP2005: Integer64 (10.0)
>> REGION: Integer (3.0)
>> SUBREGION: Integer (3.0)
>> LON: Real (8.3)
>> LAT: Real (7.3)
>>
>> This leads me to the assumption, that the new rgdal-1.0_4 has some
>> problem with path and/or file strings, at least on FreeBSD and at
>> least for GDAL 2.0.0.
>>
>>
>> (4) I tried to get some insight with gdb, but my skills are far to
>> small to get deeper. What I did:
>>
>> - Run R with 'R -d gdb791'
>> - Load library(rgdal) within R
>> - Set 'bt ogrInfo' in gdb for src/ogrsource.cpp:l46
>> - Continue R, run the following command:
>>
>>
>> ogrInfo("/home/rhurlin/SpatialData/world", "TM_WORLD_BORDERS-0.3")
>>
>> Breakpoint 1, ogrInfo (ogrsourcename=0x4b8cf458, Layer=0x4b8cf428) at
>> ogrsource.cpp:46
>> 46 int nFIDs, nFields, iField, *nCount, pc=0;
>> (gdb) n
>> 60 installErrorHandler();
>> (gdb) n
>> 62 poDS=(GDALDataset*)
>> GDALOpenEx(CHAR(STRING_ELT(ogrsourcename, 0)), GDAL_OF_VECTOR, NULL,
>> NULL, NULL);
>> (gdb) n
>> 63 if(poDS==NULL){
>> (gdb) bt
>> #0 ogrInfo (ogrsourcename=0x4b8cf458, Layer=0x4b8cf428) at
>> ogrsource.cpp:63
>> #1 0x0000000040adf576 in R_doDotCall (ofun=0x4bc14201 <ogrInfo(SEXP,
>> SEXP)>, nargs=2,
>> cargs=0x7fffffffc5e0, call=0x4aae9f78) at dotcode.c:573
>> #2 0x0000000040aed4a2 in do_dotcall (call=0x4aae9f78, op=0x46ceeb50,
>> args=0x4ab53468, env=0x4ab400b0)
>> at dotcode.c:1251
>> #3 0x0000000040b291c1 in Rf_eval (e=0x4aae9f78, rho=0x4ab400b0) at
>> eval.c:655
>> #4 0x0000000040b2dab3 in do_set (call=0x4aae6190, op=0x46cd71c8,
>> args=0x4aae88b0, rho=0x4ab400b0)
>> at eval.c:2106
>> #5 0x0000000040b28f71 in Rf_eval (e=0x4aae6190, rho=0x4ab400b0) at
>> eval.c:627
>> #6 0x0000000040b2c9a0 in do_begin (call=0x4aae00b0, op=0x46cd8778,
>> args=0x4aae61c8, rho=0x4ab400b0)
>> at eval.c:1716
>> #7 0x0000000040b28f71 in Rf_eval (e=0x4aae00b0, rho=0x4ab400b0) at
>> eval.c:627
>> #8 0x0000000040b2a256 in Rf_applyClosure (call=0x4aadc1c8,
>> op=0x4aade238, arglist=0x4ab40318,
>> rho=0x46f0a708, suppliedvars=0x46cd4f78) at eval.c:1039
>> #9 0x0000000040b29304 in Rf_eval (e=0x4aadc1c8, rho=0x46f0a708) at
>> eval.c:674
>> #10 0x0000000040b6ad2c in Rf_ReplIteration (rho=0x46f0a708,
>> savestack=0, browselevel=0,
>> state=0x7fffffffd580) at main.c:258
>> #11 0x0000000040b6aef0 in R_ReplConsole (rho=0x46f0a708, savestack=0,
>> browselevel=0) at main.c:308
>> #12 0x0000000040b6c682 in run_Rmainloop () at main.c:1009
>> #13 0x0000000040b6c697 in Rf_mainloop () at main.c:1016
>> #14 0x0000000000400a5c in main (ac=1, av=0x7fffffffe658) at Rmain.c:29
>> (gdb) n
>> 64 uninstallErrorHandlerAndTriggerError();
>> (gdb)
>> 65 error("Cannot open data source");
>> (gdb) n
>> Fehler in ogrInfo("/home/rhurlin/SpatialData/world",
>> "TM_WORLD_BORDERS-0.3") :
>> Cannot open data source
>> run_Rmainloop () at main.c:1008
>> 1008 R_GlobalContext = R_ToplevelContext = R_SessionContext =
>> &R_Toplevel;
>> (gdb) n
>> 1009 R_ReplConsole(R_GlobalEnv, 0, 0);
>>
>>
>> Hope, my analysis it ok so far. From here on, I am lost and could
>> really need some help. Please ask me, if you need more information or
>> if I should try something.
>>
>> Many thanks in advance.
>> Regards,
>> Rainer Hurling
>>
>>
>> sessionInfo()
>> R Under development (unstable) (2015-07-14 r68652)
>> Platform: amd64-portbld-freebsd11.0 (64-bit)
>> Running under: FreeBSD xxx.xxx.xxx 11.0-CURRENT FreeBSD 11.0-CURRENT
>> #0 r285383: Sat Jul 11 10:39:33 CEST 2015
>> xxx at xxx.xxx.xxx:/usr/obj/usr/src/sys/XXX amd64
>> locale:
>> [1] C/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8
>> attached base packages:
>> [1] stats graphics grDevices utils datasets methods base
>> other attached packages:
>> [1] rgdal_1.0-4 sp_1.1-1
>> loaded via a namespace (and not attached):
>> [1] grid_3.3.0 lattice_0.20-33
More information about the R-sig-Geo
mailing list