Importing GLCF MODIS woody plant cover

The data set

The Global Land Cover Facility offers, amongst many other data sets, the MODIS Vegetation Continuous Fields data set for download. These are layers that contain proportional estimates for vegetative cover types (woody vegetation, herbaceous vegetation, and bare ground). As such they are very suitable depict areas of heterogeneous land cover.

Their MODIS products differ from DAAC editions by coming in GeoTIFF format, geographic coordinates, WGS84 datum, and a tiling system designed to fit well with Landsat imagery. Currently the collection 5 is available, which contains proportional estimates for woody cover vegetation for the years 2000 to 2010. It can be downloaded as tiles (195 in total) via a ftp server.

Below I’ll provide an example how you can use a small R script to download the tiles you need and import them directly into your GRASS GIS database. In order to use GRASS commands in R, you first need to start R from within GRASS GIS. To do this, first start GRASS GIS and open or create a location/mapset in your GRASS GIS database (coordinate reference system should be: geographic coordinates, WGS84 datum, i.e., EPGS 4326). Next, from the command line, start R.

Import the data

OK, now we can continue with downloading and importing the data. First, load the libraries you’ll need. The rgrass7 package enables R to read and write GRASS GIS data. The RCurl package provides a function wget to download data from the Internet from within R. The R.utils package provides the gunzip function to decompress the compressed geotif files.


Next, list 1) the tiles you want to download (the ones below cover Africa), 2) the ftp address, 3) the path to the folder to which the tiles will be downloaded and 4) the year for which you want to download the data.

tiles2download <- c("TS3536", "TS3334", "TS3132", "TS2930", "TS2728", "RQ3940", "RQ3738", "RQ3536", "RQ3334", "RQ3132", "RQ2930", "RQ2728", "PN3940", "PN3738", "PN3536", "PN3334", "PN3132", "PN2930", "PN2728", "ML3940", "ML3738", "ML3536", "ML3334", "ML3132", "KJ3940", "KJ3738", "KJ3536", "KJ3334", "KJ3132", "HG3536", "HG3334")
ftp <- ""
downloads <- "/home/paulo/moddata/2010"
year <- 2005

Now a bit of code to create the names of the files and those of the imported raster layers.

tiles <- paste("MOD44B_V5_TRE.", year, ".", tiles2download, sep="")
tiles <- paste(ftp, "/", year, "/", tiles, "/", tiles, ".tif.gz", sep="")
tile1 <- paste("MOD44B_V5_TRE.", year, ".", tiles2download, ".tif.gz", sep="")
tile2 <- paste("MOD44B_V5_TRE.", year, ".", tiles2download, ".tif", sep="")

After which we can proceed with extracting the data and importing the layers in GRASS GIS

for(i in 1:length(tiles2download)){
    system(paste("wget ",tiles[i]))
    tmptif <- gunzip(tile1[i])
    execGRASS("", input=tile2[i], output=paste("tiles", tiles2download[i], sep="_"))

And, as final step, we need to patch the tiles together

alltiles <- paste("tiles", tiles2download, sep="_")
execGRASS("g.region", raster=alltiles)
execGRASS("r.patch", input=alltiles, output=paste("MOD44B_V5_TRE", year, sep="_"))
execGRASS("g.remove", type="raster", pattern="tiles_*", flags="f")

And the obligatory screenshot to finish (showing the estimated tree cover in 2010 for eastern Africa).


Other MODIS data and how to import those in your GRASS data base.

Check also out the GRASS GIS Wiki, where you can detailed notes on how to import and use MODIS data layers. You might also be interested to read this article about downloading and resampling MODIS images on Or check out my earlier post on importing MODIS data.



3 thoughts on “Importing GLCF MODIS woody plant cover

  1. Pingback: Importing GLCF MODIS woody plant cover into GRASS | Geo-How-To News

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s