Help: Setting values between minus 1 to plus 1 in all raster objects (Geo TIFF) in a raster stack
I have calculated time series NDWI (float TIFFF raster ) values from Landsat images. In few pixels of all raster (in a raster stack) objects have values <-1.000 and >1.0000 . I like to convert values that are <-1 to -1.000 and values that are >1 to +1.000 of all raster and save as getif (float) files in a loop. I have limited knowledge in looping. Help will be appreciated. Thanks Zia -----Original Message----- From: Zia Uddin Ahmed Sent: Thursday, July 04, 2013 7:29 PM To: Oscar Perpi??n Lamigueiro Subject: Setting values between minus 1 to plus 1 in all raster object in a raster stack, I have calculated NDWI from Landsat images. I have get values few pixel Zia Ahmed, PhD Dept. Crop and Soil Sciences Cornell University Ithaca, NY 14850
On Jul 4, 2013, at 2:01 PM, "Oscar Perpi??n Lamigueiro" <oscar.perpinan at gmail.com> wrote:
Hello,
Because the differences between layers are small, a suitable solution
is to increase the number of breaks:
library(raster)
library(rasterVis)
f <- system.file("external/test.grd", package="raster") r <- raster(f)
r1 <- r + 100*runif(ncell(r))
r2 <- r - 100*runif(ncell(r))
s <- stack(r, r1, r2)
levelplot(s,
par.settings=rasterTheme(region=c('black', 'white', 'red')),
cuts=99)
Another approach is to display each layer with an independent legend:
http://rastervis.r-forge.r-project.org/FAQ.html#sec-7
Best,
Oscar.
jbaik writes:
I want to compare several layer plots of a set of raster files that I have.
The problem is that the range of the data differs slightly for each
file, so the legends and colours are not directly comparable if I
plot the rasters side by side. For example, the range of data in
raster A might be c(10, 90), but raster B might have a range of
c(0,100) - but then the regions in raster A with values of 10 will be
coloured the same as the regions in raster B with values of 0!!
I tried modifying the plot using the "col.regions=", "at=" and "colorkey="
parameters in the "levelplot" command, but it does not seem to work.
Here is a reproducible example of my problem:
# Fix legend in raster plots
library(raster)
library(rasterVis)
f <- system.file("external/test.grd", package="raster") r <-
raster(f)
# The original levelplot
levelplot(r)
# Try to modify the legend and region colours rgb.palette <-
colorRampPalette(c("black", "white", "red"),
space = "rgb")
levelplot(r, col.regions=rgb.palette(16),
at=seq(-30000, 30000, length=15) , contour=FALSE,
colorkey=list( at=seq(-30000, 30000, length=15),
col=rgb.palette(16) ))
Notice that the original range of data is between approximately 0 and 2000.
In my second levelplot, I expand the range to -30000 and 30000. The
legend seems to reflect this, but the colours of the regions do not
match the legend!
How can I expand the range of the legend and force the regions to be
coloured properly?
--
View this message in context:
http://r-sig-geo.2731867.n2.nabble.com/rasterVis-Region-colours-do-no
t-match-the-legend-colours-tp7584032.html
Sent from the R-sig-geo mailing list archive at Nabble.com.
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
-- Oscar Perpi??n Lamigueiro Grupo de Sistemas Fotovoltaicos (IES-UPM) Dpto. Ingenier?a El?ctrica (EUITI-UPM) URL: http://procomun.wordpress.com Twitter: @oscarperpinan
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo