当前位置:首页>python>Python | Skyborn | 涌现约束法

Python | Skyborn | 涌现约束法

  • 2026-01-11 14:22:59
Python | Skyborn | 涌现约束法

涌现约束法(Emergent Constraints)

用观测数据“校准”气候模型不确定性

在气候科学中,我们经常面对这样一道难题:不同气候模式(CMIP 家族)对未来变暖幅度给出截然不同的预测。如何在不更改模式物理的前提下,利用现有观测信息提升未来预测的可信度?

答案之一,就是——涌现约束法(Emergent Constraints)

它的核心思想非常朴素:

  • 先在多模式集合中找到“可观测变量 X”和“关心的未来量 Y(如 ECS)”之间的跨模式统计关系;
  • 再用真实世界对 X 的观测值去约束 Y 的概率分布,从而降低预测不确定性。

典型应用:用云反馈相关的可观测量去约束平衡气候敏感度(ECS)

核心原理:从跨模式关系到贝叶斯后验

涌现约束法示意图

设:

  • X = 约束变量(可观测,如云反馈指标)
  • Y = 目标变量(未来或难以直接观测,如 ECS)
  • 在模式集合上,X 与 Y 呈线性关系:Y = a·X + b + ε

步骤如下:

  1. 在模式集合内做回归,得到 a、b,以及预测残差不确定度 σ_pred;
  2. 根据观测获得 X 的观测概率密度函数 PDF_obs(X)(通常假设高斯:N(μ_obs, σ_obs));
  3. 利用似然与观测先验对 Y 做积分,得到后验 PDF_post(Y):
    • 直观理解:对每个可能的 X_obs,用回归关系映射到 Y,并按 PDF_obs(X) 加权求和;
  4. 从 PDF_post(Y) 中得到后验均值与标准差,实现对 Y 的不确定性收缩。

这正是 Skyborn 在 skyborn.calc.emergent_constraints 中实现的流程:

  • gaussian_pdf():高斯 PDF;
  • emergent_constraint_prior():先验(由回归和预测误差给出);
  • emergent_constraint_posterior():融合观测得到后验 PDF 与统计量。

为什么它有效?

  • 多模式集合中,若某一可观测过程(如低云反馈敏感度)与目标变量(ECS)存在稳健的跨模式关系,那么对该过程的观测就能“筛选”更可信的模式行为;
  • 这不是简单“挑模型”,而是对概率分布进行贝叶斯更新:结果通常表现为标准差显著降低(常见 20–50%)。

方法适用与注意事项

  • 相关性要求:跨模式关系应有足够统计显著性与物理依据(而非偶然相关);
  • 观测不确定度:需要合理评估 X 的观测误差(σ_obs),避免过度自信;
  • 外推风险:观测 X 若落在模式样本之外,需谨慎解读(可能存在外推误差);
  • 物理一致性:优先选择受控、可解释、与目标物理过程紧密相连的约束变量。

实践指南:从基础到应用

安装与导入

# 安装 Skybornpip install skyborn# 或使用国内镜像加速pip install -i https://pypi.tuna.tsinghua.edu.cn/simple skyborn
# 导入核心函数import numpy as npimport xarray as xrfrom skyborn.calc import (    gaussian_pdf,                    # 高斯概率密度函数    emergent_constraint_posterior,   # 后验分布计算    emergent_constraint_prior,       # 先验分布计算    pearson_correlation              # 相关系数计算)

基础应用:使用 Skyborn 函数

1. 计算高斯概率密度函数

import numpy as npfrom skyborn.calc import gaussian_pdf# 定义参数mu = 3.0# 均值sigma = 0.5# 标准差x = np.linspace(1.05.0100)  # 评估点# 计算 PDFpdf = gaussian_pdf(mu, sigma, x)

2. 计算跨模式相关性

from skyborn.calc import pearson_correlation# 模拟数据:约束变量 X 与目标变量 Yconstraint_var = np.array([0.30.50.70.91.1])  # 例如:云反馈参数ecs_values = np.array([2.53.03.54.04.5])      # 平衡气候敏感度# 计算相关系数r = pearson_correlation(constraint_var, ecs_values)

完整案例:ECS 涌现约束分析

以下是一个完整的涌现约束分析流程:

步骤 1:准备模式集合数据

