2012-05-24 3 views
3

요약 : NA 값이 포함 된 래스터 데이터 세트가 있고 NA를 무시하고 그 값을 계산할 수 있습니다. 어떻게해야합니까?NAs를 사용하여 래스터 데이터의 분산을 계산하십시오.

im으로 저장된 readGDAL 함수를 사용하여 R에로드 한 이미지가 있습니다. 이것을 재사용 가능하게 만들려면 이미지에 dput의 결과가 https://gist.github.com/2780792에 있습니다. 이 데이터의 변형을 표시하려고 애 쓰고 고군분투하고 있습니다. 지금까지 시도한 것을 살펴 보겠습니다 :

gstat 패키지를 사용해 보았지만 작동 할 함수 호출을 얻지 못했습니다. 나는 기본적으로 데이터 값 자체 ([email protected]$band1)와 좌표 (coordinates(im))가 필요하다는 것을 모았다. 내가 좋아하는 다양한 명령을 시도했다 :

> variogram(locations=coordinates(im), y = [email protected]$band1) 
Error in is.list(object) : 'object' is missing 

> variogram(coordinates(im), [email protected]$band1) 
Error in variogram.default(coordinates(im), [email protected]$band1) : 
    argument object and locations should be lists 

은 내가 잘못 여기서 뭐하는 거지? 그것이 작동하지 않았다으로

, 나는 내가 사용라는 geoR 패키지, 시도 : 그것은 데이터가에서의 NA를 필요로 할 것입니다 같은

> variog(coords=coordinates(im), [email protected]$band1) 
variog: computing omnidirectional variogram 
Error in FUN(X[[1L]], ...) : NA/NaN/Inf in foreign function call (arg 4) 

오류가 보이는을, 그래서 시도 na.omit을 사용하여 그것들을 제거 할 수 있지만, 거기에는 모든 NAs가 남아 있습니다. 그것은 일종의 래스터 파일로서 이해가됩니다. 에 각각 격자 사각형이 있어야합니다. 어떻게 든 NA를 제거 할 수있는 방법이 있습니까, 아니면 적어도 variog 명령이이를 무시하도록 할 수 있습니까?

도움을 주시면 감사하겠습니다.

답변

4

gstat:variogram에 전달 된 데이터 객체가 공간 객체 (데이터는 SpatialGridDataFrame) 인 경우 데이터에 포함되어 있으므로 위치를 지정할 필요가 없습니다. 우리가 SpatialPointsDataFrame로 그리드 개체를 강제하는 경우, 이것은 NA

im을 제거 할 수 있도록 그러나

는 명확하게 NA 값은 데이터 https://gist.github.com/2780792

library(gstat) 
point_data <- as(im, 'SpatialPointsDataFrame') 
gstat_variogram <- variogram(band1 ~ 1, data = point_data) 

에, 문제를 포함 일으키는 사용 geoR

library(geoR) 
geor_variogram <- variog(coords = coordinates(point_data), 
          data = [email protected]$band1) 

또는 이브 N 더 간단하게 (geoR 같은 클래스 geodata의 객체와 작품과 함수 as.geodataSpatialPointsDataFramegeodata에 객체로 변환하기 위해 포함

geor_variogram <- variog(as.geodata(point_data)) 
관련 문제