Mencoba memahami alasannya, ketika saya membaca dalam raster NDVI, slot @ data @ values tidak berisi nilai aktual hingga saya menyetelnya secara manual. Sebagai contoh:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
Ini tidak terjadi dengan raster lain yang telah saya muat dengan metode yang sama, jadi saya bingung. Saya berharap saya bisa lebih spesifik tetapi saya tidak ingat melakukan sesuatu yang berbeda sebelumnya. Cukup mudah untuk mendapatkan nilai secara manual, menggunakan:
NDVI1@data@values <- getValues(NDVI19east)
Tetapi masih sulit untuk melakukannya untuk setiap file. Jadi, pertanyaan dua bagian:
Mengapa ini terjadi? Saya mengerti bahwa ini mungkin ada hubungannya dengan bagaimana file raster disimpan (yaitu apakah itu ada dalam memori atau tidak) tetapi saya tidak dapat benar-benar memahami bagaimana hal itu mengubah metode yang harus saya gunakan untuk mengakses data ...
Apakah ada cara untuk mengotomatisasi proses ini (mungkin menggunakan metode yang mirip dengan lapply) untuk membaca file sebagai RasterLayers dan mengakses nilai untuk file-file itu? Proyek saya saat ini melibatkan membaca 6-10 file sekaligus untuk NDVI, Curah Hujan dan variabel lingkungan lainnya, untuk menggabungkan mereka dan melakukan beberapa overlay tertimbang. Akan sangat membantu untuk mengotomatiskan proses impor data.
logical(0)
sebenarnya nilai untuk setiap Raster * objek diciptakan dari sebuah file. Apa pun caranya, seperti yang dikatakan @mdsumner, jangan langsung membaca nilai-nilai ini, dan tentu saja tidak mengaturnya! (meskipun Anda NDVI1@data@values <- getValues(NDVI19east)
tidak akan memengaruhi apa pun , nilai-nilai ini diabaikan). Mungkin lebih jauh ke bawah skrip Anda di mana Anda tidak mengerti cara menggunakan objek-objek ini secara efektif. Anda dapat menggunakan getValues, tetapi bahkan itu jarang diperlukan. Berikan contoh sederhana dan mandiri tentang apa yang ingin Anda capai.