1 votos

Suma y resta de objetos rasterbrick en R

Tengo dos objetos rasterbrick que muestran precipitaciones. Ambos tienen unas dimensiones de longitud y latitud de 144 x 72. El primero (brick1) tiene 478 capas temporales mensuales (39 años, 10 meses) que van de enero de 1979 a octubre de 2018. El segundo (brick2) tiene 12 capas temporales mensuales (de enero a diciembre) que representan los valores medios mensuales de 1981-2010. Quiero calcular una anomalía restando la media mensual geográficamente apropiada de cada punto de datos. He hecho esto

anom <- brick1-brick2 

R no se quejó - pero no estoy seguro de si conseguí lo que quería.

Mi esperanza es que R reste primero los medios de enero a diciembre contra 1979, luego recicle esos medios de forma idéntica a lo largo de cada año hasta 2018, y en 2018 aplique sólo los 10 primeros medios (de enero a octubre). No he podido encontrar ninguna documentación que indique si esto es lo que realmente se hace. He visto algunas declaraciones en el sentido de que algunas operaciones reciclan objetos más pequeños contra los más grandes, pero nada específicamente sobre rasterbricks. ¿Alguien lo sabe?

1voto

Crissov Puntos 225

Funcionará si tiene un múltiplo, pero no funcionará si quedan capas:

library(raster)
m1 = array(dim=c(2,2,2),
           data = c(0,1,2,3,
                    4,5,6,7))
m2 = array(dim=c(2,2,6),
           data = c(1,1,0,0,
                    1,2,1,2,
                    4,5,4,5,
                    5,6,5,6,
                    -1,0,-1,0,
                    1,0,1,0))
r1 = brick(m1)
r2=brick(m2)

r3 = r2-r1

plot(r1)
plot(r2)
plot(r3)

plot(r3) muestra que las capas se sustraen secuencial e iterativamente. Pero si cambia m2 a...

m2 = array(dim=c(2,2,7),
           data = c(1,1,0,0,
                    1,2,1,2,
                    4,5,4,5,
                    5,6,5,6,
                    -1,0,-1,0,
                    1,0,1,0,
                    0,0,0,0))

... ya no funcionará porque el objeto más largo no es múltiplo del objeto más corto. Si yo fuera tú, haría la gran resta utilizando sólo los años completos, y luego subconjuntaría el rasterbrick de la media de 12 meses para incluir sólo los datos hasta octubre y restaría los datos de enero-octubre de 2018.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X