calculate_smooth.py 文件源码

python
阅读 44 收藏 0 点赞 0 评论 0

项目:Global_GPP_VPM_NCEP_C3C4 作者: zhangyaonju 项目源码 文件源码
def VIsmooth_ref(x):
    #the size of EVIgood is 92*5760000, the size of the reference data is 46*5760000
    x[x == -9999] = np.nan
    EVIgood = x[0:92]
    reference = np.concatenate([x[115:], x[92:], x[92:115]])
    if np.sum(np.isnan(EVIgood)) == 92:
        return np.concatenate([x[92:], x[23:69], x[92:]])
    ############################
    #here require complicated algorithm
    #first get the difference between these two
    diff = EVIgood - reference
    #fun = cdll.LoadLibrary(os.getcwd() + '/bise.so')
    #outdiff = (c_double * len(EVIgood))()
    #nans, y = nan_helper(diff)
    #diff[nans] = np.interp(y(nans), y(~nans), diff[~nans])
    diff[reference == 0] = 0
    diff = pd.Series(diff)
    reconstructVI = reference+diff.interpolate()
    SGVI = savgol_filter(np.array(reconstructVI[23:69]), window_length=5, polyorder=3)
    SGVI[SGVI < 0] = 0
    return np.concatenate([SGVI, x[23:69], x[92:]])
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号