On Sat, 10 Jan 2009, Markus Neteler wrote:

Roger,

On Sat, Jan 10, 2009 at 9:20 PM, Roger Bivand <[email protected]> wrote:
On Sat, 10 Jan 2009, Markus Neteler wrote:

On Sat, Jan 3, 2009 at 11:09 AM, Roger Bivand <[email protected]> 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)?

I've "handled" this for some definition of handle by setting -c in the r.out.gdal call - this was controlling whether colour table writing was attempted.


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.


With 6.4SVN I now get:

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.0svn
and location: nc_spm_08
elev <- readRAST6("elev_state_500m")
raster/current region mismatch detected in components:
           cols            rows origin.northing  origin.easting
          FALSE           FALSE           FALSE           FALSE
set plugin=TRUE to override; continuing with plugin=FALSE
/home/rsb/topics/grassdata/nc_spm_08/rsb/.tmp/reclus2/elev_state_500m has GDAL driver GTiff
and has 620 rows and 1630 columns
elev <- readRAST6("elev_state_500m", ignore.stderr=TRUE)


I've committed to sourceforge CVS, could you confirm that this is OK?

How does one manage the plugin links in a mixed 6.4/7.0 setting? I tried 7.0 first, but I think there was a problem:

ERROR: Incompatible library version for module

which crashed R/rgdal. The plugin was built against 6.4RC1, so probably two different library versions had a disagreement.

Best wishes,

Roger

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: [email protected]







--
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: [email protected]

_______________________________________________
grass-stats mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-stats

Reply via email to