GIMMS NDVI time series for a selected pixel

Time series analysis with satellite derived greenness indexes (e.g. NDVI) is a powerfull tool to assess environmental processes. AVHRR, MODIS and SPOT VGT provide global and daily imagery. Creating some plots is a simple task, and here is a rough start how it is done with GIMMS NDVI. All we need is the free software R.

I assume we already have the NDVI images in a folder, so the first 3 steps can be skipped, if not, they can be downloaded with a simple command:

wget -r ftp://ftp.glcf.umd.edu/glcf/GIMMS/Albers/Africa/

now unzip it:

find . -name "*.gz" -exec unp {} \;

As it comes in Albers projection, I reproject the Tiffs to a Lat Long WGS84 projection:

for in in *tif; do gdalwarp -s_srs EPSG:9001 -t_srs EPSG:4326 -r near -of GTiff $i /home/martin/Dissertation/GIMMS/GIMMS_lat/`basename $i`; done

I delete all 1981 images, as the year is not complete.

next, we start R, load the raster package and set the directory with the GIMMS Geotiffs:

library(raster)
library(rgdal)
setwd("~/GIMMS")

now load the Tiffs as a raster brick:

sg = stack(list.files(pattern='*.tif'))
gimmsb = brick(sg)
rm(sg)

now let’s chose a pixel and create a time series object. It can either be done by Row and Col:

i=20 # row
j=23 # col
gimms = gimmsb[i,j]
gimms.ts = ts(gimms, start=1982, end=c(2006,24), frequency=24)

or by coordinates

xy <- cbind(-3.6249,14.3844)
sp <- SpatialPoints(xy)
data <- extract(gimmsb, sp)
data=as.vector(data)
gimms.ts = ts(data, start=1982, end=c(2006,24), frequency=24)

now the time series can be used for further analysis or plotted:

plot(gimms.ts)

A regression line and a LOESS smoothing can be added:

gimms.time = time(gimms.ts)
plot(gimms.ts)
abline(reg=lm(gimms.ts ~ gimms.time))
lines(lowess(gimms.ts, f=0.3, iter=5), col="blue")

some playing with boxplots and annual values:

layout(1:2)
plot(aggregate(gimms.ts));
boxplot(gimms.ts ~ cycle(gimms.ts))

GIMMS time series analysis

averaged over the sudy area:

g=cellStats(gimmsb, stat='mean')
g.ts = ts(g, start=1982, end=c(2006,24), frequency=24)
plot(g.ts)

There are great possibilities for time series analysis in R, e.g. the series can be smoothed, decomposed…etc. The zoo package provides further functions and can handle irregular series. See also the lattice package for better visual presentation. How pixelwise analyis is conducted for time series of rasters, I’ll write in another post.

### Like this:

Like Loading...

*Related*

Hi Martin-

Thanks for your very interesting posts.

I’m trying to access by GIMMS and Geoland in order to do long term trend analysis in Namibia, however, I am not having much luck accessing the data. Do you know why this is?

Thanks,

Vladimir

PhD candidate

Physical Geography and Environmental Change

University of Basel

Klingelbergstrasse 27

Basel 4056

Vladimir.wingate@unibas.ch

Hi, you may download the GIMMS 3g data here: https://nex.nasa.gov/nex/projects/1349/

Thanks for the reply,

Would you be able to recommend a quick method of downloading all the time series data into R? Unfortunately, I cannot see to get the example you posted on accessing data via the ftp server to work (ftp://ftp.glcf.umd.edu/glcf/GIMMS/Albers/Africa/).

Thank you,

Vladimir

yes the post is outdated, use

wget -i http://ecocast.arc.nasa.gov/data/pub/gimms/3g.v0/00FILE-LIST.txt

to download the new GIMMS3g data.