J'ai une matrice raster avec des valeurs non négatives (chaque pixel a une valeur de hauteur), et je voudrais calculer des mesures de hauteur personnalisées avec une fenêtre mobile 5x5, en utilisant symétrique rembourrage autour des bords de la matrice. J'ai fait quelques calculs de base en utilisant pktools (filtre spatial) dans QGIS (moyenne, écart-type, maximum), ce qui m'a permis de le faire (remplissage en utilisant des zéros, des réplicats ou symétrique). Maintenant que je veux calculer d'autres métriques en utilisant des fonctions personnalisées (c.-à-d. Coefficient de hauteurs, asymétrie et aplatissement), je ne peux pas utiliser pktools. J'ai essayé d'utiliser la fonction focal()
dans raster
, mais le padValue doit être numérique. Y a-t-il un moyen de contourner cela, alors je peux avoir des bordures symétriques? J'ai essayé les éléments suivants:Comment incorporer un padValue symétrique avec fonction focale dans le raster
> f.CoH <- function(x) {sd(x)/mean(x)}
>
> CoH <- focal(raster, w=matrix(1,nrow=5,ncol=5), fun=f.CoH, pad=TRUE,
> padValue="symmetric")
Mais l'erreur suivante:
> Warning message: In .local(x, ...) : NAs introduced by coercion
Merci
Existe-t-il un moyen de répliquer les valeurs à la place? Je préférerais cela que NAs ou 0. – Danica
Pas que je sache, sauf si vous voulez le programmer. Cependant, à mon avis, il vaut mieux se contenter de NA que de répliquer: au moins, les statistiques que vous dérivez sont basées sur des données réelles, tandis que la réplication de données introduit de fausses données et les traite comme si elles étaient réelles. – lbusett