当前位置:首页>python>Python | 皮尔逊相关、偏相关与复相关

Python | 皮尔逊相关、偏相关与复相关

  • 2026-06-21 23:13:27
Python | 皮尔逊相关、偏相关与复相关

以2010—2024年月尺度 NDVI、气温、降水和辐射栅格数据为例,进行皮尔逊相关、偏相关以及复相关分析,并做显著性检验。

一、皮尔逊相关

二、偏相关

三、复相关

四、Python代码

import osimport reimport globimport numpy as npimport rasteriofrom scipy.stats import t, ffrom tqdm import tqdmbase_dir = r"E:\非线性Granger因果"ndvi_dir = os.path.join(base_dir, "NDVI")pre_dir = os.path.join(base_dir, "PRE")tmp_dir = os.path.join(base_dir, "TMP")rad_dir = os.path.join(base_dir, "RAD")out_dir = os.path.join(base_dir, "相关分析结果")pearson_dir = os.path.join(out_dir, "皮尔逊相关")partial_dir = os.path.join(out_dir, "偏相关")multiple_dir = os.path.join(out_dir, "复相关")for d in [pearson_dir, partial_dir, multiple_dir]:    os.makedirs(d, exist_ok=True)start_year = 2010end_year = 2024alpha = 0.05min_valid_n = 30nodata_value = -9999.0def get_ym(path):    name = os.path.basename(path)    m = re.search(r"(\d{4})_(\d{2})", name)    if m is None:        return None    y = int(m.group(1))    mo = int(m.group(2))    if start_year <= y <= end_year and 1 <= mo <= 12:        return f"{y:04d}_{mo:02d}"    return Nonedef collect_files(folder):    files = glob.glob(os.path.join(folder, "*.tif"))    d = {}    for fp in files:        ym = get_ym(fp)        if ym is not None:            d[ym] = fp    return dndvi_dict = collect_files(ndvi_dir)pre_dict = collect_files(pre_dir)tmp_dict = collect_files(tmp_dir)rad_dict = collect_files(rad_dir)common_ym = sorted(set(ndvi_dict) & set(pre_dict) & set(tmp_dict) & set(rad_dict))if len(common_ym) == 0:    raise RuntimeError("没有找到四类数据共同存在的年月文件")print(f"共同年月数量:{len(common_ym)}")print(f"起始年月:{common_ym[0]}")print(f"结束年月:{common_ym[-1]}")ndvi_files = [ndvi_dict[x] for x in common_ym]pre_files = [pre_dict[x] for x in common_ym]tmp_files = [tmp_dict[x] for x in common_ym]rad_files = [rad_dict[x] for x in common_ym]def read_stack(files):    arrs = []    profile = None    src_nodata = None    for fp in tqdm(files):        with rasterio.open(fp) as src:            a = src.read(1).astype(np.float32)            if profile is None:                profile = src.profile.copy()                src_nodata = src.nodata            if src.nodata is not None:                a[a == src.nodata] = np.nan            a[~np.isfinite(a)] = np.nan            arrs.append(a)    return np.stack(arrs, axis=0), profile, src_nodataprint("读取NDVI")ndvi, profile, src_nodata = read_stack(ndvi_files)print("读取降水")pre, _, _ = read_stack(pre_files)print("读取气温")tmp, _, _ = read_stack(tmp_files)print("读取辐射")rad, _, _ = read_stack(rad_files)n_time, rows, cols = ndvi.shaper_ndvi_pre = np.full((rows, cols), np.nan, dtype=np.float32)p_ndvi_pre = np.full((rows, cols), np.nan, dtype=np.float32)sig_ndvi_pre = np.zeros((rows, cols), dtype=np.uint8)r_ndvi_tmp = np.full((rows, cols), np.nan, dtype=np.float32)p_ndvi_tmp = np.full((rows, cols), np.nan, dtype=np.float32)sig_ndvi_tmp = np.zeros((rows, cols), dtype=np.uint8)r_ndvi_rad = np.full((rows, cols), np.nan, dtype=np.float32)p_ndvi_rad = np.full((rows, cols), np.nan, dtype=np.float32)sig_ndvi_rad = np.zeros((rows, cols), dtype=np.uint8)pr_ndvi_pre = np.full((rows, cols), np.nan, dtype=np.float32)pp_ndvi_pre = np.full((rows, cols), np.nan, dtype=np.float32)psig_ndvi_pre = np.zeros((rows, cols), dtype=np.uint8)pr_ndvi_tmp = np.full((rows, cols), np.nan, dtype=np.float32)pp_ndvi_tmp = np.full((rows, cols), np.nan, dtype=np.float32)psig_ndvi_tmp = np.zeros((rows, cols), dtype=np.uint8)pr_ndvi_rad = np.full((rows, cols), np.nan, dtype=np.float32)pp_ndvi_rad = np.full((rows, cols), np.nan, dtype=np.float32)psig_ndvi_rad = np.zeros((rows, cols), dtype=np.uint8)multiple_R = np.full((rows, cols), np.nan, dtype=np.float32)multiple_R2 = np.full((rows, cols), np.nan, dtype=np.float32)multiple_p = np.full((rows, cols), np.nan, dtype=np.float32)multiple_sig = np.zeros((rows, cols), dtype=np.uint8)def pearson_pvalue(r, n):    if n <= 2 or not np.isfinite(r) or abs(r) >= 1:        if np.isfinite(r) and abs(r) == 1 and n > 2:            return 0.0        return np.nan    tv = r * np.sqrt((n - 2) / max(1e-121 - r * r))    return 2 * t.sf(abs(tv), n - 2)def partial_pvalue(r, n, k):    df = n - k - 2    if df <= 0 or not np.isfinite(r) or abs(r) >= 1:        if np.isfinite(r) and abs(r) == 1 and df > 0:            return 0.0        return np.nan    tv = r * np.sqrt(df / max(1e-121 - r * r))    return 2 * t.sf(abs(tv), df)def safe_corr(a, b):    if np.std(a) == 0 or np.std(b) == 0:        return np.nan    return np.corrcoef(a, b)[01]def save_float(arr, path):    p = profile.copy()    p.update(dtype=rasterio.float32, count=1, nodata=nodata_value, compress="lzw")    out = arr.astype(np.float32)    out[~np.isfinite(out)] = nodata_value    with rasterio.open(path, "w", **p) as dst:        dst.write(out, 1)def save_uint8(arr, path):    p = profile.copy()    p.update(dtype=rasterio.uint8, count=1, nodata=255, compress="lzw")    out = arr.astype(np.uint8)    with rasterio.open(path, "w", **p) as dst:        dst.write(out, 1)print("开始逐像元计算")for i in tqdm(range(rows)):    for j in range(cols):        y0 = ndvi[:, i, j]        x10 = pre[:, i, j]        x20 = tmp[:, i, j]        x30 = rad[:, i, j]        mask = np.isfinite(y0) & np.isfinite(x10) & np.isfinite(x20) & np.isfinite(x30)        n = int(mask.sum())        if n < min_valid_n:            continue        y = y0[mask]        x1 = x10[mask]        x2 = x20[mask]        x3 = x30[mask]        if np.std(y) == 0 or np.std(x1) == 0 or np.std(x2) == 0 or np.std(x3) == 0:            continue        r01 = safe_corr(y, x1)        r02 = safe_corr(y, x2)        r03 = safe_corr(y, x3)        r12 = safe_corr(x1, x2)        r13 = safe_corr(x1, x3)        r23 = safe_corr(x2, x3)        r_ndvi_pre[i, j] = r01        r_ndvi_tmp[i, j] = r02        r_ndvi_rad[i, j] = r03        p01 = pearson_pvalue(r01, n)        p02 = pearson_pvalue(r02, n)        p03 = pearson_pvalue(r03, n)        p_ndvi_pre[i, j] = p01        p_ndvi_tmp[i, j] = p02        p_ndvi_rad[i, j] = p03        if np.isfinite(p01) and p01 < alpha:            sig_ndvi_pre[i, j] = 1        if np.isfinite(p02) and p02 < alpha:            sig_ndvi_tmp[i, j] = 1        if np.isfinite(p03) and p03 < alpha:            sig_ndvi_rad[i, j] = 1        corr = np.array([            [1.0, r01, r02, r03],            [r01, 1.0, r12, r13],            [r02, r12, 1.0, r23],            [r03, r13, r23, 1.0]        ], dtype=np.float64)        try:            inv_corr = np.linalg.inv(corr)            pr01 = -inv_corr[01] / np.sqrt(inv_corr[00] * inv_corr[11])            pr02 = -inv_corr[02] / np.sqrt(inv_corr[00] * inv_corr[22])            pr03 = -inv_corr[03] / np.sqrt(inv_corr[00] * inv_corr[33])            pr_ndvi_pre[i, j] = pr01            pr_ndvi_tmp[i, j] = pr02            pr_ndvi_rad[i, j] = pr03            pp01 = partial_pvalue(pr01, n, 2)            pp02 = partial_pvalue(pr02, n, 2)            pp03 = partial_pvalue(pr03, n, 2)            pp_ndvi_pre[i, j] = pp01            pp_ndvi_tmp[i, j] = pp02            pp_ndvi_rad[i, j] = pp03            if np.isfinite(pp01) and pp01 < alpha:                psig_ndvi_pre[i, j] = 1            if np.isfinite(pp02) and pp02 < alpha:                psig_ndvi_tmp[i, j] = 1            if np.isfinite(pp03) and pp03 < alpha:                psig_ndvi_rad[i, j] = 1        except Exception:            pass        try:            r_yx = np.array([r01, r02, r03], dtype=np.float64)            r_xx = np.array([                [1.0, r12, r13],                [r12, 1.0, r23],                [r13, r23, 1.0]            ], dtype=np.float64)            r2 = float(r_yx @ np.linalg.inv(r_xx) @ r_yx.T)            r2 = min(max(r2, 0.0), 1.0)            rv = np.sqrt(r2)            multiple_R[i, j] = rv            multiple_R2[i, j] = r2            k = 3            df1 = k            df2 = n - k - 1            if df2 > 0 and r2 < 1:                fv = (r2 / k) / ((1 - r2) / df2)                pv = 1 - f.cdf(fv, df1, df2)            elif df2 > 0 and r2 == 1:                pv = 0.0            else:                pv = np.nan            multiple_p[i, j] = pv            if np.isfinite(pv) and pv < alpha:                multiple_sig[i, j] = 1        except Exception:            passprint("保存皮尔逊相关结果")save_float(r_ndvi_pre, os.path.join(pearson_dir, "NDVI_降水_皮尔逊相关系数.tif"))save_float(p_ndvi_pre, os.path.join(pearson_dir, "NDVI_降水_皮尔逊相关P值.tif"))save_uint8(sig_ndvi_pre, os.path.join(pearson_dir, "NDVI_降水_皮尔逊显著性.tif"))save_float(r_ndvi_tmp, os.path.join(pearson_dir, "NDVI_气温_皮尔逊相关系数.tif"))save_float(p_ndvi_tmp, os.path.join(pearson_dir, "NDVI_气温_皮尔逊相关P值.tif"))save_uint8(sig_ndvi_tmp, os.path.join(pearson_dir, "NDVI_气温_皮尔逊显著性.tif"))save_float(r_ndvi_rad, os.path.join(pearson_dir, "NDVI_辐射_皮尔逊相关系数.tif"))save_float(p_ndvi_rad, os.path.join(pearson_dir, "NDVI_辐射_皮尔逊相关P值.tif"))save_uint8(sig_ndvi_rad, os.path.join(pearson_dir, "NDVI_辐射_皮尔逊显著性.tif"))print("保存偏相关结果")save_float(pr_ndvi_pre, os.path.join(partial_dir, "NDVI_降水_控制气温辐射_偏相关系数.tif"))save_float(pp_ndvi_pre, os.path.join(partial_dir, "NDVI_降水_控制气温辐射_偏相关P值.tif"))save_uint8(psig_ndvi_pre, os.path.join(partial_dir, "NDVI_降水_控制气温辐射_偏相关显著性.tif"))save_float(pr_ndvi_tmp, os.path.join(partial_dir, "NDVI_气温_控制降水辐射_偏相关系数.tif"))save_float(pp_ndvi_tmp, os.path.join(partial_dir, "NDVI_气温_控制降水辐射_偏相关P值.tif"))save_uint8(psig_ndvi_tmp, os.path.join(partial_dir, "NDVI_气温_控制降水辐射_偏相关显著性.tif"))save_float(pr_ndvi_rad, os.path.join(partial_dir, "NDVI_辐射_控制降水气温_偏相关系数.tif"))save_float(pp_ndvi_rad, os.path.join(partial_dir, "NDVI_辐射_控制降水气温_偏相关P值.tif"))save_uint8(psig_ndvi_rad, os.path.join(partial_dir, "NDVI_辐射_控制降水气温_偏相关显著性.tif"))print("保存复相关结果")save_float(multiple_R, os.path.join(multiple_dir, "NDVI_降水气温辐射_复相关系数R.tif"))save_float(multiple_R2, os.path.join(multiple_dir, "NDVI_降水气温辐射_决定系数R2.tif"))save_float(multiple_p, os.path.join(multiple_dir, "NDVI_降水气温辐射_复相关P值.tif"))save_uint8(multiple_sig, os.path.join(multiple_dir, "NDVI_降水气温辐射_复相关显著性.tif"))print("全部完成")print(f"结果输出路径:{out_dir}")

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 08:13:13 HTTP/2.0 GET : https://f.mffb.com.cn/a/491754.html
  2. 运行时间 : 0.310759s [ 吞吐率:3.22req/s ] 内存消耗:4,919.24kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ed642227ddd8bc0bb05094906eb9efb2
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000996s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001439s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000666s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000552s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001166s ]
  6. SELECT * FROM `set` [ RunTime:0.000537s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001189s ]
  8. SELECT * FROM `article` WHERE `id` = 491754 LIMIT 1 [ RunTime:0.001485s ]
  9. UPDATE `article` SET `lasttime` = 1783123993 WHERE `id` = 491754 [ RunTime:0.036842s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000726s ]
  11. SELECT * FROM `article` WHERE `id` < 491754 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.008635s ]
  12. SELECT * FROM `article` WHERE `id` > 491754 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.010968s ]
  13. SELECT * FROM `article` WHERE `id` < 491754 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.027139s ]
  14. SELECT * FROM `article` WHERE `id` < 491754 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.067083s ]
  15. SELECT * FROM `article` WHERE `id` < 491754 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009612s ]
0.314440s