[GRASS-stats] readRAST6 and readVECT6 errors with grass70

Roger Bivand Roger.Bivand at nhh.no
Sat Mar 10 10:33:17 EST 2012


On Fri, 9 Mar 2012, Eric Momsen wrote:

> Roger,
>
> Thanks for your help and guidance.  I have tried to sort out the
> dependencies and get the gdal-grass plugin to look at grass7.  I can't
> get it to configure, details in line with your previous email.
>
> This is the plugin I have downloaded:
> http://download.osgeo.org/gdal/
> "Get the GDAL/OGR-GRASS plugin - file: gdal-grass-1.4.3.tar.gz (or later)"
>
> I've seen this closed ticket about the plugin not working with grass7
> ( http://trac.osgeo.org/gdal/ticket/2953  ) but it sounds like you
> don't have any problems with it.  So I assume it should work.   I was
> able to get this same plugin to configure against grass 6.4.

I never use the plugin at all, I only install and uninstall to check that 
it works for GRASS 6. It causes a great deal of trouble for Debian/Ubuntu 
users installing binary GDAL. I advise against its use unless the user 
builds it for a specific GRASS version. The separate 
gdal-grass plugin is deprecated - one adds the path to the GRASS 
installation in ./configure to GDAL when installing from source. The 
problem is the round tour:

install GDAL without the GRASS plugin,
install GRASS linking against that GDAL,
re-install GDAL with the path to GRASS given in ./configure.

However, any GDAL or GRASS upgrade will break the plugin.

Try to get rid of the plugin altogether, and try again, please. It may 
live under /usr/local somewhere.

Roger

>
> I am trying to configure it directly from what was downloaded, without
> any patches.
>
> Am I using the right plug in?
> Are there some extra/different steps for grass7?
> I assume I need this plugin to use spgrass6 (and v.krige from in
> grass), or is there something else I should try?
>
> It feels like I'm missing just one key point to get everything to work
> beautifully!
>
> Regards,
> Eric
>
>
> On Thu, Mar 8, 2012 at 1:39 PM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>> Eric,
>>
>> The check of spgrass6 gets through readRAST6() with two rasters, which sets
>> plugin=FALSE (twice, once not using GDAL, once using GDAL). It fails either
>> in readRAST6(elevation.dem", plugin=TRUE, mapset="PERMANENT") if "GRASS"
>> %in% gdalDrivers()$name or at writeRAST6(spear, "sqdemSP", zcol="sqdem").
>>
>> My prejudice is to suspect the plugin. Can you do:
>>
>> library(rgdal)
>> "GRASS" %in% gdalDrivers()$name
>> "GRASS" %in% ogrDrivers()$name
>>
>
> Both were TRUE.
>
>> If they are TRUE, then the smoking gun is some dependency mixup in the GDAL
>> GRASS plugin drivers, possibly pointing to a stale plugin, a stale GRASS
>> version linked to GRASS, or something like that. Managing plugins across
>> multiple versions of GRASS and/or GDAL is for very off-piste people who like
>> excitement, I'm afraid.
>
> The plug in wasn't even something I was aware of (The system admin had
> installed grass 6.4, I was adding grass 7.0 later when the admin was
> busy.)  My understanding is that for the GDAL-GRASS plug in he had
> used a Debian package, and based on your comments now, it makes sense
> that this is tied to GRASS 6.4 when it was first installed.
>
> I didn't review the GDAL installation procedure, since it was already
> installed.  !  Seems that was a mistake.  I downloaded the source code
> for the plug in and attempted to compile it.  I had added grass to the
> .conf , which didn't work, then tried LD_LIBRARY_PATH to go directly
> to my new grass installation, and still it doesn't seem to find the
> libraries:
>
> root at gisdev:/opt/gdal-grass-1.4.3# ./configure
> --with-gdal=/usr/local/bin/gdal-config
> --with-grass=/usr/local/grass-7.0.svn
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking for g++... g++
> checking whether we are using the GNU C++ compiler... yes
> checking whether g++ accepts -g... yes
> checking for ranlib... ranlib
> checking for g++ -shared ... yes
> user supplied gdal-config (/usr/local/bin/gdal-config)
> using /usr/local/lib/gdalplugins as GDAL shared library autoload directory
> checking for G_asprintf in -lgrass_gis... no
> configure: error: --with-grass=/usr/local/grass-7.0.svn requested, but
> libraries not found!  Perhaps you need to set LD_LIBRARY_PATH to
> include /usr/local/grass-7.0.svn/lib?
>
> double checking to answer the output's question:
> root at gisdev:/opt/gdal-grass-1.4.3# $LD_LIBRARY_PATH
> bash: /usr/local/grass-7.0.svn/lib: Is a directory
>
> I tried this:
> ./configure --with-gdal=/usr/local/bin/gdal-config
> --with-grass=/usr/local/grass-6.4.3svn/
> and it configured successfully (without any changes to LD_LIBRARY_PATH
> or the .conf files).
>
>>
>> The rgdal check suggests that the standard GDAL and OGR drivers work when
>> GRASS is not in the picture.
>>
>> Roger
>>
>>
>> On Thu, 8 Mar 2012, Eric Momsen wrote:
>>
>>> On Thu, Mar 8, 2012 at 4:42 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>>>>
>>>> I've committed changes to spgrass6 on R-forge, project rspatial as
>>>> revision
>>>> 1224, which address the r.info flag issue, and another issue related to
>>>> my
>>>> using GDAL 1.9.0, which is less forgiving about overwriting vector files
>>>> in
>>>> the temporary directory (but not the cause of your vector problem). I
>>>> always
>>>> compile GDAL, GEOS, etc. from source, and do not see any issues with
>>>> spearfish vector files converted to GRASS 7 (but had to enable sqlite in
>>>> GRASS to avoid problems). I am always sceptical about Linux binary
>>>> builds,
>>>> and cannot replicate this issue (but which may mean that rgdal is broken
>>>> in
>>>> some odd way if it was also installed using binary dependencies). Can you
>>>> run:
>>>>
>>>> wget http://cran.r-project.org/src/contrib/rgdal_0.7-8.tar.gz
>>>> R CMD check rgdal_0.7-8.tar.gz
>>>>
>>>> to test the package on your platform?
>>>
>>>
>>> It seemed OK, ( http://pastebin.com/gykPF4EX ), the only problems were
>>> with the manual:
>>>
>>> * checking PDF version of manual ... WARNING
>>> LaTeX errors when creating PDF version.
>>> This typically indicates Rd problems.
>>> * checking PDF version of manual without hyperrefs or index ... ERROR
>>> Re-running with no redirection of stdout/stderr.
>>> Hmm ... looks like a package
>>> Error in texi2dvi("Rd2.tex", pdf = (out_ext == "pdf"), quiet = FALSE,  :
>>>  pdflatex is not available
>>> Error in running tools::texi2dvi
>>> You may want to clean up by 'rm -rf /tmp/RtmpqvwW8e/Rd2pdf69b337d4f332'
>>>
>>>>
>>>> If you check out rspatial, you will be able to do R CMD check on spgrass6
>>>> too in its current development revision:
>>>>
>>>> svn checkout svn://scm.r-forge.r-project.org/svnroot/rspatial/
>>>> cd rspatial/pkg
>>>> (start GRASS7 in spearfish)
>>>> R CMD check spgrass6
>>>
>>>
>>>
>>> full output at:  http://pastebin.com/n6a7SGXh
>>>
>>> Everything was OK until:
>>>
>>> * checking examples ... ERROR
>>> Running examples in ‘spgrass6-Ex.R’ failed
>>> The error most likely occurred in:
>>>
>>>> ### Name: readRAST6
>>>
>>>
>>>
>>> I did not (yet) move anything or install as packages in R, just ran R
>>> CMD where the downloaded file was at.
>>>
>>> Thanks for your help so far, any suggestion for what to try next?
>>>
>>> Eric
>>>
>>>>
>>>> Roger
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, 6 Mar 2012, Eric Momsen wrote:
>>>>
>>>>> Thank you for the quick response!  I've added follow up after the points
>>>>> below.
>>>>>
>>>>> On Tue, Mar 6, 2012 at 2:25 PM, Roger Bivand <Roger.Bivand at nhh.no>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> On Tue, 6 Mar 2012, Eric Momsen wrote:
>>>>>>
>>>>>>> Hello!
>>>>>>>
>>>>>>> I have been trying to get spgrass6 working in a Debian environment,
>>>>>>> and have started from scratch with both GRASS 6.4.3 and GRASS 7.0.  I
>>>>>>> previously had the same errors in "old" installations of both 6 and 7,
>>>>>>> after following the advice in the listserve archive I am half way
>>>>>>> there.  Since the behavior had been the same for both, I was suprised
>>>>>>> it didn't resolve the issue completely!  Any suggestions would be
>>>>>>> appreciated.
>>>>>>>
>>>>>>> I hope it is OK to include all 3 questions here, since they all relate
>>>>>>> to spgrass6.  Here is a listing of sessionInfo and various Debian
>>>>>>> package versions:  http://pastebin.com/68XST1vK
>>>>>>>
>>>>>>>
>>>>>>> My installation of spgrass6 is working now with GRASS 6.4.3, I can
>>>>>>> read and write vectors and rasters.
>>>>>>>
>>>>>>> 1.  I am getting one warning message, is this OK, or am I missing some
>>>>>>> dependency still?
>>>>>>>
>>>>>>>> spear <- readRAST6(c("elevation.dem", "geology"), cat = c(FALSE,
>>>>>>>> TRUE))
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Warning message:
>>>>>>> statistics not supported by this driver
>>>>>>>
>>>>>>> The program does continue to successfully import the data.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Not a problem - an artefact of calling GDALinfo() on the temporary
>>>>>> file.
>>>>>
>>>>>
>>>>>
>>>>> Great.  After all the real errors I've caused, it is nice to have
>>>>> reached a point where I can ignore the warnings.
>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Moving onto GRASS 7:
>>>>>>>
>>>>>>> 2.  readRAST6 gives an error in grass70, output as follows:
>>>>>>>
>>>>>>>> spear <- readRAST6(c("geology", "elevation.dem"), cat=c(TRUE, FALSE),
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> + useGDAL=FALSE)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> r.info is called twice, once with -t, once with -r. In GRASS 7, all of
>>>>>> have
>>>>>> been collected in -g, which simply breaks compatibility - arguably, -t
>>>>>> could
>>>>>> have been left in place. When I find time to build a GRASS 7, I'll try
>>>>>> to
>>>>>> accommodate the broken flag. -r is retained, so it is only on line 48
>>>>>> in
>>>>>> R/bin_link.R that any change is required.
>>>>>>
>>>>>
>>>>> I changed the flag as suggested and readRAST6 now works for my
>>>>> installation.
>>>>>
>>>>>>> Command: r.info
>>>>>>> Description: Outputs basic information about a raster map.
>>>>>>> Keywords: raster, metadata, history
>>>>>>> Parameters:
>>>>>>>  name: map, type: string, required: yes, multiple: no
>>>>>>>  keydesc: name, keydesc_count: 1
>>>>>>> [Name of raster map]
>>>>>>> Flags:
>>>>>>>  name: g [Print raster array information only] {FALSE}
>>>>>>>  name: r [Print range only] {FALSE}
>>>>>>>  name: e [Print extended metadata information only] {FALSE}
>>>>>>>  name: h [Print raster history instead of info] {FALSE}
>>>>>>>  name: verbose [Verbose module output] {FALSE}
>>>>>>>  name: quiet [Quiet module output] {FALSE}
>>>>>>> Error in doGRASS(cmd, flags = flags, ..., parameters = parameters,
>>>>>>> echoCmd = echoCmd) :
>>>>>>>  Invalid flag value: t
>>>>>>>
>>>>>>> I checked that r.info works:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> system("r.info geology")
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> +----------------------------------------------------------------------------+
>>>>>>> | Layer:    geology                        Date: Mon May  4 10:00:14
>>>>>>> 1987
>>>>>>> :  |
>>>>>>> | Mapset:   PERMANENT                      Login of Creator: grass
>>>>>>>   |
>>>>>>> | Location: spearfish70
>>>>>>> .
>>>>>>> .
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>> I see that -t is in the GRASS6.4.3 version of r.info, but not in the
>>>>>>> GRASS7.0 version of r.info.
>>>>>>>
>>>>>>> I'm not sure what to do next here.
>>>>>>>
>>>>>>>
>>>>>>> 3.  readVECT6 causes R to exit.
>>>>>>>
>>>>>>>> bugsDF <- readVECT6("bugsites")
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> GRASS 7.0.svn (spearfish70):~ >
>>>>>>>
>>>>>>> I went back to check that the bugsites map was available:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> system("v.info bugsites")
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> +----------------------------------------------------------------------------+
>>>>>>> | Name:            bugsites
>>>>>>>    |
>>>>>>> | Mapset:          PERMANENT
>>>>>>>   |
>>>>>>> | Location:        spearfish70
>>>>>>>   |
>>>>>>> | Database:        /home/shared/research/GRASSDATA
>>>>>>>   |
>>>>>>> .
>>>>>>> .
>>>>>>> .
>>>>>>>
>>>>>>> And then tried the debug tool to see where things went wrong...
>>>>>>>
>>>>>>> complete output at: http://pastebin.com/dJFsRSBC  with the final lines
>>>>>>> as:
>>>>>>>
>>>>>>> debug: res <- readOGR(dsn, layer = as.character(layer), verbose =
>>>>>>> !ignore.stderr,
>>>>>>>   pointDropZ = pointDropZ)
>>>>>>> Browse[2]>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> I'll look at this later, looks like a broken shapefile.
>>>>>
>>>>>
>>>>>
>>>>> I wasn't sure if you meant my local shapefile was broken?  So I
>>>>> checked the function on my real data as well as a fresh download of
>>>>> spearfish.  Neither worked.  I also tried it in a spearfish60
>>>>> location.
>>>>>
>>>>> My spearfish70 is simply spearfish60 after `v.build all` has been run.
>>>>>
>>>>>>
>>>>>> Roger
>>>>>>
>>>>>>> GRASS 7.0.svn (spearfish70):~ >
>>>>>>>
>>>>>>>
>>>>>>> I found a 2009 post regarding readOGR / readVECT6 and some versioning
>>>>>>> issues:
>>>>>>> https://stat.ethz.ch/pipermail/r-sig-geo/2009-April/005553.html
>>>>>>> but I installed both rgdal and spgrass6 inside of R as packages.  So
>>>>>>> I'm not sure if this older post is still applicable, especially since
>>>>>>> it works in GRASS 6.4.3.  Any suggestions for what to try next?
>>>>>>>
>>>>>>>
>>>>>>> Thanks in advance for any help provided.
>>>>>>>
>>>>>>> Eric
>>>>>>> _______________________________________________
>>>>>>> grass-stats mailing list
>>>>>>> grass-stats at lists.osgeo.org
>>>>>>> http://lists.osgeo.org/mailman/listinfo/grass-stats
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Roger Bivand
>>>>>> Department of Economics, NHH Norwegian School of Economics,
>>>>>> 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
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Roger Bivand
>>>> Department of Economics, NHH Norwegian School of Economics,
>>>> 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
>>>
>>>
>>
>> --
>> Roger Bivand
>> Department of Economics, NHH Norwegian School of Economics,
>> 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
>

-- 
Roger Bivand
Department of Economics, NHH Norwegian School of Economics,
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