[R-sig-Geo] Specify color for "zero" raster values using levelplot
Thiago V. dos Santos
thi_veloso at yahoo.com.br
Thu May 18 18:27:12 CEST 2017
Hi Mel,
Thank you ver much for the suggestion. I've reproduced your palette, which looks like exactly what I was looking for. However, the grey color is still not associated to zero values in the map.
After plotting my raster with your palette as an argument:
levelplot(annual.mask, cuts=14, col.regions=myPal(15), margin=F)
I ended up with a figure like this: http://i.imgur.com/aqZkCGZ.png, where I was hoping to have all white (i.e. zero values) in the map filled with grey.
Any other ideas to achieve that?
This is the file and code to reproduce the figure:
https://dl.dropboxusercontent.com/content_link/jnv58wx0QN8ObKaiqigVckXtDmanOVYlgBxXoiym4oty5MS93xHolItNZ8tJ5gVF/file?dl=1
########################library(rasterVis)
myPal <- read.table(sep=",", text="155,29,32,Brown238,36,37,Tomato238,77,34,Tomato250,143,35,Dark.orange254,215,24,Gold214,223,47,Bitter.lemon188,218,112,Sulu179,179,179,Dark.gray124,199,177,Keppel105,202,229,Viking72,156,211,Curious.blue69,101,173,Chetwode.blue58,86,164,Governor.bay58,72,155,Dark.slate.blue44,46,118,Blue.bell")
myPal <- colorRampPalette(rgb(myPal[, 1:3], names=as.character(myPal$V4), maxColorValue=255))
r.annual <- raster("Desktop/r.annual.tif")levelplot(r.annual, cuts=14, col.regions=myPal(15), margin=F)######################## Greetings, -- Thiago V. dos Santos
PhD studentLand and Atmospheric ScienceUniversity of Minnesota
On Thursday, May 18, 2017 3:06 AM, Melanie Bacou <mel at mbacou.com> wrote:
Simply use the same palette as in the example: library(lattice)
myPal <- read.table(sep="\t", text="
155 29 32 Brown
238 36 37 Tomato
238 77 34 Tomato
250 143 35 Dark orange
254 215 24 Gold
214 223 47 Bitter lemon
188 218 112 Sulu
179 179 179 Dark gray
124 199 177 Keppel
105 202 229 Viking
72 156 211 Curious blue
69 101 173 Chetwode blue
58 86 164 Governor bay
58 72 155 Dark slate blue
44 46 118 Blue bell")
myPal <- colorRampPalette(rgb(myPal[, 1:3], names=as.character(myPal$V4), maxColorValue=255))
x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))
levelplot(z~x*y, grid, cuts=14, col.regions=myPal(15), margin=FALSE)
--Mel.
On 05/17/2017 01:25 PM, Thiago V. dos Santos via R-sig-Geo wrote:
Dear all,
I am trying to change the color for zero values in a map produced using levelplot to plot a raster file. Specifically, I want to reproduce this figure: http://i.imgur.com/mjXxZhO.png, where a red to blue scale is used, but notice that zero values have been replaced by grey.
As an example, let's use an adapted version of the August irradiation code from the rasterVis webpage:
################################
library(raster)
library(ncdf4)
library(rasterVis)
##Solar irradiation data from CMSAF
old <- setwd(tempdir())
download.file('https://raw.github.com/oscarperpinan/spacetime-vis/master/data/SISmm2008_CMSAF.zip',
'SISmm2008_CMSAF.zip', method='wget')
unzip('SISmm2008_CMSAF.zip')
listFich <- dir(pattern='\\.nc')
stackSIS <- stack(listFich)
stackSIS <- stackSIS * 24 ##from irradiance (W/m2) to irradiation Wh/m2
idx <- seq(as.Date('2008-01-15'), as.Date('2008-12-15'), 'month')
SISmm <- setZ(stackSIS, idx)
names(SISmm) <- month.abb
setwd(old)
# Set color palette
myTheme=rasterTheme(region=brewer.pal('RdBu', n=11))
Aug <- raster(SISmm, 8)
meanAug <- cellStats(Aug, mean)
levelplot(Aug - meanAug, par.settings = myTheme, margin=FALSE)
################################
In the example above, how can I replace the color of "zero values" with grey?
Thanks,
-- Thiago V. dos Santos
PhD student
Land and Atmospheric Science
University of Minnesota
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo at r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list