[GRASS-stats] readRAST6() error (Windows XP and W2k)

Roger Bivand Roger.Bivand at nhh.no
Sun Nov 8 03:33:29 EST 2009


On Thu, 5 Nov 2009, Roger Bivand wrote:

> On Thu, 5 Nov 2009, Martin Mainzer wrote:
>
>> Hello at all
>> 
>> I use R to do statistics of some GRASS data. On the windows machines (XP
>> and W2K) there occurred a problem when using the readRAST6 command form
>> the spgrass6 library. I think the problem is linked to the standard
>> installation of the GRASS standalone installer (standalone version:
>> WinGRASS-6.4.0SVN-r39626-1-Setup.exe).
>
> Thanks, this is a clear report. I'll try to follow it up - it is in the 
> r.out.gdal -> readGDAL part of readRAST6, where maybe extra protection is 
> needed on the way through.

Please try the draft package:

http://spatial.nhh.no/R/Devel/spgrass6_0.6-12.zip

which should protect those spaces. Source fixes commited to the spgrass6 
module on r-spatial on sourceforge.

However, in working on this, I found a similar problem in this Windows 
release inside v.db.addtable, in Markus Neteler's vect2neigh() function. 
The problem may have been present before - I checked because vect2neigh 
had not been converted to execGRASS() from system() because of space 
protection problems in the value of columns=. Having tried to fix space 
protection in the parsing of the interface descriptions, I had hoped that 
vect2neigh() would now work on Windows (including cases with spaces in the 
path to the vector). When there are no spaces, vect2neigh() now works on 
the Windows platform. It gets some of the way, but v.db.addtable fails on 
space parsing:

# Using vector map name extended by layer number as table name: \
  landuse175a_2
#Creating table with columns (cat integer, left integer,right \
  integer,length double precision)
# The table <landuse175a_2> is now part of vector map <landuse175a> and may
# be deleted or overwritten by GRASS modules
# Select privileges were granted on the table
# Reading features...
#
# and: no such driver available
# WARNING: Unable to start driver <and>
# ERROR: Unable to open database <C:\Documents> by driver <and>
# Current attribute table links:
# layer <1> table <landuse175a> in database <C:\Documents and \
  Settings\s1155\My Documents\GIS DataBase/Spearfish60/s1155/dbf/> \
  through driver <dbf> with key <cat>
# layer <2> table <landuse175a_2> in database <C:\Documents> through \
  driver <and> with key <cat>
# Vector map <landuse175a at s1155> is connected by:

(line breaks indicated by \)

for command:

execGRASS("v.db.addtable", parameters=list(map=vname2a,
         layer=as.integer(2),
         columns="left integer,right integer,length double precision"),
         ignore.stderr=ignore.stderr)

This works for path strings to the vector with no spaces.

Best wishes,

Roger


