2017-07-07 2 views
2

Ich habe abzuschätzen topographische Informationen bestimmter Bereiche verwenden. Hier möchte man Daten von worldclim verwenden. Ich muss die Standardabweichung der Höhe für jede 30s-Zelle schätzen, die innerhalb einer 10min-Zelle auftritt. Allerdings weiß ich wirklich nicht wie. Ich muss irgendwie die Zellen geographisch aggregieren ...Aggregate von Zellen worldclim geographisch Standardabweichung von 10min Auflösung zur Abschätzung von 30s Auflösung

Ich extrahiere zuerst die erforderlichen Daten von worldclim, Erhebungen für 10min und für 30s (hier wählte ich einfach eine zufällige Zahl für lon und lat). Ich stelle auch eine meiner Koordinaten zur Verfügung, die ich verwende.

alt <- getData("worldclim",var="alt",res=10) 

alt05_1 <- getData('worldclim', var='alt', res=0.5, lon=5, lat=45) 

lats <- c(46.06667, 46.60134) 

lons <- c(7.600000, 9.965973) 

coords <- data.frame(x=lons,y=lats) 

points_alt <- SpatialPoints(coords, proj4string = [email protected]) 

values_alt <- extract(alt,points_alt) 

altitude <- cbind.data.frame(coordinates(points_alt),values_alt) 

Also mit dieser, ich bin natürlich in der Lage, die Höhe für beiden relosutions zu extrahieren, aber wie bin ich in der Lage alle Erhebungen Zelle aus jeder 30s bedeuten zu extrahieren, die in der 10min Zelle von E auftreten. G. die erste Koordinate?

Antwort

2

Die Daten, die Sie erhalten, sind mit einem Raster Format. Sie sollten also Funktionen von library(raster) verwenden. Sie können die Standardabweichung direkt über die Funktion aggregate berechnen. fact Parameter ist die Größe der Aggregation, hier von 0,5 bis 10, fact=10/0.5:

alt05_1 <- getData('worldclim', var='alt', res=0.5, lon=5, lat=45) 
sd_alt05 <- aggregate(alt05_1, fact = 10/0.5, fun = sd) 

den Mittelwert zu erhalten, können Sie die gleiche Funktion verwendet werden kann. mean ist die Vorgabe übrigens:

mean_alt05 <- aggregate(alt05_1, fact = 10/0.5, fun = mean) 
+0

Danke, es hat funktioniert! Ich habe jedoch eine Frage und ein Problem. Zuerst die Frage: Warum brauche ich die 10min Auflösung um den Mittelwert/sd der 30s Zellen zu berechnen? Ich dachte, es könnte unabhängig voneinander gemacht werden. Mein Problem ist jetzt, jetzt, dass ich alle 30s mittels spezifischer 10min Zellen haben die sd dieser 10min Zelle, in die mittels ihrer 30 Mittel zu berechnen. Aber wie mache ich das? Auf welche Weise kann ich eine interessierende Zelle, die meine Koordinaten enthält, spezifisch definieren oder aufrufen, und außerdem, wie kann man den Mittelwert jeder einzelnen 30er-Zelle, die in der 10min-Zelle vorkommt, extrahieren? – Alice

+0

Meine Aggregatfunktion tut genau das, was Sie fragen. Er berechnet die sd aller 30sec Zellen in jeder 10min Zellen. Es ist kein Schritt mehr nötig, soweit ich Ihre Frage verstehe. –

+0

Okay. Ich war verwirrt, weil es einen neuen Stapel generierte, genau wie diejenigen, die Informationen über die Höhe enthielten. Habe ich nun automatisch die gewünschte sd von einer 10min Zelle, wenn ich meine Koordinaten einfüge? – Alice

Verwandte Themen