三次插值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 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容