저는 R 및 프로그래밍의 초보자입니다. 그래서 질문은 간단하다고 생각합니다. 그러나 대답을 찾거나 솔리 만 해결할 수는 없습니다.초점 통계 (초점, "래스터"패키지, R)에 대한 자체 기능이 올바르지 않습니다.
래스터 (100 * 100 셀)가 있습니다. 움직이는 창에서 2D DFT로 고조파 크기의 중앙값을 구해야합니다 (예 : 창 크기 = 21). 래스터 패키지에서 초점 기능을 찾았습니다. 이 함수에서는 값의 치리아 (창에서 래스터 값)를 취하여 전체 창에 대한 개별 값을 반환하는 자체 함수를 코딩 할 수 있습니다.
r <- raster(matrix(rnorm(10000), nrow = 100, ncol = 100)) # creation of raster
win <- 21 # setting the window size
spectr <- function(d) {
return(median(abs(spec.fft(x = 1:win, y = 1:win, z = (d - mean(d)))$A)))
} # i think "d" - the matrix of raster values in the window border
focal(x = r, w = matrix(1, win, win), fun = spectr())
출력 : spec.fft 내부 오류 (X = 1 : 승, Z = (d - 평균 (d)) : 상금, Y는 1 = 없음) 없음으로 인수 "D"누락 default
나는 창에서 데이터가 자동으로 함수에서 전송되는 것으로 추정했다. 내 코드의 실수는 무엇입니까? 고맙습니다!
업데이트. 테스트를 위해 라이브러리 "스펙트럼"을로드 할 필요가 있습니다 :
install.packages("spectral")
library(spectral)
에서 함수를 사용하자! 정말 간단했습니다. 그러나 나는 함수 "spectr"의 실수라고 생각했다. 귀하의 코드 작동) –
현재 버전보기. 내 대답을 편집했습니다. – loki