import numpy as npimport xarray as xr# 模拟 30 个气候模式的数据np.random.seed(42)n_models = 30# 生成 ECS 值(基于 CMIP6 真实范围)ecs_values = np.random.normal(3.20.9, n_models)ecs_values = np.clip(ecs_values, 1.55.5)ecs_values[0:3] = [2.14.85.2]  # 添加极端值# 生成约束变量(例如:热带低云反馈指标)# 与 ECS 有物理关联,但包含噪声constraint_strength = 0.7noise_level = np.sqrt(1 - constraint_strength**2)ecs_normalized = (ecs_values - ecs_values.mean()) / ecs_values.std()constraint_var = constraint_strength * ecs_normalized + noise_level * np.random.randn(n_models)constraint_var = constraint_var * 0.3 + 0.5# 缩放到合理物理范围

步骤 2:建立涌现关系

from skyborn.calc import pearson_correlation# 计算跨模式相关性correlation = pearson_correlation(constraint_var, ecs_values)# 线性回归slope, intercept = np.polyfit(constraint_var, ecs_values, 1)

步骤 3:引入观测约束

from skyborn.calc import gaussian_pdf# 观测数据(例如:卫星观测的云反馈参数)obs_mean = constraint_var.mean() + 0.05# 观测均值obs_std = 0.08# 观测不确定性# 设置计算网格constraint_grid = np.linspace(constraint_var.min() - 0.3                              constraint_var.max() + 0.380)ecs_grid = np.linspace(1.55.580)# 计算观测的概率密度函数obs_pdf = gaussian_pdf(obs_mean, obs_std, constraint_grid)

步骤 4:计算约束后的 ECS 分布

# 方法 1:简化方法(基于线性回归)predicted_ecs = slope * constraint_var + interceptresiduals = ecs_values - predicted_ecsprediction_error = np.std(residuals)# 约束后的均值和标准差constrained_mean = slope * obs_mean + interceptconstrained_std = prediction_error * obs_std / np.std(constraint_var)# 计算不确定性削减original_std = ecs_values.std()uncertainty_reduction = (1 - constrained_std / original_std) * 100
# 方法 2:使用 Skyborn 完整函数(适用于 xarray 数据)import xarray as xrfrom skyborn.calc import emergent_constraint_posterior# 将数据转换为 xarray.DataArrayconstraint_da = xr.DataArray(    constraint_var,     dims=['model'],    coords={'model': [f'Model_{i+1:02d}'for i in range(n_models)]})ecs_da = xr.DataArray(    ecs_values,    dims=['model'],    coords={'model': [f'Model_{i+1:02d}'for i in range(n_models)]})# 计算后验分布posterior_pdf, posterior_std, posterior_mean = emergent_constraint_posterior(    constraint_data=constraint_da,    target_data=ecs_da,    constraint_grid=constraint_grid,    target_grid=ecs_grid,    obs_pdf=obs_pdf)

步骤 5:可视化结果

import matplotlib.pyplot as pltfig, axes = plt.subplots(13, figsize=(185))# 子图1:涌现关系ax = axes[0]ax.scatter(constraint_var, ecs_values, s=80, alpha=0.7, edgecolors='black')ax.plot(constraint_grid, slope * constraint_grid + intercept, 'r--', linewidth=2, label=f'Regression Line (R²={correlation**2:.3f})')ax.axvline(obs_mean, color='orange', linewidth=2, label=f'Observation: {obs_mean:.3f}')ax.set_xlabel('Constraint Variable X', fontsize=12)ax.set_ylabel('ECS (°C)', fontsize=12)ax.set_title('Emergent Relationship', fontsize=14, fontweight='bold')ax.legend()ax.grid(True, alpha=0.3)# 子图2:观测约束 PDFax = axes[1]ax.plot(constraint_grid, obs_pdf, color='orange', linewidth=3)ax.fill_between(constraint_grid, obs_pdf, alpha=0.3, color='orange')ax.set_xlabel('Constraint Variable X', fontsize=12)ax.set_ylabel('Probability Density', fontsize=12)ax.set_title('Observational Constraint PDF', fontsize=14, fontweight='bold')ax.grid(True, alpha=0.3)# 子图3:ECS 约束前后对比ax = axes[2]ecs_dense = np.linspace(1.06.0200)original_pdf = gaussian_pdf(ecs_values.mean(), original_std, ecs_dense)constrained_pdf = gaussian_pdf(constrained_mean, constrained_std, ecs_dense)ax.plot(ecs_dense, original_pdf, 'b-', linewidth=2        label=f'Before constraint: {ecs_values.mean():.2f}±{original_std:.2f}°C')ax.fill_between(ecs_dense, original_pdf, alpha=0.3, color='blue')ax.plot(ecs_dense, constrained_pdf, 'r-', linewidth=2,        label=f'After constraint: {constrained_mean:.2f}±{constrained_std:.2f}°C')ax.fill_between(ecs_dense, constrained_pdf, alpha=0.3, color='red')ax.axvline(3.0, color='green', linestyle=':', linewidth=2, label='IPCC AR6: 3.0°C')ax.set_xlabel('ECS (°C)', fontsize=12)ax.set_ylabel('Probability Density', fontsize=12)ax.set_title(f'Uncertainty Reduction: {uncertainty_reduction:.1f}%'             fontsize=14, fontweight='bold')ax.legend()ax.grid(True, alpha=0.3)plt.tight_layout()plt.show()

