2017-04-11 1 views
0

Ich hoffe, Sie können mir mit einem Problem helfen, das ich seit einer Weile habe. Ich muss eine Bias-Datei für MaxEnt machen, für die ich dieses Tutorial verwendet habe: https://scottrinnan.wordpress.com/2015/08/31/how-to-construct-a-bias-file-with-r-for-use-in-maxent-modeling/ und änderte es auf meine eigene Situation. Allerdings stecke ich jetzt fest ...Kernel Dichtefunktion in R gibt ungleiche x und y Auflösung

Ich muss die kde2d-Funktion verwenden, um eine 2D-Kernel-Dichte-Schätzung zu erstellen und dann in ein Raster zu verwandeln. Das erstellte Raster hat jedoch eine andere Auflösung für x und y. Dies ist ein Problem, da ich es in MaxEnt verwenden muss, das ungleiche X- und Y-Auflösungen nicht akzeptiert.

Das ist, was ich tat:

biasraster <- raster("file.tif") #load raster with all the occurrences 
presences <-which(values(biasraster)==1) 
pres.locs<- coordinates(biasraster)[presences,] 
dens <-kde2d(pres.locs[,1],pres.locs[,2],n=c(nrow(biasraster),ncol(biasraster))) #2d kernel density function on the biasraster 
dens.ras<-raster(dens) #create raster from kde2d function 

Die ursprüngliche Auflösung des biasraster ist 0,00833333 für beide x und y, aber die Auflösung für dens.ras hat 0,0104052, 0,00833333 geändert (x, y) (also ist die y-Auflösung die richtige).

Wie aus der Frage wohl zu ersehen ist, bin ich insgesamt ein Anfänger, wenn es um das Codieren (in r) geht. Ich versuche seit ungefähr einer Woche herauszufinden, was zu tun ist, aber ich kann keine Antworten finden, die zu funktionieren scheinen, also hoffe ich, dass jemand hier mir helfen kann.

+0

Ohne die Beispieldatei kann man erraten, dass die Indizierung den Bereich in einer der Richtungen reduziert, was zu unterschiedlichen Auflösungen führt. Vielleicht versuchen Sie, 'h =' Argument in 'MASS :: kde2d' anzugeben. – nya

Antwort

0

Ich hatte das gleiche Problem. Ich konnte nur lösen es mit:

dens.ras < - Resampling (dens.ras, climdat, method = "bilinear") #make Bias-Datei in der gleichen Auflösung von climdat

aber Additionaly, ich brauche auch geschnitten densen.ras. gut

densmod < -crop (dens.ras, Umfang (climdat))

Mit diesen zusätzlichen Schritten arbeitete meine Bias-Datei.

+0

Ja das hat perfekt funktioniert! ich danke dir sehr! – Nadja

Verwandte Themen