Cercando di arrivare alla fine del perché, quando leggo in un raster di NDVI, lo slot @ data @ valori non contiene i valori effettivi fino a quando non li imposto manualmente. Per esempio:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
Questo non è accaduto con altri raster che avevo caricato con lo stesso metodo, quindi sono confuso. Vorrei poter essere più specifico, ma non ricordo di aver fatto diversamente prima. È abbastanza facile ottenere i valori manualmente, usando:
NDVI1@data@values <- getValues(NDVI19east)
Ma è ancora difficile doverlo fare per ogni file. Quindi, domanda in due parti:
Perché questo è accaduto in primo luogo? Capisco che potrebbe avere qualcosa a che fare con il modo in cui viene archiviato il file raster (ovvero se è in memoria o meno) ma non riesco davvero a capire come ciò cambi i metodi che dovrei usare per accedere ai dati ...
C'è un modo per automatizzare questo processo (forse usando un metodo simile a lapply) per leggere i file come RasterLayer e accedere ai valori per quei file? Il mio progetto attuale prevede la lettura di 6-10 file alla volta per NDVI, Rainfall e altre variabili ambientali, al fine di combinarli ed eseguire sovrapposizioni ponderate. Sarebbe utile automatizzare il processo di importazione dei dati.
logical(0)
è infatti il valore di qualsiasi * oggetto raster creato da un file. Ad ogni modo, come dice @mdsumner, non leggi direttamente questi valori e certamente non li settano! (anche se il tuo NDVI1@data@values <- getValues(NDVI19east)
non influirà su nulla , questi valori vengono ignorati). Probabilmente è più in basso nello script in cui non si capisce come utilizzare in modo efficace questi oggetti. Puoi usare getValues, ma anche raramente è necessario. Fornisci un esempio semplice e autonomo di ciò che stai cercando di ottenere.