1
$\begingroup$

I want to use the spei() function in the SPEI package on a waterbalance dataset from 2015-2020 of 99 locations. The waterbalance is calculated out of MODIS PET values (8-day summed to monthly) and CHIRPS precipitation values (daily summed to monthly). MODIS PET returns NA's for several weeks in the year, and because the water balance is cumulative I return every month containing NA's as NA. The input data thus is formatted as follows: https://drive.google.com/file/d/1oDoY9JzuAy4EefKre22FUMzbTo_zehq-/view?usp=sharing

 head(data)
  year month_num      AN01      AN02      AN03     AN04     AN05     AN06      AN07      AN08      AN09     AN10     AN11     AN12     AN13     AN14     AN15
1 2015         1        NA        NA        NA 140.6656 140.6656 140.6656 140.22344 140.22344 140.22344 140.6656 140.6656 140.6656 139.7125 139.7125 139.7125
2 2015         2 119.66563 119.66563 119.66563 121.3547 121.3547 121.3547 119.82969 119.82969 119.82969 121.3547 121.3547 121.3547 118.0609 118.0609 118.0609
3 2015         3        NA        NA        NA       NA       NA       NA        NA        NA        NA       NA       NA       NA       NA       NA       NA
4 2015         4        NA        NA        NA       NA       NA       NA        NA        NA        NA       NA       NA       NA       NA       NA       NA
5 2015         5 153.68281 153.68281 153.68281 153.4719 153.4719 153.4719        NA        NA        NA 153.4719 153.4719 153.4719 153.8500 153.8500 153.8500
6 2015         6  18.00313  18.00313  18.00313       NA       NA       NA  17.79688  17.79688  17.79688       NA       NA       NA  18.2000  18.2000  18.2000
       CA01      CA02      CA03      CA04      CA05      CA06      CA07      CA08      CA09      CA10      CA11      CA12      CA13      CA14      CA15
1        NA        NA        NA        NA        NA        NA        NA        NA        NA 122.91406 122.91406 122.91406        NA        NA        NA
2        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA
3        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA  81.07344  81.07344  81.07344
4        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA
5 110.16875 110.05156 110.05156 104.26406 104.26406 104.26406 110.14531 110.19219 110.19219 117.41250 117.41250 117.41250 117.30469 117.30469 117.30469
6  14.29219  14.18594  14.18594  13.42969  13.42969  13.42969  14.40312  14.42188  14.42188  19.60312  19.60312  19.60312  19.40469  19.40469  19.40469
       CA16      CA17      CA18      CA19      CA20      CA21      CA22      CA23      CA24      CA25      CA26      CA27      CA28     CA29     CA30      NU01
1 121.86875 121.86875 121.86875        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA       NA       NA        NA
2        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA       NA       NA        NA
3        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA  96.53281  96.53281        NA       NA       NA  92.86562
4        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA       NA       NA        NA
5 117.31562 117.31562 117.31562 110.19375 110.19375 110.19375 110.10781 110.10781 110.10781 110.15625 110.20469 110.20469 117.14687 117.1125 117.1125 150.16406
6  19.52656  19.52656  19.52656  14.30937  14.30937  14.30937  14.29531  14.29531  14.29531  14.35469  14.36875  14.36875  19.27656  19.3000  19.3000  19.27656
       NU02      NU03      NU04      NU05      NU06      NU10      NU11      NU12      NU13      NU14      NU15      NU16      NU17      NU18      NU19
1        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA 121.43906 121.43906 121.43906        NA
2        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA 103.69688
3  92.86562  92.86562  91.94844  91.94844  91.94844        NA        NA        NA  92.86562  92.86562  92.86562        NA        NA        NA  92.45312
4        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA
5 150.16406 150.16406 150.05781 150.05781 150.05781 150.18750 150.18750 150.18750 150.16406 150.16406 150.16406 150.50156 150.50156 150.50156 150.14062
6  19.27656  19.27656  19.24687  19.24687  19.24687  19.40781  19.40781  19.40781  19.27656  19.27656  19.27656  19.67813  19.67813  19.67813  19.34219
       NU20      NU21      NU22      NU23      NU24      NU25      NU26      NU27      PU01      PU02      PU03      PU04      PU05      PU06      PU07
1        NA        NA        NA        NA        NA 121.50938 121.50938 121.50938        NA        NA        NA        NA        NA        NA 133.13594
2 103.69688 103.69688 101.83594 101.83594 101.83594 101.92656 101.92656 101.92656        NA        NA        NA        NA        NA        NA 111.66719
3  92.45312  92.45312  92.87812  92.87812  92.87812  92.93281  92.93281  92.93281        NA  87.29688  87.29688        NA        NA        NA        NA
4        NA        NA        NA        NA        NA 148.44375 148.44375 148.44375        NA        NA        NA        NA        NA        NA 150.31250
5 150.14062 150.14062 150.27656 150.27656 150.27656 150.16563 150.16563 150.16563 113.30312 113.21875 113.21875 155.24844 155.24844 155.24844        NA
6  19.34219  19.34219  19.43750  19.43750  19.43750  19.40156  19.40156  19.40156  12.38281  12.37187  12.37187  24.44531  24.44531  24.44531  24.56719
       PU08      PU09     PU10     PU11     PU12      PU13      PU14      PU15      PU16      PU17      PU18      PU19      PU20      PU21      PU22      PU23