真实数据应用示例

对于真实的气候模式数据(如 CMIP6),流程类似:

import xarray as xrfrom skyborn.calc import emergent_constraint_posterior, pearson_correlation# 1. 加载多模式集合数据ds_models = xr.open_mfdataset('cmip6_models/*.nc', combine='nested', concat_dim='model')# 2. 提取约束变量和目标变量# 例如:低云反馈(LCC)与 ECSlcc = ds_models['low_cloud_cover'].mean(dim=['time''lat''lon'])ecs = ds_models['equilibrium_climate_sensitivity']# 3. 检查相关性r = pearson_correlation(lcc, ecs)# 4. 加载观测数据obs_lcc_mean = 0.45# 来自卫星观测obs_lcc_std = 0.02# 观测不确定性# 5. 应用涌现约束constraint_grid = np.linspace(lcc.min() - 0.1, lcc.max() + 0.1100)ecs_grid = np.linspace(1.55.5100)obs_pdf = gaussian_pdf(obs_lcc_mean, obs_lcc_std, constraint_grid)posterior_pdf, posterior_std, posterior_mean = emergent_constraint_posterior(    constraint_data=lcc,    target_data=ecs,    constraint_grid=constraint_grid,    target_grid=ecs_grid,    obs_pdf=obs_pdf)

完整代码示例

以下是一个从数据准备到可视化的完整示例:

