乐于分享
好东西不私藏

WPS解码EC IFS确定性预报产品

WPS解码EC IFS确定性预报产品
TECH · TUTORIAL2026.07

从 ECMWF IFS 0.25°预报数据到 WRF 初始场:WPS 解码与 met_em 生成流程

公开数据下载 · GRIB2 解码 · 土壤层兼容 · 输出验证

ECMWF Open Data × WPS 4.6

IFSWRF

最近需要使用 ECMWF IFS 0.25°确定性预报资料驱动 WRF 模拟,因此整理了一套从公开数据获取到 WRF 初始场生成的完整流程。本文以 WPS 4.6 和 WRF 4.7.1 为例,记录 ECMWF GRIB2 数据下载、格式处理、Vtable 配置以及 ungrib.exe、metgrid.exe 和 real.exe 各环节的实现过程,方便后续重复使用。

01

PART

完整流程

WORKFLOW · 从数据到初始场

下载

公开桶获取 GRIB2

解码

重打包并映射变量

验证

生成并检查 met_em

...workflow

ECMWF Open Data

  ↓

anonymous download → grid_ccsds → grid_simple

  ↓

Vtable → ungrib.exe → FILE:YYYY-MM-DD_HH

  ↓

metgrid.exe → met_em.d01.*.nc

  ↓

real.exe → wrfinput_d01 + wrfbdy_d01

其中最关键的不是单个命令,而是四个环节必须彼此一致:下载的产品类型、GRIB2 编码、Vtable 字段映射,以及 WPS 对新版 ECMWF 土壤层的支持。

02

PART

选择正确的确定性产品

DATA STREAM · 先把时次选对

ECMWF Open Data 同时包含确定性预报和集合预报。本文处理的是 IFS 确定性预报,对象路径中的 type 为 fc,不会使用 enfo 集合成员。

在 IFS Cycle 50r1 之前,00/12 UTC 的确定性预报位于 oper,06/18 UTC 的短截止确定性预报位于 scda。短截止指观测资料接收和业务生产时效,不代表集合预报,也不等于降低空间分辨率。

例如,正式起报时间为 2025 年 8 月 7 日 00 UTC,前置 6 小时 spin-up 后,全球背景场初始时刻是 2025 年 8 月 6 日 18 UTC,因此使用历史 scda 流。

...object path

20250806/18z/ifs/0p25/scda/

20250806180000-0h-scda-fc.grib2

20250806180000-6h-scda-fc.grib2

从 2026 年 5 月 12 日 06 UTC 的 IFS Cycle 50r1 开始,06/18 UTC 的高分辨率确定性产品也合并到了 oper。兼顾历史数据与实时数据时,可以采用日期感知的 stream 选择。

...python

import datetime as dt

IFS_50R1_START = dt.datetime(2026, 5, 12, 6)

def resolve_stream(init_time):

  if init_time >= IFS_50R1_START:

    return "oper"

  return "oper" if init_time.hour in {0, 12} else "scda"

03

PART

准备下载与解码环境

ENVIRONMENT · 统一运行依赖

STEP 01

安装下载依赖

下载程序使用公开 Google Cloud Storage 桶,不需要服务账号。安装下载与格式处理依赖。

...bash

pip install google-cloud-storage

pip install eccodes

随后确认 ecCodes、NetCDF 和 WPS 可执行文件已经就绪。

...bash

command -v grib_set

command -v ncdump

ls -l /home/exp/software/WPS-4.6.0/ungrib.exe

ls -l /home/exp/software/WPS-4.6.0/metgrid.exe

04

PART

从公开桶下载 GRIB2

DOWNLOAD · 匿名且可恢复

公开桶名称为 ecmwf-open-data。对象名由日期、循环时次、模式、分辨率、stream 和预报时效共同组成。

...path template

{YYYYMMDD}/{HH}z/ifs/0p25/{stream}/

{YYYYMMDDHH0000}-{step}h-{stream}-fc.grib2

STEP 02

直接运行完整下载脚本

下面的脚本固定下载 2025 年 8 月 7 日 00 UTC 的 IFS 0.25° 确定性预报,stream 为 oper,预报时效为 f000、f006……f036。下载时先写入 .part 临时文件,校验文件大小后再原子改名;重复运行会自动跳过已完整下载的文件。

...python

#!/usr/bin/env python3

from pathlib import Path

import os

import time

from google.cloud import storage

BUCKET_NAME = "ecmwf-open-data"

INIT_DAY = "20250807"

CYCLE = "00"

STREAM = "oper"

FORECAST_STEPS = range(0, 37, 6)

OUTPUT_DIR = Path("ecmwf_2025080700")

MAX_RETRIES = 5

