Monthly Archives: March 2014

Privte: XHe-dm-abschlussaufgabe

DATA MANAGEMENT Abschlussaufgabe, Xun He

Fuer die Abschlussaufgabe soll die Korrelation zwischen dem Jahresmittel der Lufttemperatur und dem NDVI-Vegetationsindex fuer 36 Standorte am Kilimandscharo untersucht werden. (Bei der Bearbeitung sind aber nur noch 34 Stationen uebrig.)

Import benoetigten Bibliothek:

library(raster)
## Warning: package 'raster' was built under R version 2.15.3
## Warning: package 'sp' was built under R version 2.15.3

Teilmodul 1: Monatsmittel der Klimadaten einlesen und auf Jahresmittelwerte aggregieren.

Namen von alle Dateien in Dataset_01 zu einlesen in Liste Templiste.

setwd("C:/Users/hexun/Desktop/abschlussaufgabe_dm")
Templiste <- list.files("dataset_01/")

Durch lapply-Funktion erhalten Datetime, PlotId und Lufttemperaturen pro Station aus alle Dateien in Templiste, dann zusammen setzen in mdf data frame.

myTempList <- lapply(Templiste, function(x) {

    filename = paste("dataset_01/", x, sep = "")
    data <- read.table(filename, sep = ",", header = TRUE)

    df <- data.frame(data$Datetime, data$PlotId, data$Ta_200)
    return(df)
})

mdf <- do.call("rbind", myTempList)

Aggregieren der Monatswerte pro PlotId zu Jahresdurchschnittswerte und Umbenennen der Spalten.

means <- aggregate(mdf$data.Ta_200, by = list(plotid = mdf$data.PlotId), FUN = mean)
colnames(means) <- c("PlotId", "Ta_200")

Teilmodul 2: Klimadaten mit geographischen Standortinformationen verschneiden.

Laden die Koordinaten der Stationen aus der csv.

stat_locs <- read.table("dataset_02/station_locations.csv", sep = ",", header = TRUE)

Verschneiden der Koordinaten mit der Temperaturdaten fuer PlotId und Umbenennen der Spalten.

merged <- merge(means, stat_locs, by = "PlotId")
colnames(merged) <- c("PlotId", "Ta_200", "X", "Y")

Zuweisen der Koordinaten-Spalten X und Y und Projektion zuweisen wie vorgegeben.

coordinates(merged) <- ~X + Y
projection(merged) <- "+proj=utm +zone=37 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"

Teilmodul 3: NDVI-Datensatz als Spatial-Pixels-Data-Frame verfuegbar machen.

Einladen NDVI-Daten-Raster.

ndviraster <- raster("dataset_03/ki_year_mean_ndvi_gimms_dwnsc_8206_utm.tif")

Teilmodul 4: Korrelation und Visualisierung

Extraktion der NDVI-Werte an den Stationsstandorten. Loeschen einer Spalte und umbenennen der NDVI-Spalte, verbinden aller Daten.

ndvivalues <- extract(ndviraster, merged, df = TRUE)
ndvivalues[1] <- NULL
colnames(ndvivalues) <- c("NDVI")
finaldf <- cbind(ndvivalues, merged)

Visualisierung in Plot mit lineare Linie.

plot(finaldf$Ta_200, finaldf$NDVI, main = "Relation of annual mean air temperature\nand NDVI Index \n[n=34]", 
    xlab = "Mean annual air temp. [C]", ylab = "NDVI")
abline(lm(finaldf$NDVI ~ finaldf$Ta_200))

plot of chunk unnamed-chunk-10

Relation of annual mean air temperature and NDVI Index

Bestimmen der Korrelationskoeffizienten:

summary(cor(finaldf$NDVI, finaldf$Ta_200))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -0.847  -0.847  -0.847  -0.847  -0.847  -0.847

Die Korrelation zwischen NDVI und Lufttemperatur ist negativ.