2017-07-06 2 views
0

Compte tenu des données de séries chronologiques rasterbricka avec monthly de standardized rainfall depuis environ 60 ans, comment puis-je calculer ce qui suit sur le rasterbrick sans avoir à recourir à l'effondrement des données dans un dataframe:sécheresse pixellique/fréquences hygrométriques pour RasterBrick R

Q = negative/positive number of severely dry/wet months per total months of severely dry/wet events × 100 

severely wet comprend des valeurs dans la gamme 1.50 to 1.99 et severely dry inclut des valeurs dans la gamme −1.99 to −1.50

Je préférerai Q pour être au format raster. Téléchargez l'ensemble de données et faites:

dd=spei03_df 
dd[1:2]<-dd[2:1]#swap lat and lon 
a=rasterFromXYZ(dd) 

Des pensées? Merci.

Example data set can be found here

Répondre

0

Vous pouvez utiliser l'algèbre de trame à partir du package raster. Voici un exemple qui calcule le sévère humide. La sortie finale, a_wet_perc est une couche raster avec des valeurs de cellule comprises entre 0 et 100 (exprimées en pourcentage). Vous pouvez suivre la même logique pour créer une couche raster résumant l'état sec sévère.

library(raster) 

# Calculate the Severe Wet 
a_wet <- a 

# Replace vlaues >= 1.5 and <= 1.99 to 100 
# (Does not need to be 100. A very large number should be good) 
a_wet[a_wet >= 1.5 & a_wet <= 1.99] <- 100 
# Replace other values to 0 
a_wet[a_wet < 100] <- 0 
# Replace 100 to 1 
a_wet[a_wet == 100] <- 1 

# Calculate the percentage of severe wet 
a_wet_perc <- mean(a_wet) * 100 
+0

Ceci est très insistant. Étant donné que 'a' a des valeurs allant de -5 à + 5, lorsque vous définissez' a_dry [a_dry> = 1.5 & a_dry <= 1.99] <- 100', et toutes les autres valeurs '<100 = 0', isn Est-ce une gamme «sévèrement humide»? Comment peut-on avoir à la fois des pourcentages «sévèrement humides et sévèrement secs» dans une trame? Ce serait plus intuitif en ce sens que nous pouvons utiliser une couleur divergente pour montrer l'humidité et la sécheresse dans l'espace. Des pensées à ce sujet? Merci encore. – code123

+0

J'ai mal lu votre gamme de sévère-sec et sévère-humide. Je vais corriger le terme de sec à humide dans mon message. – www

+0

En ce qui concerne votre deuxième commentaire. Je pensais que vous voulez deux couches raster. Un pour résumer sévèrement sec, l'autre pour résumer sévère-humide. – www