← 返回案例详情

RESOURCE PREVIEW

core_model.py

core_model.py / src/core_model.py

DOCUMENT CONTENT

文档内容

"""Case 05 core algorithms: MODIS LST anomaly diagnostics."""
from __future__ import annotations
import numpy as np

def climatology_anomaly(values, period=46):
    x=np.asarray(values,float)
    if x.ndim!=2: raise ValueError("values must be time x cell")
    phase=np.arange(x.shape[0])%period; mean=np.zeros((period,x.shape[1])); sd=np.zeros_like(mean)
    for k in range(period):
        v=x[phase==k]; mean[k]=np.nanmean(v,axis=0); sd[k]=np.nanstd(v,axis=0,ddof=1)
    anom=np.array([(x[i]-mean[phase[i]])/(sd[phase[i]]+1e-12) for i in range(x.shape[0])])
    return anom,mean,sd

def hotspot_frequency(z, threshold=1.5): return np.nanmean(np.asarray(z)>=threshold,axis=0)