R에서 여러 개의 누적 래스터 이미지를 가져 오시겠습니까?


9

표시된 폴더에서 여러 개의 모자이크 래스터 (각 모자이크는 7 개의 레이어로 구성됨)를 내 R 로 가져오고 싶습니다. 그런 다음 단일 멀티 레이스 터 래스터로 액세스하십시오.

여기에 이미지 설명을 입력하십시오

그래서 나는했다 :

# read all mosaics named "mos....img" in R    
raster_data<-list.files(path=getwd(), pattern="mos.*.img$") 
# read files as rasters
s <- stack(raster_data)
# check my imported rasters p.ex. raster n°8 from "s" raster stack
s[[8]]         

내 래스터 s [[8]]에는 1 개의 레이어 만 포함되어 있으므로 전체 모자이크를 가져 오지 않았습니다!

nlayers(s[[8]])
[[1]]

각 모자이크를 개별적으로 읽으면 작동합니다.

# read 1 mosaic (composed by 7 bands)
mosaic1<-brick("mosaic1.img")
# extract one band
band4<-subset(mosaic1, 4)

왜 "스택"도구가 전체 모자이크를 가져 오지 않고 모자이크의 한 밴드 만 가져오고 어떻게 배열 할 수 있습니까?

답변:


11

를보십시오 nlayers(s). 반환 된 레이어 수는 28과 같습니다. 적어도 위의 예에서는 각각 7 개의 레이어를 포함하는 4 개의 다층 객체가 있습니다. stack여러 멀티 레이어 파일에 적용하면 하나의 거대한 'RasterStack'객체가 만들어집니다. 즉, 모든 단일 멀티 레이어 객체가 서로 추가됩니다.

각 파일에 대해 별도의 스택을 원한다면 다음을 사용하는 것이 좋습니다.

s <- lapply(raster_data, stack)

각각 하나의 거대한 스택이 아닌 7 개의 레이어를 포함하는 'RasterStack'객체의 목록이 생성됩니다. 그런 다음 특정 레이어 (예 : 3 번째 'RasterStack'객체의 2 번째 레이어)에 액세스 할 수 있습니다.

s[[3]][[2]]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.