import numpy as npimport matplotlib.pyplot as pltfrom skyborn.calc import gaussian_pdf, pearson_correlation# ==================== 步骤 1: 准备数据 ====================np.random.seed(42)n_models = 30# 生成 ECS 值ecs_values = np.random.normal(3.20.9, n_models)ecs_values = np.clip(ecs_values, 1.55.5)ecs_values[0:3] = [2.14.85.2]# 生成约束变量constraint_strength = 0.7noise_level = np.sqrt(1 - constraint_strength**2)ecs_normalized = (ecs_values - ecs_values.mean()) / ecs_values.std()constraint_var = constraint_strength * ecs_normalized + noise_level * np.random.randn(n_models)constraint_var = constraint_var * 0.3 + 0.5# ==================== 步骤 2: 建立涌现关系 ====================correlation = pearson_correlation(constraint_var, ecs_values)slope, intercept = np.polyfit(constraint_var, ecs_values, 1)# ==================== 步骤 3: 设置观测约束 ====================obs_mean = constraint_var.mean() + 0.05obs_std = 0.08constraint_grid = np.linspace(constraint_var.min() - 0.3, constraint_var.max() + 0.380)ecs_grid = np.linspace(1.55.580)obs_pdf = gaussian_pdf(obs_mean, obs_std, constraint_grid)# ==================== 步骤 4: 计算约束结果 ====================predicted_ecs = slope * constraint_var + interceptresiduals = ecs_values - predicted_ecsprediction_error = np.std(residuals)constrained_mean = slope * obs_mean + interceptconstrained_std = prediction_error * obs_std / np.std(constraint_var)original_std = ecs_values.std()uncertainty_reduction = (1 - constrained_std / original_std) * 100# ==================== 步骤 5: 绘制结果 ====================fig, axes = plt.subplots(13, figsize=(185))# 子图1:涌现关系ax = axes[0]ax.scatter(constraint_var, ecs_values, s=80, alpha=0.7, edgecolors='black')ax.plot(constraint_grid, slope * constraint_grid + intercept, 'r--', linewidth=2, label=f'Regression Line (R²={correlation**2:.3f})')ax.axvline(obs_mean, color='orange', linewidth=2, label=f'Observation: {obs_mean:.3f}')ax.set_xlabel('Constraint Variable X', fontsize=12)ax.set_ylabel('ECS (°C)', fontsize=12)ax.set_title('Emergent Relationship', fontsize=14, fontweight='bold')ax.legend()ax.grid(True, alpha=0.3)# 子图2:观测约束 PDFax = axes[1]ax.plot(constraint_grid, obs_pdf, color='orange', linewidth=3)ax.fill_between(constraint_grid, obs_pdf, alpha=0.3, color='orange')ax.set_xlabel('Constraint Variable X', fontsize=12)ax.set_ylabel('Probability Density', fontsize=12)ax.set_title('Observational Constraint PDF', fontsize=14, fontweight='bold')ax.grid(True, alpha=0.3)# 子图3:ECS 约束前后对比ax = axes[2]ecs_dense = np.linspace(1.06.0200)original_pdf = gaussian_pdf(ecs_values.mean(), original_std, ecs_dense)constrained_pdf = gaussian_pdf(constrained_mean, constrained_std, ecs_dense)ax.plot(ecs_dense, original_pdf, 'b-', linewidth=2        label=f'Before constraint: {ecs_values.mean():.2f}±{original_std:.2f}°C')ax.fill_between(ecs_dense, original_pdf, alpha=0.3, color='blue')ax.plot(ecs_dense, constrained_pdf, 'r-', linewidth=2,        label=f'After constraint: {constrained_mean:.2f}±{constrained_std:.2f}°C')ax.fill_between(ecs_dense, constrained_pdf, alpha=0.3, color='red')ax.axvline(3.0, color='green', linestyle=':', linewidth=2, label='IPCC AR6: 3.0°C')ax.set_xlabel('ECS (°C)', fontsize=12)ax.set_ylabel('Probability Density', fontsize=12)ax.set_title(f'Uncertainty Reduction: {uncertainty_reduction:.1f}%'             fontsize=14, fontweight='bold')ax.legend()ax.grid(True, alpha=0.3)plt.tight_layout()plt.show()

详细的使用介绍方法在:https://skyborn.readthedocs.io/en/latest/notebooks/ecs_emergent_constraints_analysis.html

小结:让观测“发声”,让预测更稳

涌现约束法以朴素的统计-物理逻辑,将真实世界观测融入模式集合评估, 在不更改模式结构的前提下,实现对关键气候指标的不确定性收缩。

相关资源链接

  • 完整文档:https://skyborn.readthedocs.io/
  • GitHub仓库:https://github.com/QianyeSu/Skyborn
  • 问题反馈:https://github.com/QianyeSu/Skyborn/issues

往期回顾

References

  • Zhou Baiquan,Zhai Panmao. 2021. The constraint methods for projection in the IPCC Sixth Assessment Report on climate change. Acta Meteorologica Sinica,79(6):1063-1070. DOI: 10.11676/qxxb2021.069

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 21:41:50 HTTP/2.0 GET : https://f.mffb.com.cn/a/460718.html
  2. 运行时间 : 0.274200s [ 吞吐率:3.65req/s ] 内存消耗:4,921.20kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4586c2c1df46baf6d3139aa32fa4596c
  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.001044s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001621s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000774s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000703s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001364s ]
  6. SELECT * FROM `set` [ RunTime:0.000524s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001497s ]
  8. SELECT * FROM `article` WHERE `id` = 460718 LIMIT 1 [ RunTime:0.001454s ]
  9. UPDATE `article` SET `lasttime` = 1770558110 WHERE `id` = 460718 [ RunTime:0.019794s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.002097s ]
  11. SELECT * FROM `article` WHERE `id` < 460718 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001499s ]
  12. SELECT * FROM `article` WHERE `id` > 460718 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003827s ]
  13. SELECT * FROM `article` WHERE `id` < 460718 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.017949s ]
  14. SELECT * FROM `article` WHERE `id` < 460718 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.027035s ]
  15. SELECT * FROM `article` WHERE `id` < 460718 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.024228s ]
0.279824s