En essayant de comprendre pourquoi, lorsque je lis dans un raster de NDVI, l'emplacement @ data @ values ne contient pas les valeurs réelles jusqu'à ce que je les définisse manuellement. Par exemple:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
Cela ne s'est pas produit avec d'autres rasters que j'avais chargés par la même méthode, donc je suis confus. J'aimerais pouvoir être plus précis mais je ne me souviens pas avoir fait autre chose auparavant. Il est assez facile d'obtenir les valeurs manuellement en utilisant:
NDVI1@data@values <- getValues(NDVI19east)
Mais c'est toujours pénible de devoir le faire pour chaque fichier. Donc, question en deux parties:
Pourquoi est-ce arrivé en premier lieu? Je comprends que cela pourrait avoir quelque chose à voir avec la façon dont le fichier raster est stocké (c'est-à-dire s'il est en mémoire ou non) mais je ne comprends pas vraiment comment cela change les méthodes que je devrais utiliser pour accéder aux données ...
Existe-t-il un moyen d'automatiser ce processus (peut-être en utilisant une méthode similaire à lapply) pour lire des fichiers en tant que RasterLayers et accéder aux valeurs de ces fichiers? Mon projet actuel consiste à lire 6 à 10 fichiers à la fois pour NDVI, Rainfall et d'autres variables environnementales, afin de les combiner et d'effectuer des superpositions pondérées. Il serait utile d'automatiser le processus d'importation des données.
logical(0)
est en fait la valeur de tout objet * raster créé à partir d' un fichier. Quoi qu'il en soit, comme le dit @mdsumner, ne lisez pas directement ces valeurs et ne les définissez certainement pas! (bien que NDVI1@data@values <- getValues(NDVI19east)
cela n'affecte rien , ces valeurs sont ignorées). C'est probablement plus loin dans votre script que vous ne comprenez pas comment utiliser efficacement ces objets. Vous pouvez utiliser getValues, mais même cela est rarement nécessaire. Donnez un exemple simple et autonome de ce que vous essayez d'accomplir.