2017-02-26 4 views
1

Ich habe einen Rasterstapel von 5 Rastern (erfundene Beispiele hier in s), und ich möchte aus diesem Stapel zwei Plots des Maximal- und Minimalwertes machen - das ist ziemlich einfach mit max/min (a).Plotten des Maximums eines Rasterstapels in R mit bestimmten Farben

r <- raster(nrows=10,ncols=100) 
r[] <- rnorm(1000) 
s <- stack(r,r,r,r,r) 
a<-max(s, na.rm=T) 
plot(a) 

Ich möchte jedoch plotten, aber rasterspezifische Farben anwenden. Wenn zum Beispiel der Maximalwert in einer Zelle von Raster 3 im Stapel stammte, würde diese Zelle im Plot rot gefärbt sein, in der nächsten Zelle wäre der Maximalwert von Raster 5, dann wäre das Grün usw. Es ist dort Wie auch immer, rasterspezifische Farben auf ein solches Raster-Stack-Diagramm anzuwenden?

Ich bin sicher, das ist ziemlich einfach, aber ich gehe im Kreis herum. Wenn jemand irgendwelche Ideen hat, wäre ich sehr dankbar.

+0

Gibt es eine Möglichkeit, wie Sie dies zu einer [reproduzierbare Frage] machen können (http://stackoverflow.com/questions/5963269/how- um ein großartiges r-reproduzierbares Beispiel zu machen? Es ist ein bisschen schwierig, im Allgemeinen zu sprechen. – r2evans

+0

danke r2evans, generisches Beispiel eingefügt. – Arferion

Antwort

1

Sie which.max statt max verwenden sollten, zu erhalten, welche Schicht für jedes Pixel max ist (beachten Sie, dass ich Ihre exmple Daten ändern musste, weil Sie einen Stapel mit identischen Raster zu erzeugen wurden):

r1 <- raster(nrows=10,ncols=100, vals =rnorm(1000)) 
r2 <- raster(nrows=10,ncols=100, vals =rnorm(1000)) 
r3 <- raster(nrows=10,ncols=100, vals =rnorm(1000)) 
r4 <- raster(nrows=10,ncols=100, vals =rnorm(1000)) 
r5 <- raster(nrows=10,ncols=100, vals =rnorm(1000)) 
s <- stack(r1,r2,r3,r4,r5) 
wheremax<-which.max(s) 
plot(a) 

haben die Farben, die Sie wollen, müssen Sie nur eine richtige Farbtabelle beim Plotten zuweisen wheremax

+0

Lorenzo, funktioniert wie ein Charme! Vielen Dank. – Arferion

Verwandte Themen