当前位置:首页>python>Python | 气象机制图绘制

Python | 气象机制图绘制

  • 2026-03-23 06:36:58
Python | 气象机制图绘制

机制图

经常看到这样的机制示意图(Mechanism Diagram) 或 概念模型图(Conceptual Model Diagram),用于直观展示某种气候或天气现象的物理过程、遥相关路径及其影响机制。

看起来挺好玩的:

遥相关
概念图

Python

可以用Python先绘制底图,之后使用PPT或者PS加上箭头。

绘制底图的代码如下:

import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d.art3d import Poly3DCollectionimport cartopy.feature as cfeatureimport numpy as npfrom shapely.geometry import (    Polygon,    MultiPolygon,    box,    LineString,    MultiLineString,    GeometryCollection,)def_shift_longitudes(lons, central_longitude: float):"""Shift longitudes so that central_longitude becomes the visual center.    Input can be any sequence; output is a NumPy array in [-180, 180].    """    lons_arr = np.asarray(lons, dtype=float)return (lons_arr - central_longitude + 180.0) % 360.0 - 180.0def_extract_polygons(geom):"""Return a list of Polygon objects from a mixed geometry."""if isinstance(geom, Polygon):return [geom]if isinstance(geom, (MultiPolygon, GeometryCollection)):return [g for g in geom.geoms if isinstance(g, Polygon)]return []def_extract_lines(geom):"""Return a list of LineString objects from a mixed geometry."""if isinstance(geom, LineString):return [geom]if isinstance(geom, (MultiLineString, GeometryCollection)):return [g for g in geom.geoms if isinstance(g, LineString)]return []def_split_line_on_wrap(x, y, jump_threshold: float = 180.0):"""Split a polyline where shifted longitudes jump across the map seam."""    x_arr = np.asarray(x, dtype=float)    y_arr = np.asarray(y, dtype=float)if x_arr.size <= 1:return [(x_arr, y_arr)]    segments = []    start = 0for i in range(1, len(x_arr)):if abs(x_arr[i] - x_arr[i - 1]) > jump_threshold:if i - start >= 2:                segments.append((x_arr[start:i], y_arr[start:i]))            start = iif len(x_arr) - start >= 2:        segments.append((x_arr[start:], y_arr[start:]))return segmentsdefcreate_land_polygons_layer(    z_pos, facecolor, alpha, edgecolor, clip_box, central_longitude: float = 0.0):"""Create land polygons (clipped by clip_box) as a Poly3DCollection at height z_pos."""    land_feature = cfeature.NaturalEarthFeature("physical""land""110m")    polys_3d = []for geom in land_feature.geometries():ifnot geom.intersects(clip_box):continuefor poly in _extract_polygons(geom.intersection(clip_box)):ifnot poly.is_valid:continue            x, y = poly.exterior.xy            x = _shift_longitudes(x, central_longitude)            verts = list(zip(x, y, [z_pos] * len(x)))            polys_3d.append(verts)return Poly3DCollection(        polys_3d, facecolors=facecolor, edgecolors=edgecolor, alpha=alpha    )defdraw_background_layer(ax, z_pos, x_range, y_range, color, alpha=0.5):"""Draw a rectangular background layer at height z_pos."""    xx, yy = np.meshgrid(        [x_range[0], x_range[1]],        [y_range[0], y_range[1]],    )    zz = np.full(xx.shape, z_pos)    ax.plot_surface(xx, yy, zz, color=color, alpha=alpha, shade=False)defdraw_coastline_layer(    ax, z_pos, clip_box, linewidth, alpha, central_longitude: float = 0.0):"""Draw a coastline layer at height z_pos, clipped by clip_box."""    coastline_feature = cfeature.NaturalEarthFeature("physical","coastline","110m",        edgecolor="black",        facecolor="none",    )for geom in coastline_feature.geometries():ifnot geom.intersects(clip_box):continuefor line in _extract_lines(geom.intersection(clip_box)):if line.is_empty:continue            x, y = line.coords.xy            x = _shift_longitudes(x, central_longitude)for x_seg, y_seg in _split_line_on_wrap(x, y):                ax.plot(                    x_seg,                    y_seg,                    [z_pos] * len(x_seg),                    color="k",                    linewidth=linewidth,                    alpha=alpha,                    zorder=10,                )defmain(    show_lonlat_labels: bool = True,    central_longitude: float = 0.0,    show_frame: bool = False,):    fig = plt.figure(figsize=(128))    ax = fig.add_subplot(111, projection="3d")# Global lon/lat limits    x_lim = (-150150)  # longitude    y_lim = (-5090)    # latitude    clip_box = box(x_lim[0], y_lim[0], x_lim[1], y_lim[1])# Base heights for the two layers (fixed gap)    z_bottom = 0.0    z_top = 200.0# Small vertical offsets so background / land / coastline are not coplanar    z_bottom_bg = z_bottom    z_bottom_land = z_bottom + 1    z_bottom_coast = z_bottom + 2    z_top_bg = z_top    z_top_land = z_top + 1    z_top_coast = z_top + 2# Bottom layer: white background + light-gray land + coastlines    draw_background_layer(ax, z_bottom_bg, x_lim, y_lim, color="white", alpha=0.5)    bottom_land = create_land_polygons_layer(        z_bottom_land,        facecolor="lightgray",        edgecolor="none",        alpha=1.0,        clip_box=clip_box,        central_longitude=central_longitude,    )    ax.add_collection3d(bottom_land)    draw_coastline_layer(        ax,        z_bottom_coast,        clip_box,        linewidth=0.5,        alpha=1.0,        central_longitude=central_longitude,    )# Top layer: white background + light-gray land + coastlines    draw_background_layer(ax, z_top_bg, x_lim, y_lim, color="white", alpha=0.2)    top_land = create_land_polygons_layer(        z_top_land,        facecolor="lightgray",        edgecolor="none",        alpha=0.6,        clip_box=clip_box,        central_longitude=central_longitude,    )    ax.add_collection3d(top_land)    draw_coastline_layer(        ax,        z_top_coast,        clip_box,        linewidth=0.5,        alpha=0.8,        central_longitude=central_longitude,    )# 3D frame (optional)if show_frame:        corners = [            (x_lim[0], y_lim[0]),            (x_lim[1], y_lim[0]),            (x_lim[1], y_lim[1]),            (x_lim[0], y_lim[1]),        ]for x, y in corners:            ax.plot(                [x, x],                [y, y],                [z_bottom, z_top],"k--",                linewidth=1.0,                alpha=0.6,            )for z in (z_bottom, z_top):            xs = [c[0for c in corners] + [corners[0][0]]            ys = [c[1for c in corners] + [corners[0][1]]            ax.plot(xs, ys, [z] * 5"k-", linewidth=0.8, alpha=0.6)# Axis limits    ax.set_xlim(x_lim)    ax.set_ylim(y_lim)    ax.set_zlim(z_bottom_bg, z_top_coast)# Show or hide the default 3D axes frameif show_frame:        ax.set_axis_on()else:        ax.set_axis_off()# Custom lon/lat tick labels (drawn on bottom edges)    x_ticks = np.arange(-15015160)    y_ticks_geo = np.arange(-509130)    degree = "\u00B0"    x_labels = []for x_plot in x_ticks:        lon_geo = ((x_plot + central_longitude + 180.0) % 360.0) - 180.0        deg = abs(int(lon_geo))if lon_geo < 0:            label = f"{deg}{degree}W"elif lon_geo > 0:            label = f"{deg}{degree}E"else:            label = f"0{degree}"        x_labels.append(label)    y_labels_geo = []for lat in y_ticks_geo:        deg = abs(int(lat))if lat < 0:            label = f"{deg}{degree}S"elif lat > 0:            label = f"{deg}{degree}N"else:            label = f"0{degree}"        y_labels_geo.append(label)if show_lonlat_labels:# Hide default ticks, draw custom lon/lat labels on the bottom edges        ax.set_xticks([])        ax.set_xticklabels([])        ax.set_yticks([])        ax.set_yticklabels([])        ax.set_zticks([])        ax.set_zticklabels([])for x_val, label in zip(x_ticks, x_labels):            ax.text(                x_val,                y_lim[0] - 5,                z_bottom,                label,                ha="center",                va="top",                fontsize=9,                color="black",                zorder=30,            )for y_val, label in zip(y_ticks_geo, y_labels_geo):            ax.text(                x_lim[0] - 10,                y_val,                z_bottom,                label,                ha="right",                va="center",                fontsize=9,                color="black",                zorder=30,            )else:        ax.set_xticks([])        ax.set_xticklabels([])        ax.set_yticks([])        ax.set_yticklabels([])        ax.set_zticks([])        ax.set_zticklabels([])# Remove pane fills, keep only wireframe look    ax.grid(False)    ax.xaxis.pane.fill = False    ax.yaxis.pane.fill = False    ax.zaxis.pane.fill = False    ax.xaxis.pane.set_edgecolor("none")    ax.yaxis.pane.set_edgecolor("none")    ax.zaxis.pane.set_edgecolor("none")    ax.view_init(elev=20, azim=-100)    ax.set_box_aspect((1.3310.4))    plt.show()if __name__ == "__main__":    main(show_lonlat_labels=False, show_frame=True)