1 133.13594 133.13594       NA       NA       NA        NA        NA        NA        NA        NA        NA 109.91250        NA 110.00781 132.42812 132.42812
2 111.66719 111.66719       NA       NA       NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA
3        NA        NA       NA       NA       NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA
4 150.31250 150.31250       NA       NA       NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA        NA
5        NA        NA 113.1641 113.1641 113.1641 113.08125 113.08125 113.08125 106.19062 155.17656 106.19062 106.11875 106.16875 106.10625        NA        NA
6  24.56719  24.56719  12.4000  12.4000  12.4000  12.30625  12.30625  12.30625  10.29688  24.40938  10.29688  10.27656  10.31719  10.31406  24.49531  24.49531
       PU24      PU25     PU26     PU27      PU28      PU29      PU30
1 132.42812        NA       NA       NA        NA        NA        NA
2        NA        NA       NA       NA        NA        NA        NA
3        NA        NA       NA       NA        NA        NA        NA
4        NA        NA       NA       NA        NA        NA        NA
5        NA 113.07812       NA       NA 113.00625 113.00625 113.00625
6  24.49531  12.39844 12.35938 12.35938  12.39531  12.39531  12.39531

Now I want to calculate the SPEI for different timeframes (1,3,6,12), so I apply the SPEI function on my dataset, but when I for instance apply SPEI-1, I get:

> spei1all <- spei(data, 1, na.rm = TRUE)
> head(spei1all$fitted)
     year month_num        AN01        AN02        AN03 AN04 AN05 AN06 AN07 AN08 AN09 AN10 AN11 AN12        AN13        AN14        AN15       CA01       CA02
[1,]   NA        NA          NA          NA          NA   NA   NA   NA   NA   NA   NA   NA   NA   NA          NA          NA          NA         NA         NA
[2,]   NA        NA          NA          NA          NA   NA   NA   NA   NA   NA   NA   NA   NA   NA          NA          NA          NA         NA         NA
[3,]   NA        NA          NA          NA          NA   NA   NA   NA   NA   NA   NA   NA   NA   NA          NA          NA          NA         NA         NA
[4,]   NA        NA          NA          NA          NA   NA   NA   NA   NA   NA   NA   NA   NA   NA          NA          NA          NA         NA         NA
[5,]   NA        NA -0.04473888 -0.04473888 -0.04473888   NA   NA   NA   NA   NA   NA   NA   NA   NA -0.04556608 -0.04556608 -0.04556608 -0.1440235 -0.1437865
[6,]   NA        NA          NA          NA          NA   NA   NA   NA   NA   NA   NA   NA   NA   NA          NA          NA          NA  0.1270792  0.1252743
           CA03       CA04       CA05       CA06       CA07       CA08       CA09        CA10        CA11        CA12        CA13        CA14        CA15
[1,]         NA         NA         NA         NA         NA         NA         NA          NA          NA          NA          NA          NA          NA
[2,]         NA         NA         NA         NA         NA         NA         NA          NA          NA          NA          NA          NA          NA
[3,]         NA         NA         NA         NA         NA         NA         NA          NA          NA          NA          NA          NA          NA
[4,]         NA         NA         NA         NA         NA         NA         NA          NA          NA          NA          NA          NA          NA
[5,] -0.1437865 -0.2131104 -0.2131104 -0.2131104 -0.1439872 -0.1443327 -0.1443327 -0.09725626 -0.09725626 -0.09725626 -0.09712531 -0.09712531 -0.09712531
[6,]  0.1252743  0.1821326  0.1821326  0.1821326  0.1347416  0.1379326  0.1379326  0.12373387  0.12373387  0.12373387  0.12174635  0.12174635  0.12174635
          CA16      CA17      CA18       CA19       CA20       CA21       CA22       CA23       CA24       CA25       CA26       CA27        CA28       CA29
[1,]        NA        NA        NA         NA         NA         NA         NA         NA         NA         NA         NA         NA          NA         NA
[2,]        NA        NA        NA         NA         NA         NA         NA         NA         NA         NA         NA         NA          NA         NA
[3,]        NA        NA        NA         NA         NA         NA         NA         NA         NA         NA         NA         NA          NA         NA
[4,]        NA        NA        NA         NA         NA         NA         NA         NA         NA         NA         NA         NA          NA         NA
[5,]        NA        NA        NA -0.1435276 -0.1435276 -0.1435276 -0.1433653 -0.1433653 -0.1433653 -0.1435422 -0.1427202 -0.1427202 -0.09792318 -0.0985231
[6,] 0.1241692 0.1241692 0.1241692  0.1258252  0.1258252  0.1258252  0.1325940  0.1325940  0.1325940  0.1315080  0.1344834  0.1344834  0.12496444  0.1167191
           CA30 NU01 NU02 NU03        NU04        NU05        NU06        NU10        NU11        NU12 NU13 NU14 NU15      NU16      NU17      NU18        NU19
