三次插值dtrend

undef("poly3_yao")
; Detrend
; x: array
function poly3_yao(yao:numeric)
local poly3, sizes, Nyear, Nlat, Nlon, x1, x2, x3, x0, x, iLat, iLon, b
begin
    sizes = dimsizes(yao)
    Nyear = sizes(0)
    Nlat = sizes(1)
    Nlon = sizes(2)
    
    x1 = fspan(0, Nyear-1, Nyear)
    x2 = x1^2.0
    x3 = x1^3.0
    x0 = x1
    x0(:) = 1.0
    x = (/x0, x1, x2, x3/)

    poly3 = yao
    do iLat = 0,Nlat-1
        do iLon = 0,Nlon-1
            b = reg_multlin(yao(:,iLat,iLon), x, True)
            poly3(:,iLat,iLon)  = b(0)*x0(:)+b(1)*x1(:)+b(2)*x2(:)+b(3)*x3(:)
        end do 
    end do
    poly3 = where(ismissing(yao), poly3@_FillValue, poly3)
    return(poly3)
end 
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容