Hurst指数python代码:
import numpy as np
import rasterio
import os
from multiprocessing import Pool
eps = 1e-10
def read_geotiff(file_path):
with rasterio.open(file_path) as src:
data = src.read(1)
meta = src.meta
return data, meta
def calculate_hurst(ndvi):
if np.min(ndvi) > 0:
ndvi_diff = np.diff(ndvi)
mean_diff = np.array([np.mean(ndvi_diff[:i + 1]) for i in range(len(ndvi_diff))])
std_diff = np.array([np.std(ndvi_diff[:i + 1]) * np.sqrt(i / (i + 1)) for i in range(len(ndvi_diff))])
rr = np.array([np.max(np.cumsum(ndvi_diff[:i + 1] - mean_diff[i])) - np.min(np.cumsum(ndvi_diff[:i + 1] - mean_diff[i])) for i in range(len(ndvi_diff))])
rs = std_diff[1:] / (rr[1:] + eps)
if np.any(np.isnan(rs)) or np.any(np.isinf(rs)):
return np.nan
lag = np.arange(2, len(ndvi_diff) + 1)
valid_idx = (rs > 0) & (lag > 0)
if np.sum(valid_idx) < 2:

最低0.47元/天 解锁文章
1844

被折叠的 条评论
为什么被折叠?



