2017-04-11 3 views
0

J'espère que vous pourrez m'aider avec un problème que j'ai rencontré depuis un moment. J'ai besoin de faire un fichier de biais pour MaxEnt, pour lequel j'ai utilisé ce tutoriel: https://scottrinnan.wordpress.com/2015/08/31/how-to-construct-a-bias-file-with-r-for-use-in-maxent-modeling/ et modifié à ma propre situation. Cependant, je suis coincé maintenant ...La fonction de densité du noyau dans R donne une résolution x et y inégale

J'ai besoin d'utiliser la fonction kde2d pour créer une estimation de densité de noyau 2d et ensuite transformer cela en raster. Cependant, le raster créé a une résolution différente pour x et y. C'est un problème, puisque je dois l'utiliser dans MaxEnt qui n'accepte pas les résolutions x et y inégales.

C'est ce que je l'ai fait:

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 

La résolution originale du biasraster est 0,00833333 pour x et y, mais la résolution de dens.ras a changé à 0,0104052, 0,00833333 (x, y) (donc la résolution y est la bonne).

Comme on peut probablement le voir d'après la question, je suis un noob total quand il s'agit de coder (en r). J'essaie de comprendre ce qu'il faut faire depuis environ une semaine, mais je ne trouve aucune réponse qui semble fonctionner, alors j'espère que quelqu'un ici pourra m'aider.

+0

Sans le fichier d'exemple, on peut supposer que l'indexation réduira la plage dans l'une des directions, conduisant à des résolutions différentes. Essayez peut-être de spécifier l'argument 'h =' dans 'MASS :: kde2d'. – nya

Répondre

0

J'ai eu le même problème. Je ne pouvais le résoudre en utilisant:

dens.ras < - resample (dens.ras, climdat, method = "bilinéaire") fichier biais #make dans la même résolution de climdat

mais additionaly, je dois aussi couper les dens.ras.

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

Avec ces quelques étapes supplémentaires, mon dossier de polarisation a bien fonctionné.

+0

Oui, cela a parfaitement fonctionné! Merci beaucoup! – Nadja