전역에 걸쳐 NA 값이 광범위하지만 불규칙한 위치 (즉, 데이터가있는 셀이 연속적이지 않고 전체에 NA 값이 분산되어 있음)의 R에서 1km 해상도 래스터가 있습니다. 원형 각도를 평균화하기 위해 사용자 정의 함수 (아래에 포함)를 사용하여 5km 분해능 (factor = 5)에서이 래스터를 집계하려고합니다 ({raster} 패키지에서 aggregate() 명령 사용). 현재, 래스터에 연속 5x5 셀 영역이 없으면 결과 값을 제공하기 위해 aggregate() (또는 문제가 있다면 내 함수)를 얻는 방법을 파악할 수 없습니다. 즉 집계 윈도우가 5x5 셀 영역에 데이터 값 (20 개의 NA 셀)이있는 5 개의 셀만있는 경우이 셀은 평균값을 반환하기를 원합니다. 행운을 빌어 함수와 집계() 명령의 na.action 옵션을 수정 해 보았습니다. 나는 경험이 많은 슈퍼 유저가 아니기 때문에 문제가있을 수있다.NA 값이있는 R의 집계 래스터
없는 작업, 예를 들어 미안하지만 여기 내 원형 평균 함수의
R.
내에서 유사한 예를 래스터 레이어를 생성하는 방법을 잘 :library(circular)
avg.ang <- function(x,...){
mean.circular(circular(x, units="degrees", rotation="clock", zero=pi/2, modulo="2pi"))
}
그리고 여기 내가 사용 집계 코드입니다 ('각도'에 걸쳐 흩어져 NA 값을 갖는 래스터 1km 임) :
library(raster)
angle5k <- aggregate(angle, fact=5, fun=avg.ang, expand=T)
하지만 이것은 단지 응집 wher 위치에서의 값으로 래스터 층을 반환 e 5x5 창의 모든 셀에는 값이 들어 있습니다.
'mean.circular()'호출에서'na.rm = TRUE'를 설정해야합니다. –
그래, 모든 트릭을했는데, 더 작은 if/else 수정으로 모든 셀이 NA 일 때 발생하는 오류를 처리했습니다. 아래 수정 된 기능을 게시합니다. 감사! –