왜 NDVI의 래스터를 읽을 때 @ data @ values 슬롯에 수동으로 설정할 때까지 실제 값이 포함되어 있지 않은 이유를 알아 내려고합니다. 예를 들면 다음과 같습니다.
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
이것은 같은 방법으로로드 한 다른 래스터에서는 발생하지 않았으므로 혼란 스럽습니다. 좀 더 구체적으로 할 수 있기를 바라지 만 이전에 다르게 행동 한 것을 기억하지 못합니다. 다음을 사용하여 수동으로 값을 얻는 것이 쉽습니다.
NDVI1@data@values <- getValues(NDVI19east)
그러나 모든 파일에 대해 그렇게 해야하는 것은 여전히 고통 스럽습니다. 그래서 두 부분으로 된 질문 :
왜 이런 일이 처음에 일어 났습니까? 래스터 파일이 저장되는 방법 (예 : 메모리에 있는지 여부)과 관련이있을 수 있지만 데이터 액세스에 사용해야하는 방법이 어떻게 변경되는지 이해할 수는 없습니다 ...
RasterLayers로 파일을 읽고 해당 파일의 값에 액세스하기 위해이 프로세스를 자동화 할 수있는 방법이 있습니까 (아마도 lapply와 유사한 방법을 사용)? 현재 진행중인 프로젝트는 NDVI, Rainfall 및 기타 환경 변수에 대해 한 번에 6-10 개의 파일을 읽고 이들을 결합하고 가중치 중첩을 수행하는 것입니다. 데이터 가져 오기 프로세스를 자동화하는 것이 도움이됩니다.
logical(0)
사실에 대한 값입니다 어떤 파일에서 생성 된 래스터 * 객체입니다. 어느 쪽이든 @mdsumner가 말했듯 이이 값을 직접 읽지 말고 확실히 설정하지 마십시오! ( 아무것도NDVI1@data@values <- getValues(NDVI19east)
영향을 미치지 않지만 이러한 값은 무시됩니다). 이러한 객체를 효과적으로 사용하는 방법을 이해하지 못하는 경우 스크립트 아래에있을 것입니다. getValues를 사용할 수 있지만 거의 필요하지 않습니다. 달성하고자하는 것에 대한 단순하고 독립적 인 예를 제공하십시오.