>
> Roger
>
>> The standalone installer creates a folder named "GIS DataBase" under "My
>> Documents" (note the blank in the folder name). To test where the
>> problem is, I renamed the folder to "GISDataBase" and moved it to E:\.
>> With this configuration everything works fine. I guess there is a
>> problem with the blank in the folder name that is created during the
>> installation. But this is just a guess. I hope the experts will find the
>> problem. Here some information out of R (version 7.10.0) after calling R
>> via "Rgui.exe" in the wxpython GUI ("cmd" in the lower part of the
>> window "GRASS GIS Ebenen-Manager"). For the example here I used the
>> South-Dakota data set. First with the folder name with blanks (the
>> folder name from the standard installation):
>> ###
>>> library(spgrass6)
>> Lade nötiges Paket: sp
>> Lade nötiges Paket: rgdal
>> Geospatial Data Abstraction Library extensions to R successfully loaded
>> Loaded GDAL runtime: GDAL 1.6.2, released 2009/07/31
>> Path to GDAL shared files: C:/Programme/R/R-2.10.0/library/rgdal/gdal
>> Loaded PROJ.4 runtime: Rel. 4.6.1, 21 August 2008
>> Path to PROJ.4 shared files: C:/Programme/R/R-2.10.0/library/rgdal/proj
>> Lade nötiges Paket: XML
>> GRASS GIS interface loaded with GRASS version: 6.4.0svn
>> and location: South-Dakota
>> 
>>> gmeta6()
>> gisdbase    E:\martin\daten\GIS DataBase
>> location    South-Dakota
>> mapset      PERMANENT
>> rows        466
>> columns     633
>> north       4928000
>> south       4914020
>> west        590010
>> east        609000
>> nsres       30
>> ewres       30
>> projection  +proj=utm +zone=13 +a=6378206.4 +rf=294.9786982 +no_defs
>> +nadgrids=C:/GRASS-6-SVN/etc/nad/conus +to_meter=1.0
>> 
>>> map <- readRAST6('geology')
>> Tut mir leid, <DataBase/South-Dakota/PERMANENT/.tmp/geology> ist keine
>> erlaubte Option
>> CPL ERROR 4: `E:/martin/daten/GIS
>> DataBase/South-Dakota/PERMANENT/.tmp/geology' does not exist in the file
>> system,
>> and is not recognised as a supported dataset name.
>> 
>> Fehler in .local(.Object, ...) :
>>  `E:/martin/daten/GIS DataBase/South-Dakota/PERMANENT/.tmp/geology'
>> does not exist in the file system,
>> and is not recognised as a supported dataset name.
>> 
>>> traceback()
>> 8: .Call("RGDAL_OpenDataset", as.character(filename), TRUE, silent,
>>       PACKAGE = "rgdal")
>> 7: .local(.Object, ...)
>> 6: initialize(value, ...)
>> 5: initialize(value, ...)
>> 4: new("GDALReadOnlyDataset", filename, silent = silent)
>> 3: GDAL.open(fname, silent = silent)
>> 2: readGDAL(rtmpfl11, p4s = getLocationProj(), silent = ignore.stderr)
>> 1: readRAST6("geology")
>> 
>>> sessionInfo()
>> R version 2.10.0 (2009-10-26)
>> i386-pc-mingw32
>> 
>> locale:
>> [1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252
>> [3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
>> [5] LC_TIME=German_Germany.1252
>> 
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> 
>> other attached packages:
>> [1] spgrass6_0.6-11 XML_2.6-0       rgdal_0.6-20    sp_0.9-44
>> 
>> loaded via a namespace (and not attached):
>> [1] grid_2.10.0     lattice_0.17-26
>> 
>> ## #
>> And now with a folder name without blanks:
>> ###
>> 
>>> library(spgrass6)
>> Lade nötiges Paket: sp
>> Lade nötiges Paket: rgdal
>> Geospatial Data Abstraction Library extensions to R successfully loaded
>> Loaded GDAL runtime: GDAL 1.6.2, released 2009/07/31
>> Path to GDAL shared files: C:/Programme/R/R-2.10.0/library/rgdal/gdal
>> Loaded PROJ.4 runtime: Rel. 4.6.1, 21 August 2008
>> Path to PROJ.4 shared files: C:/Programme/R/R-2.10.0/library/rgdal/proj
>> Lade nötiges Paket: XML
>> GRASS GIS interface loaded with GRASS version: 6.4.0svn
>> and location: South-Dakota
>> 
>>> gmeta6()
>> gisdbase    E:\GISDataBase
>> location    South-Dakota
>> mapset      PERMANENT
>> rows        466
>> columns     633
>> north       4928000
>> south       4914020
>> west        590010
>> east        609000
>> nsres       30
>> ewres       30
>> projection  +proj=utm +zone=13 +a=6378206.4 +rf=294.9786982 +no_defs
>> +nadgrids=C:/GRASS-6-SVN/etc/nad/conus +to_meter=1.0
>> 
>>> map <- readRAST6('geology')
>> E:/GISDataBase/South-Dakota/PERMANENT/.tmp/geology has GDAL driver GTiff
>> and has 466 rows and 633 columns
>> 
>>> traceback()
>> Kein traceback vefügbar
>> 
>>> sessionInfo()
>> R version 2.10.0 (2009-10-26)
>> i386-pc-mingw32
>> 
>> locale:
>> [1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252
>> [3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
>> [5] LC_TIME=German_Germany.1252
>> 
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> 
>> other attached packages:
>> [1] spgrass6_0.6-11 XML_2.6-0       rgdal_0.6-20    sp_0.9-44
>> 
>> loaded via a namespace (and not attached):
>> [1] grid_2.10.0     lattice_0.17-26
>> 
>> ###
>> I hope this help to solve the problem.
>> 
>> Martin
>> 
>> 
>> 
>> 
>> _______________________________________________
>> grass-stats mailing list
>> grass-stats at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-stats
>> 
>
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no


More information about the grass-stats mailing list