[1,]         NA   NA   NA   NA          NA          NA          NA          NA          NA          NA   NA   NA   NA        NA        NA        NA          NA
[2,]         NA   NA   NA   NA          NA          NA          NA          NA          NA          NA   NA   NA   NA        NA        NA        NA          NA
[3,]         NA   NA   NA   NA          NA          NA          NA          NA          NA          NA   NA   NA   NA        NA        NA        NA          NA
[4,]         NA   NA   NA   NA          NA          NA          NA          NA          NA          NA   NA   NA   NA        NA        NA        NA          NA
[5,] -0.0985231   NA   NA   NA -0.02117332 -0.02117332 -0.02117332 -0.02190537 -0.02190537 -0.02190537   NA   NA   NA        NA        NA        NA -0.02135286
[6,]  0.1167191   NA   NA   NA  0.61505613  0.61505613  0.61505613  0.61339831  0.61339831  0.61339831   NA   NA   NA 0.6261692 0.6261692 0.6261692          NA
            NU20        NU21      NU22      NU23      NU24     NU25     NU26     NU27         PU01      PU02      PU03      PU04      PU05      PU06      PU07
[1,]          NA          NA        NA        NA        NA       NA       NA       NA           NA        NA        NA        NA        NA        NA        NA
[2,]          NA          NA        NA        NA        NA       NA       NA       NA           NA        NA        NA        NA        NA        NA        NA
[3,]          NA          NA        NA        NA        NA       NA       NA       NA           NA        NA        NA        NA        NA        NA        NA
[4,]          NA          NA        NA        NA        NA 1.111417 1.111417 1.111417           NA        NA        NA        NA        NA        NA        NA
[5,] -0.02135286 -0.02135286        NA        NA        NA       NA       NA       NA -0.004715343        NA        NA 0.1010535 0.1010535 0.1010535        NA
[6,]          NA          NA 0.6152473 0.6152473 0.6152473       NA       NA       NA  0.701645612 0.7026218 0.7026218        NA        NA        NA 0.7763708
          PU08      PU09         PU10         PU11         PU12         PU13         PU14         PU15      PU16      PU17      PU18       PU19       PU20
[1,]        NA        NA           NA           NA           NA           NA           NA           NA        NA        NA        NA         NA         NA
[2,]        NA        NA           NA           NA           NA           NA           NA           NA        NA        NA        NA         NA         NA
[3,]        NA        NA           NA           NA           NA           NA           NA           NA        NA        NA        NA         NA         NA
[4,]        NA        NA           NA           NA           NA           NA           NA           NA        NA        NA        NA         NA         NA
[5,]        NA        NA -0.005900812 -0.005900812 -0.005900812 -0.005597071 -0.005597071 -0.005597071        NA 0.1011388        NA -0.1207526 -0.1210379
[6,] 0.7763708 0.7763708  0.702357629  0.702357629  0.702357629  0.700751150  0.700751150  0.700751150 0.3631265 0.7692896 0.3631265  0.3722869         NA
           PU21 PU22 PU23 PU24         PU25      PU26      PU27         PU28         PU29         PU30
[1,]         NA   NA   NA   NA           NA        NA        NA           NA           NA           NA
[2,]         NA   NA   NA   NA           NA        NA        NA           NA           NA           NA
[3,]         NA   NA   NA   NA           NA        NA        NA           NA           NA           NA
[4,]         NA   NA   NA   NA           NA        NA        NA           NA           NA           NA
[5,] -0.1216638   NA   NA   NA -0.004863862        NA        NA -0.007700107 -0.007700107 -0.007700107
[6,]  0.3728449   NA   NA   NA           NA 0.6935715 0.6935715  0.699429193  0.699429193  0.699429193

Even though I apply na.rm = TRUE the SPEI returns NA's or values at unexpected places. It seems like there is something wrong with how I format my dataframe?

$\endgroup$
  • $\begingroup$ Are you using R for your estimation? could you post a sample of your input data and the code you are using? take into account that both SPI and SPEI will have NA's in the first months, because each value is calculated looking at the running average: for instance, for a SPI-12 you will have NA's for the first 11 months, 2 months for a SPI-3 and so on. $\endgroup$ – Nemesi Sep 30 at 15:49
  • $\begingroup$ rawdata = read.csv("SPEI_Input500m_thorntwaithe.csv", header = TRUE) data <- ts(rawdata[,-c(1,2)], start=c(2000,6), end=c(2020,5), frequency=12) spei1 <- spei(data, 1, na.rm = TRUE, ref.start=c(2000,6), ref.end=c(2015,10)) Output data: drive.google.com/file/d/19SLQrShHYdTACSBFaLOx0jfvfXIaflEN/… $\endgroup$ – Maarten Meijer Oct 3 at 17:56
  • $\begingroup$ Yes I used R for the estimation. Right now SPEI on timescales >1 produce sensible results, so no problem there anymore. If I plot SPEI-1 timeseries it seems skewed though. The SPEI timescales >1 seem to be okay for my research goals based on literature though $\endgroup$ – Maarten Meijer Oct 3 at 17:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.