2017-09-24 3 views
0

비 음수 값 (각 픽셀의 높이 값)이있는 래스터 매트릭스가 있고 대칭을 사용하여 5x5 이동 창으로 일부 맞춤 높이 메트릭을 계산하려고합니다 행렬의 모서리 주변을 채 웁니다.대칭적인 padValue에 래스터의 초점 함수를 통합하는 방법

QGIS에서 pktools (공간 필터) (평균, 표준 편차, 최대)를 사용하여 몇 가지 기본 계산을 수행 했으므로이를 수행 할 수있었습니다 (0을 사용하여 패딩, 복제 또는 대칭).

사용자 정의 함수 (즉, 높이, 비대칭 및 첨도)를 사용하여 다른 측정 항목을 계산하기 위해 pktools를 사용할 수 없습니다. rasterfocal() 함수를 사용하려고 시도했지만 padValue는 숫자 여야합니다. 이것 주위에 방법이있어서 대칭 테두리를 가질 수 있습니까? 당신은 padValue = NA을 시도 할 수

> Warning message: In .local(x, ...) : NAs introduced by coercion 

당신에게

답변

1

감사합니다

> f.CoH <- function(x) {sd(x)/mean(x)} 
> 
> CoH <- focal(raster, w=matrix(1,nrow=5,ncol=5), fun=f.CoH, pad=TRUE, 
> padValue="symmetric") 

그러나 다음과 같은 오류가 발생합니다 : 나는 다음을 시도했다.

f.CoH <- function(x) {sd(x, na.rm = TRUE)/mean(x, na.rm = TRUE)} 

을 표준 편차와 평균과 패딩에 의해 얻을 수 있기 때문에,이 다소 다른 결과를 WRT "대칭 패딩을"줄 것이라는 점을 그러나 생각해

는 또한 NAS가 처리하는 기능을 수정해야 할 것 NAs와 복제 값은 다를 것입니다.

HTH

+0

대신 값을 복제하는 방법이 있습니까? 나는 NAs 나 0보다 이것을 선호합니다. – Danica

+1

프로그래밍을 원하지 않는 한, 내가 아는 것은 아닙니다. 그러나 NAs로 채우는 것이 복제보다 낫습니다. 적어도 파생 통계는 실제 데이터를 기반으로하며 데이터 복제는 가짜 데이터를 도입하고 실제 것처럼 취급합니다. – lbusett