Skip to content

raster: creating a layer of NA

5 messages · Agustin Lobo, Pierre Roudier, Roman Luštrik +2 more

#
HI!

I must create a layer with all missing values. I try:
class       : RasterBrick
dimensions  : 393, 606, 35  (nrow, ncol, nlayers)
resolution  : 0.008928571, 0.008928571  (x, y)
extent      : -2.004464, 3.40625, 40.49554, 44.00446  (xmin, xmax, ymin, ymax)
projection  : +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0
values      : /media/Iomega_HDD/FLUXPYR/VGTFLUXPYR1/D10/FLXP_NDD10_2009.vrt
min values  : 0 0 0 0 0 0 0 0 0 0 ...
max values  : 255 255 255 255 255 255 255 255 255 255 ...
class       : RasterLayer
dimensions  : 393, 606, 238158  (nrow, ncol, ncell)
resolution  : 0.008928571, 0.008928571  (x, y)
extent      : -2.004464, 3.40625, 40.49554, 44.00446  (xmin, xmax, ymin, ymax)
projection  : +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0
values      : in memory
min value   : 0
max value   : 0

But
Error in D10N2009[[1]] * NA : non-numeric argument to binary operator

I also try
but no trace of the NAs:
class       : RasterLayer
dimensions  : 393, 606, 238158  (nrow, ncol, ncell)
resolution  : 0.008928571, 0.008928571  (x, y)
extent      : -2.004464, 3.40625, 40.49554, 44.00446  (xmin, xmax, ymin, ymax)
projection  : +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0
values      : in memory
min value   : 0
max value   : 0

By now I write with NAflag=0 and read back, but there must be a
cleaner way of generating a layer with all NA values
(it's a missing layer for a particular time)

Thanks!

Agus
#
Hi Agustin,

What about this:

# Create a Raster object
logo <- raster(system.file("external/rlogo.grd", package="raster"))
# Use this rastre to create a new, void Raster object
r <- raster(logo)
show(r)

Pierre

2011/5/25 Agustin Lobo <alobolistas at gmail.com>:

  
    
#
Based on the example by Pierre:

logo <- raster(system.file("external/rlogo.grd", package="raster"))
# Use this rastre to create a new, void Raster object
r <- raster(logo)
class       : RasterLayer
dimensions  : 77, 101, 7777  (nrow, ncol, ncell)
resolution  : 1, 1  (x, y)
extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
projection  : +proj=merc +ellps=WGS84
values      : none

# Set to NA
r[] <- NA
class       : RasterLayer
dimensions  : 77, 101, 7777  (nrow, ncol, ncell)
resolution  : 1, 1  (x, y)
extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
projection  : +proj=merc +ellps=WGS84
values      : in memory
min value   : NA
max value   : NA

So this should work for your raster:

D10N2009[] <- NA


Cheers, Lyndon
On Wed, May 25, 2011 at 2:32 AM, Roman Lu?trik <roman.lustrik at gmail.com> wrote:

  
    
#
Hi Agus,

That happens because I defined Arith functions for Raster* objects and
numeric values, but not for Raster* objects and logical values. NA is
a logical value, see class(NA). I will add that.

Here are two more work arounds:

r <- D10N2009[[1]] * as.numeric(NA)

r <- calc(D10N2009[[1]], fun=function(x) x * NA)

Robert
On Wed, May 25, 2011 at 3:41 AM, Lyndon Estes <lestes at princeton.edu> wrote: