J'ai un fichier matriciel de couverture terrestre que j'ai réduit pour ne contenir que des cellules de couverture d'arbre. J'ai utilisé clump
dans le package raster pour regrouper() des zones contiguës de forêt. Cela donne à toutes les cellules qui se touchent le même ID parce qu'elles font partie du même patch.
Je veux ensuite comprendre le PatchStat() pour chaque bloc, ce que je fais en convertissant mon raster clump en as.matrix. J'ai essayé d'obtenir le PatchStat() pour faire ceci au raster mais cela ne fonctionnerait que s'il était dans une matrice.Création d'un raster avec les valeurs PatchStat de SDMTools dans R
Je veux maintenant faire un raster avec la sortie de patch, à savoir "perim.area.ratio". Donc, chaque cellule qui correspond à clump 1, obtiendra la valeur perim.area.ratio qui correspond à clump 1. Pour ce faire, j'ai fait un data.frame() à partir de mon raster clump qui avait: lon, lat, layer(clumpID), cellID
.
J'ai essayé de fusionner mes données raster cluster.name avec la sortie PatchStat en utilisant couche et patchID. Toutefois, une erreur se produit:
Erreur dans fix.by (by.x, x): 'by' doit spécifier des colonnes valides.
Des idées comment je pourrais faire autrement, ou pourquoi ces colonnes ne sont pas valides? Code ci-dessous.
clump <- raster(file.choose())
library(SDMTools)
clumpval <- rasterToPoints(clump)
clumpcell <- cellFromXY(clump, clumpval[, c('x', 'y')])
clumpdf <- data.frame(clumpval, clumpcell)
ps.data <- PatchStat(as.matrix(clump))
merged.data.all <- merge(clumpdf, ps.data1, by=c("layer", "patchID"))
Le fichier d'aide (http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=SDMTools:PatchStat) indique que: "une matrice de données avec des correctifs individuels identifiés comme avec ConnCompLabel; La matrice peut être un raster de classe 'asc' (paquet adehabitat), 'RasterLayer' (paquet raster) ou 'SpatialGridDataFrame' (paquet sp) ". Si vous travaillez avec RasterLayer (si vous utilisez 'raster', vous l'êtes probablement), vous pourriez éviter d'avoir à convertir en matrice et revenir en arrière. –
Salut @RomanLustirk, merci pour la réponse. Oui, je travaille avec un 'RasterLayer', quand je vérifie les propriétés de mon raster, il le dit en haut. Cependant, cela ne fonctionne pas si je viens de mettre dans le raster, je reçois un message d'erreur ... Je ne sais pas pourquoi mais je ne pouvais pas comprendre cela non plus! Cheers, Adam – Adam
Quel est le message d'erreur? 'r <- raster (ncols = 12, nrows = 12); r [] <- round (runif (ncell (r)) * 0,6); rc <- motte (r); PatchStat (rc) 'fonctionne pour moi. – jbaums