Намагаючись дійти до нижньої частини, чому, коли я читаю в растрі NDVI, слот @ data @ значень не містить фактичних значень, поки я не встановлю їх вручну. Наприклад:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
Це не сталося з іншими растрами, які я завантажував тим самим методом, тому я плутаюся. Я б хотів, щоб я був більш конкретним, але не пам’ятаю, що раніше робив щось інакше. Досить просто отримати значення вручну, використовуючи:
NDVI1@data@values <- getValues(NDVI19east)
Але все ж болісно робити це для кожного файлу. Отже, запитання з двох частин:
Чому це сталося в першу чергу? Я розумію, що це може мати щось спільне з тим, як зберігається растровий файл (тобто, чи є він у пам'яті чи ні), але я не можу реально зрозуміти, як це змінює методи, які я повинен використовувати для доступу до даних ...
Чи є спосіб автоматизувати цей процес (можливо, використовуючи метод, схожий на помилково) для читання файлів як RasterLayers та доступу до значень для цих файлів? Мій поточний проект передбачає читання 6-10 файлів одночасно для NDVI, Rainfall та інших змінних довкілля, щоб поєднати їх та виконати кілька зважених накладок. Було б корисно автоматизувати процес імпорту даних.
logical(0)
в дійсності значення для будь-якого растрового * об'єкт , створений з файлу. Так чи інакше, як говорить @mdsumner, не читайте безпосередньо ці значення і, звичайно, не встановлюйте їх! (хоча ваш NDVI1@data@values <- getValues(NDVI19east)
вплив нічого не вплине , ці значення ігноруються). Це, мабуть, далі ваш сценарій, де ви не розумієте, як ефективно використовувати ці об'єкти. Ви можете використовувати getValues, але навіть це рідко потрібно. Наведіть простий, самодостатній приклад того, чого ви намагаєтесь досягти.