def download_one(bucket, blob_name, destination):

  blob = bucket.blob(blob_name)

  blob.reload()

  destination = Path(destination)

  partial = destination.with_name(f"{destination.name}.part")

  expected_size = blob.size

  if (

    destination.exists()

    and expected_size is not None

    and destination.stat().st_size == expected_size

  ):

    print(f"[skip] {destination}")

    return

  for attempt in range(1, MAX_RETRIES + 1):

    try:

      partial.unlink(missing_ok=True)

      blob.download_to_filename(str(partial))

      actual_size = partial.stat().st_size

      if expected_size is not None and actual_size != expected_size:

        raise RuntimeError(

         f"size mismatch: local={actual_size}, remote={expected_size}"

        )

      os.replace(partial, destination)

      print(f"[done] {blob_name} -> {destination}")

      return

    except Exception:

      partial.unlink(missing_ok=True)

      if attempt == MAX_RETRIES:

        raise

      time.sleep(2 ** attempt)

def main():

  OUTPUT_DIR.mkdir(parents=True, exist_ok=True)

  client = storage.Client.create_anonymous_client()

  bucket = client.bucket(BUCKET_NAME)

  init_stamp = f"{INIT_DAY}{CYCLE}0000"

  for step in FORECAST_STEPS:

    filename = f"{init_stamp}-{step}h-{STREAM}-fc.grib2"

    blob_name = (

      f"{INIT_DAY}/{CYCLE}z/ifs/0p25/{STREAM}/{filename}"

    )

    destination = OUTPUT_DIR / filename

    download_one(bucket, blob_name, destination)

if __name__ == "__main__":

  main()

把代码保存为 download_ecmwf_2025080700.py,然后运行:

...bash

python download_ecmwf_2025080700.py

下载完成后,目录中会得到以下 ECMWF 原始文件。

...local files

20250807000000-0h-oper-fc.grib2

20250807000000-6h-oper-fc.grib2

20250807000000-12h-oper-fc.grib2

...

20250807000000-36h-oper-fc.grib2

这些是 ECMWF 原始文件,下一步重打包时再统一改成便于 WPS 链接的文件名。

05

PART

将 CCSDS 重打包为 WPS 可读格式

REPACK · 只改变打包方式

ECMWF Open Data 的部分 GRIB2 消息采用 CCSDS 压缩,即 grid_ccsds。WPS 4.6 自带的 GRIB2 解码链路对该打包模板支持有限,因此在进入 ungrib.exe 前,用 ecCodes 转为 grid_simple。

STEP 03

使用 grib_set 重打包

...bash

grib_set -r \

 -w packingType=grid_ccsds \

 -s packingType=grid_simple \

 ecmwf_2025080700/20250807000000-0h-oper-fc.grib2 \

 ecmwf_2025080700/ecmwf.0p25.2025080700.f000.grib2

每个选项分别做什么

1

-r:重新打包数据值。修改 packingType 涉及数据编码方式,因此要让 ecCodes 重新编码数据段。

2

-w packingType=grid_ccsds:只修改当前采用 CCSDS 打包的消息;不匹配的消息仍会原样写入输出文件。

3

-s packingType=grid_simple:把匹配消息的打包方式设置为 WPS 更容易读取的 simple packing。

4

命令末尾的第一个文件名是下载得到的输入文件,第二个文件名是重打包后的输出文件。

5

行末的 \ 是 Shell 续行符,只负责把一条长命令拆成多行,删除后写成一行也能执行。

这里改变的是数据打包方式,不改变变量的气象含义、网格分辨率和预报时次。批处理时建议先写入 .part,确认命令返回值和文件大小后再改名。

06

PART

让 WPS 识别新版土壤层

SOIL LAYERS · 兼容 LEVEL 151

2024 年 11 月之后的 IFS Open Data 使用 GRIB2 level code 151 表示四层土壤场。针对 WPS 4.6,需要让 ungrib 识别 SOT、VSW 和 level code 151。

SOT

土壤温度,即 soil temperature。

VSW

体积土壤含水量,即 volumetric soil water。

Level 151

新版 ECMWF 四层土壤场使用的 GRIB2 层编码。

为兼容这些字段,需要给 WPS 4.6 增加一处补丁。补丁完成两件事:向 WPS 参数表加入 SOT/VSW,并把 level 151 按 Vtable 中的层号和实际深度转换为 WPS 土壤层。

...bash · apply patch

cd /home/exp/software/WPS-4.6.0

patch -p1 < wps-4.6-ecmwf-open-data.patch

./clean -a

./configure

./compile

补丁应用完成后必须重新编译 WPS,后续处理也要使用这次生成的 ungrib.exe,它才包含 level 151 土壤层支持。补丁获取方式见文末。

