[GRASS-stats] Incompatible library version for module SOLVED but new problem with plugin=TRUE has emerged

Markus Neteler neteler at osgeo.org
Sat Jan 10 16:47:33 EST 2009


Roger,

On Sat, Jan 10, 2009 at 9:20 PM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
> On Sat, 10 Jan 2009, Markus Neteler wrote:
>
>> On Sat, Jan 3, 2009 at 11:09 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>>>
>>> The current settings of readRAST6() will use the plugin if available (but
>>> try to check that the regions match) when plugin=NULL. If you want to
>>> force
>>> the use of r.out.gdal, set plugin=FALSE and useGDAL=TRUE (version
>>> 0.5-16).
>>> Please let me know if this helps.
>>
>> I have installed R (R version 2.8.1 (2008-12-22)) + extensions from
>> scratch.
>> I get now this message (GRASS book p. 358):
>>
>>> elev <- readRAST6("elev_state_500m", mapset="PERMANENT",
>>> ignore.stderr=TRUE)
>>
>>          cols            rows origin.northing  origin.easting
>>         FALSE           FALSE           FALSE            TRUE
>> Warning message:
>> In readRAST6("elev_state_500m", mapset = "PERMANENT",  :
>>  set plugin=FALSE - raster/current window mismatch
>>  or plugin=TRUE to override; continuing with plugin=FALSE
>>
>> To me it is not clear from the message that I should (better) set
>> useGDAL=TRUE
>>
>> Ideally, the interface would work as simple as this
>> elev <- readRAST6("elev_state_500m")
>>
>> which would
>> * find the map in the current mapset search path (internally, use
>> g.findfile),
>>  in my tests I was in a mapset different from PERMANENT which leads to
>>    elev <- readRAST6("elev_state_500m", ignore.stderr=TRUE)
>>    Error in .local(.Object, ...) :
>>       GDAL Error 4:
>> `/home/neteler/grassdata/nc_spm_07/user1/cellhd/elev_state_500m' does
>> not exist in the file system,
>> and is not recognised as a supported dataset name.
>>
>> * use the current region (internally, use r.in.gdal and not the plugin
>> if GRASS >= 6.4)
>
> Markus,
>
> This is effectively what I've tried to now. However, the user output is:
>
>> library(spgrass6)
>
> Loading required package: sp
> Loading required package: rgdal
> Geospatial Data Abstraction Library extensions to R successfully loaded
> Loaded GDAL runtime: GDAL 1.6.0, released 2008/12/04
> GDAL_DATA: /home/rsb/lib/r_libs/rgdal/gdal
> Loaded PROJ.4 runtime: Rel. 4.6.1, 21 August 2008
> PROJ_LIB: /home/rsb/lib/r_libs/rgdal/proj
> GRASS GIS interface loaded with GRASS version: 6.4.0RC1
> and location: nc_spm_08
>>
>> elev <- readRAST6("elev_state_500m")
>
>           cols            rows origin.northing  origin.easting
>          FALSE           FALSE           FALSE           FALSE
> ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF
> format.

This message *is* confusing as it is a warning only. It comes from GDAL:
gdal/frmts/gtiff/geotiff.cpp:                  "SetColorTable() only
supportedfor Byte or UInt16 bands in TIFF format." );

    if( eDataType != GDT_Byte && eDataType != GDT_UInt16 )
    {
        CPLError( CE_Failure, CPLE_NotSupported,
                  "SetColorTable() only supported for Byte or UInt16
bands in TIFF format." );
        return CE_Failure;
    }

I suppose there is some trick to suppress it (since it uses the
CPLError function).
I don't know too much about it but found
http://www.gdal.org/ogr/cpl__error_8h.html#ad2b98dd58e4de706a245faddac90403

Just throw stderr stuff to /dev/null (of course problematic with Windows)?

> WARNING: Input raster map contains cells with NULL-value (no-data). The
>         value 999 was used to represent no-data values in the input map.
>         You can specify nodata value by nodata parameter.

That one comes from r.out.gdal. Indeed a non-feature, see below:

> /home/rsb/topics/grassdata/nc_spm_08/rsb/.tmp/reclus2/elev_state_500m has
> GDAL driver GTiff
> and has 620 rows and 1630 columns
> Warning message:
> In readRAST6("elev_state_500m") :
>  set plugin=FALSE - raster/current window mismatch
>  or plugin=TRUE to override; continuing with plugin=FALSE
>
> which I agree is unhelpful (and most of it cannot be avoided on Windows,
> where stderr cannot be ignored). I can work on some of this, but the two
> r.out.gdal messages are not on my side. Even if I set GRASS_VERBOSE to 0,
> won't they still be displayed?

It was implemented as G_warning(). In contact with the person who
added this, we have now changed to G_important_message() which
respects GRASS_VERBOSE=0:

http://trac.osgeo.org/grass/changeset/35321

It is in 6.4SVN and 7 SVN and will appear on Monday in 6.4.0RC2.
GRASS 6.3 and older are not affected as r.out.gdal wasn't there.

Thanks,
Markus

> Roger
>
>>
>> Successfully, I have used today:
>> elev <- readRAST6("elev_state_500m", mapset="PERMANENT",
>> ignore.stderr=TRUE, plugin=FALSE, useGDAL=TRUE)
>>
>> which is rather long/complex.
>>
>> Hope I am not asking too much - try to compensate with GRASS 6.4.x work :)
>>
>> Markus
>>
>
> --
> 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
>
>



-- 
Open Source Geospatial Foundation
http://www.osgeo.org/
http://www.grassbook.org/


More information about the grass-stats mailing list