Suite

Extraction de données d'un raster en fonction du fichier Aspect Raster


J'ai 2 rasters, l'un montre l'aspect et l'autre montre la date du dégel de la neige. Je souhaite extraire la date de fonte des neiges en fonction des valeurs du raster d'aspect. Par exemple, je veux toutes les dates de dégel des pentes exposées au sud. J'ai déjà identifié nord (1), est (2), sud (3), ouest (4). J'ai essayé d'extraire les valeurs :

snowThawSouth <- extract(aspect==3, snowThawDate)

Cependant je viens d'avoir l'erreur suivante :

Erreur dans (fonction (classes, fdef, mtable) : impossible de trouver une méthode héritée pour la fonction 'extract' pour la signature '"RasterLayer", "RasterLayer"' En plus : Message d'avertissement : fermeture de la connexion inutilisée 3 (/var/folders/ 4_/9jsy7tfj2yq0s_czc2gc6tvh0000gn/T/R_raster_USER//2015-07-17_152719_21839_88030.gri)

Je veux juste pouvoir extraire toutes les valeurs de chaque aspect, dans une liste, afin de comparer les dates de dégel en fonction de l'aspect de la cellule.


extraitextrait les valeurs raster en fonction d'une intersection avec un vecteur. Cela pourrait être utile si vous vouliez échantillonner des valeurs raster à partir de quelque chose comme un fichier de formes de points. Dans ce cas, cependant, vous souhaitez identifier les cellules en fonction de la valeur, puis obtenir les données directement à partir du raster. Cela peut devoir être modifié si les performances de lecture des données posent problème :

# Obtenir les index qui représentent les différents aspects. # Ceux-ci correspondent aux index de cellules pour le nord, l'est, etc. idxNorth <- which(getValues(aspect)==1) idxEast <- which(getValues(aspect)==2) idxSouth <- which(getValues(aspect)= =3) idxWest <- which(getValues(aspect)==4)

Nous pouvons utiliser ces index pour extraire les données directement dans un vecteur :

snowThawNorth <- getValues(snowThawDate)[idxNorth] snowThawEast <- getValues(snowThawDate)[idxEast] snowThawEast <- getValues(snowThawDate)[idxSouth] snowThawWest <- getValues(snowThawDate)[idxWest]

Comme le note @JeffEvans, ceux-ci peuvent être imbriqués par souci de concision :

snowThawNorth <- getValues(snowThawDate)[which(getValues(aspect)==1)] snowThawEast <- getValues(snowThawDate)[which(getValues(aspect)==2)] snowThawEast <- getValues(snowThawDate)[which(getValues( aspect)==3)] snowThawEast <- getValues(snowThawDate)[which(getValues(aspect)==4)]


Voir la vidéo: Tuto QGIS: Extract values from a raster. Extraire des valeurs dun raster (Octobre 2021).