[R-sig-Geo] setValues for a RasterStack
Jonathan Greenberg
jgrn at illinois.edu
Wed Jun 13 19:23:49 CEST 2012
R-sig-geo'ers:
I'm trying to use setValues to replace values of a layer in a
RasterBrick, but I'm getting the following error:
Error in setValues(x, values[startidx[i]:endidx[i]], layer = i) :
you can only setValues for a single layer if all values are in
memory. But values could not be loaded
The "empty" raster brick (note the "values" is none) is on disk:
class : RasterBrick
dimensions : 319, 10853, 3462107, 6 (nrow, ncol, ncell, nlayers)
resolution : 2, 2 (x, y)
extent : 748005.1, 769711.1, 4307056, 4307694 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=10 +datum=WGS84 +units=m +no_defs
+ellps=WGS84 +towgs84=0,0,0
values : none
layer names : layer.1, layer.2, layer.3, layer.4, layer.5, layer.6
> inMemory(x)
FALSE
"values" is a "squashed" vector (BSQ) of all values I wish to write to
the RasterBrick of length ncell(x) * nlayers(x), i is 1:nlayers(x),
and startidx and endidx are the start/stop points for this vector for
each band i:
startidx:
[1] 1 3462108 6924215 10386322 13848429 17310536
endidx:
[1] 3462107 6924214 10386321 13848428 17310535 20772642
I'm trying to setValues(x) one band at a time:
for(i in 1:nlayers(x))
{
out <- setValues(x,values[startidx[i]:endidx[i]],layer=i)
}
What am I doing wrong? Does setValues ONLY work if inMemory(x)==TRUE? Thanks!
--j
--
Jonathan A. Greenberg, PhD
Assistant Professor
Department of Geography and Geographic Information Science
University of Illinois at Urbana-Champaign
607 South Mathews Avenue, MC 150
Urbana, IL 61801
Phone: 415-763-5476
AIM: jgrn307, MSN: jgrn307 at hotmail.com, Gchat: jgrn307, Skype: jgrn3007
http://www.geog.illinois.edu/people/JonathanGreenberg.html
More information about the R-sig-Geo
mailing list