使用用法

main(show_lonlat_labels=False, show_frame=True)

显示:

若不想要显示frame,则可以:

main(show_lonlat_labels=False, show_frame=False)

可以根据需要,修改代码,之后再微调。

Reference

  • Lu R, Zhu Z, Yeh SW, Shao L. Basin shift of tropical convection impact on the Western China Autumn Rainfall interannual variability. Climate Dynamics, 62, 10621–10633 (2024). https://doi.org/10.1007/s00382-024-07466-x

  • Effect of Regional Hadley Circulation-Subtropical Jet Interaction: The Amplification of Central-Pacific ENSO-Induced Teleconnection Pattern. https://doi.org/10.1029/2025GL115344

往期回顾

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 10:04:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/481724.html
  2. 运行时间 : 0.167537s [ 吞吐率:5.97req/s ] 内存消耗:4,802.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=be3cb205c765e0951882f61b124fa213
  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.001041s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001401s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000574s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000540s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001243s ]
  6. SELECT * FROM `set` [ RunTime:0.000453s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001228s ]
  8. SELECT * FROM `article` WHERE `id` = 481724 LIMIT 1 [ RunTime:0.000912s ]
  9. UPDATE `article` SET `lasttime` = 1774577046 WHERE `id` = 481724 [ RunTime:0.013052s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000516s ]
  11. SELECT * FROM `article` WHERE `id` < 481724 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000947s ]
  12. SELECT * FROM `article` WHERE `id` > 481724 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001206s ]
  13. SELECT * FROM `article` WHERE `id` < 481724 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001673s ]
  14. SELECT * FROM `article` WHERE `id` < 481724 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001585s ]
  15. SELECT * FROM `article` WHERE `id` < 481724 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005368s ]
0.170699s