2013-10-29 2 views
2

R에 래스터 패키지가있는 래스터를 만들고 있는데 래스터의 좌표 참조 시스템 (CRS)을 명시 적으로 지정하여 writeRaster()를 사용하여 객체를 저장할 때 래스터에 코드가 지정되도록하고 싶습니다. 파일. raster() 함수에 대한 도움말 파일에 표시된대로 CRS를 지정하려고 시도했지만 아래의 최소 작업 예제에서와 같이 사용되지 않은 인수 오류가 반환됩니다.R의 래스터에 CRS를 할당 할 때 오류가 발생하는 이유는 무엇입니까?

왜 이것이 실패하고 래스터에 대해 CRS를 설정할 수 있습니까?

library(raster) 
set.seed(2013) 
df <- data.frame(x = rep(0:1, each=2), 
        y = rep(0:1, 2), 
        l = rnorm(4)) 

spg <- df 
coordinates(spg) <- ~ x + y 
gridded(spg) <- TRUE 

rasterDF <- raster(spg, crs="+proj=longlat +datum=WGS84") 
# Error in .local(x, ...) : 
# unused argument (crs = "+proj=longlat +datum=WGS84") 
+0

@ 팀의 riffe, 라이브러리 호출의 제 누락을 잡기위한 감사합니다. – Gregory

+2

* SpatialPointsDataFrame에서 래스터를 만들려고 할 때'crs' 인수가 없으므로 * reason * 작동하지 않습니다. '? raster'에 대한 도움말 페이지의 사용 목록을 보면 변환중인 객체의 각 유형에 대해 어떤 인수가 사용 가능한지 알 수 있습니다. 대신에 @ialm이 투사 정보없이 래스터를 제안하거나 만들거나'투영법 (rasterDF) <- "+ proj = longlat + datum = WGS84"'를 통해 추가하거나'투영법 (rasterDF) <- CRS ("+ proj = longlat + datum = WGS84")'로 설정하면 CRS 기능이 유효한 CRS 문자열을 확인할 수 있습니다. 휴! –

답변

3

래스터 객체를 만들기 전에 proj4string(spg) <- "your CRS"을 사용하여 공간 데이터 프레임에 투영을 설정할 수 있습니다. 투영 정보는 새로 생성 된 래스터 레이어로 이어져야합니다.

이 나를 위해 작동합니다

library(raster) 
set.seed(2013) 
df <- data.frame(x = rep(0:1, each=2), 
        y = rep(0:1, 2), 
        l = rnorm(4)) 

spg <- df 
coordinates(spg) <- ~ x + y 
gridded(spg) <- TRUE 

# Add the projection information to spg 
proj4string(spg) <- "+proj=longlat +datum=WGS84" 

rasterDF <- raster(spg) 

# Check that it worked 
rasterDF 
# class  : RasterLayer 
# dimensions : 2, 2, 4 (nrow, ncol, ncell) 
# resolution : 1, 1 (x, y) 
# extent  : -0.5, 1.5, -0.5, 1.5 (xmin, xmax, ymin, ymax) 
# coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
# data source : in memory 
# names  : l 
# values  : -0.6674423, 1.360611 (min, max)