07

PART

配置 ECMWF 专用 Vtable

MAPPING · 把编码翻译成气象字段

Vtable 负责把 GRIB2 的 discipline、category、parameter 和 level 映射为 WPS 中间字段名。除气压层温度、湿度、风和位势高度外,地表皮肤温度与四层土壤场必须明确映射。

...Vtable

235 | 1 | 0 | | SKINTEMP | K | Skin Temperature | 0 | 0 | 17 | 1 |

0 | 1 | 0 | 7 | ST000007 | K | T of 0-7 cm soil layer | 2 | 3 | 18 | 151 |

1 | 2 | 7 | 28 | ST007028 | K | T of 7-28 cm soil layer | 2 | 3 | 18 | 151 |

2 | 3 |28 | 100 | ST028100 | K | T of 28-100 cm soil layer | 2 | 3 | 18 | 151 |

3 | 4 |100| 289 | ST100289 | K | T of 100-289 cm soil layer | 2 | 3 | 18 | 151 |

0 | 1 | 0 | 7 | SM000007 | fraction | Water of 0-7 cm soil layer | 2 | 0 | 25 | 151 |

1 | 2 | 7 | 28 | SM007028 | fraction | Water of 7-28 cm soil layer | 2 | 0 | 25 | 151 |

2 | 3 |28 | 100 | SM028100 | fraction | Water of 28-100 cm soil layer | 2 | 0 | 25 | 151 |

3 | 4 |100| 289 | SM100289 | fraction | Water of 100-289 cm soil layer| 2 | 0 | 25 | 151 |

其中 SKINTEMP 对应 ECMWF 参数 skt,GRIB2 编码为 discipline 0、category 0、parameter 17、surface level 1。该字段将用于生成 WRF 的地表温度。

运行前把专用表链接为 WPS 当前 Vtable。

...bash

ln -sf /home/exp/projects/RUC/scripts/Vtable.ECMWF.IFS.grib2 Vtable

08

PART

运行 ungrib 与 metgrid

WPS · 生成 MET_EM

假设全球背景每 6 小时一份,namelist.wps 的核心部分如下。

...namelist.wps

&share

 wrf_core = 'ARW',

 max_dom = 1,

 start_date = '2025-08-06_18:00:00',

 end_date = '2025-08-08_06:00:00',

 interval_seconds = 21600,

/

&ungrib

 out_format = 'WPS',

 prefix = 'FILE',

/

&metgrid

 fg_name = 'FILE',

 io_form_metgrid = 2,

/

STEP 04

链接文件并顺序运行

...bash

./link_grib.csh /data/ecmwf/2025080618/ecmwf.0p25.2025080618.f000.grib2

./ungrib.exe > ungrib.log 2>&1

./metgrid.exe > metgrid.log 2>&1

09

PART

验证 met_em 再进入 real

QUALITY CHECK · 结构与数值双检查

ungrib.exe 和 metgrid.exe 正常结束只是第一层检查。进入 real.exe 之前,还应核对垂直层数、土壤层数和关键地表变量。

本文选择 13 个气压层,加地面层后,num_metgrid_levels 应为 14;Noah LSM 所需的 num_st_layers 应为 4。

STEP 05

检查 NetCDF 结构

...bash

FILE=$(ls met_em.d01.*.nc | head -n 1)

ncdump -h "$FILE" | grep -Ei \

 'num_metgrid_levels|num_st_layers|SKINTEMP|ST000007|SM000007'

进一步用 xarray 检查数值范围。

...python

import glob

import xarray as xr

path = sorted(glob.glob("met_em.d01.*.nc"))[0]

with xr.open_dataset(path) as ds:

  for name in ("SKINTEMP", "ST000007", "ST007028", "ST028100",

        "ST100289", "SM000007", "SM007028", "SM028100", "SM100289"):

    field = ds[name]

    print(name, float(field.min()), float(field.max()))

确认地表温度和土壤温度处于合理的开尔文范围、土壤湿度具有有效空间变化后,再运行 real.exe。

...bash

mpirun -np 24 ./real.exe

grep "SUCCESS COMPLETE REAL_EM INIT" rsl.error.0000

ls -lh wrfinput_d01 wrfbdy_d01

///

LAST

写在最后

SUMMARY · 形成稳定处理链路

补丁获取

需要 WPS 4.6 ECMWF Open Data level 151 土壤层兼容补丁、数据下载脚本以及Vtable的读者,可在公众号后台私信关键词 「WPS补丁」 获取。

参考资料

ECMWF Open Data 官方入口

IFS Cycle 50r1 实施说明

WPS 对新版 ECMWF 土壤字段的兼容工作

既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。

点赞
在看
转发

THANKS FOR READING

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