我在R中具有1km分辨率柵格,並且在整個範圍內具有廣泛的NA值,但是在不規則位置(即具有數據的單元不是連續的並且具有分散的NA值)。我試圖用一個用戶定義的函數來平均圓角(如下所示),以5km分辨率(factor = 5)聚合這個柵格(在{raster}包中使用aggregate()命令)。到目前爲止,我不知道如何獲取aggregate()(或者我的函數,如果這是問題),除非柵格具有連續的5x5單元區域,否則不能提供結果值。換句話說,如果聚合窗口只有5個帶有數據值的單元(20個NA單元)碰到5×5單元區域,我仍然希望它返回這2個單元的平均值。我試着修改函數和aggregate()命令的na.action選項,但沒有運氣。我對功能沒有超級經驗,所以問題可能在那裏。具有NA值的R中的聚合柵格
對不起,沒有工作的例子,但不知道如何在R
這是我的圓形平均函數產生一個類似的例子光柵層:
library(circular)
avg.ang <- function(x,...){
mean.circular(circular(x, units="degrees", rotation="clock", zero=pi/2, modulo="2pi"))
}
而且這裏是我使用的總碼(其中「角」是1公里光柵在整個散射NA值):
library(raster)
angle5k <- aggregate(angle, fact=5, fun=avg.ang, expand=T)
但這返回一個光柵層,僅在聚集的位置wher的值e 5x5窗口的每個單元格都包含一個值。
您需要(至少)在調用'mean.circular()'時設置'na.rm = TRUE'。 –
是的,這樣做的伎倆,與一個更小的if/else修改來處理所有單元格= NA時發生的錯誤。將在下面發佈修改後的功能。謝謝! –