Tentando entender o porquê, quando leio em uma varredura de NDVI, o slot @ data @ values não contém os valores reais até que eu os defina manualmente. Por exemplo:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
Isso não aconteceu com outros rasters carregados pelo mesmo método, por isso estou confuso. Gostaria de poder ser mais específico, mas não me lembro de ter feito algo diferente antes. É fácil obter os valores manualmente, usando:
NDVI1@data@values <- getValues(NDVI19east)
Mas ainda é difícil ter que fazer isso para cada arquivo. Então, pergunta em duas partes:
Por que isso aconteceu em primeiro lugar? Entendo que poderia ter algo a ver com o armazenamento do arquivo raster (ou seja, na memória ou não), mas não consigo entender como isso altera os métodos que devo usar para acessar os dados ...
Existe uma maneira de automatizar esse processo (talvez usando um método semelhante ao lapply) para ler arquivos como RasterLayers e acessar valores para esses arquivos? Meu projeto atual envolve a leitura de 6 a 10 arquivos por vez para NDVI, Rainfall e outras variáveis ambientais, a fim de combiná-los e executar algumas sobreposições ponderadas. Seria útil automatizar o processo de importação dos dados.
logical(0)
fato, é o valor para qualquer objeto Raster * criado a partir de um arquivo. De qualquer forma, como diz o @mdsumner, não leia esses valores diretamente e certamente não os defina! (embora você NDVI1@data@values <- getValues(NDVI19east)
não afete nada , esses valores são ignorados). Provavelmente é mais abaixo do seu script que você não entende como usar efetivamente esses objetos. Você pode usar getValues, mas mesmo isso raramente é necessário. Forneça um exemplo simples e independente do que você está tentando alcançar.