当前位置:首页>python>GeoKit 深读:纯Python用地适宜性引擎,基站选址直接复用

GeoKit 深读:纯Python用地适宜性引擎,基站选址直接复用

  • 2026-08-19 15:47:52
GeoKit 深读:纯Python用地适宜性引擎,基站选址直接复用

阿艾法知识库 · 每日开源精选 | 2026-08-14

基站选址、机房布点、应急通信车驻点——你以为这是网优的事,其实它本质是一道地理空间题:坡度能不能立塔?离主干道多远?生态红线在哪?居民区密集不密集?把这几层栅格和矢量叠在一起做"是与否"的判断,就是教科书里的用地适宜性分析(Land Eligibility / Site Suitability)

今天拆的这个项目,是德国于利希研究中心(Forschungszentrum Jülich)开源的 ETHOS.GeoKit——一个纯 Python 的地理空间工具包,专门为"把不同格式、不同分辨率、不同坐标系的栅格和矢量数据,统一塞进一个研究区里做叠加分析"而生。它最出圈的用法,就是给光伏、风电做用地适宜性,被 GLAES、RESKit 这些能源建模工具直接当底层引擎调用,论文还发在了 SoftwareX(2026)。对咱们网优人来说,它的 RegionMask 工作流,几乎可以原样照搬到基站/机房选址

一句话结论

GeoKit 不是又一个"玩具 GIS",而是经过同行评审、被工业级能源模型依赖的栅格+矢量融合选址引擎。会写 Python 就能用,MIT 协议可商用,且中文圈几乎没人写过——蓝海。

【必看理由】为什么网优人该盯它

① 真·纯 Python + MIT,没有编译门槛

底层是 GDAL,但 GeoKit 把它包成了函数式 Python API。不用自己编译 GDAL、不用写 OGR 样板代码,conda 一行装好就能跑;MIT 协议,商用、改源码都自由。

② 栅格+矢量一把梭,RegionMask 是灵魂

不同格式、不同分辨率、不同坐标系的数据,用 RegionMask 对象统一到一个 ROI(感兴趣区)。CRS 转换、范围裁剪、像元对齐这些最烦的活,它自动替你记账。

③ 选址的方法论"标准答案"

GeoKit 就是为可再生能源用地适宜性而生的,方法论写进了 SoftwareX 2026 同行评审论文,还被 GLAES(全球用地适宜性)、RESKit(资源评估)直接调用。可信度拉满。

④ API 显式到运维都秒懂

indicateFeatures(矢量缓冲成掩膜)、indicateValues(栅格阈值成掩膜)、extractFeatures(提取要素)——缓冲区、阈值、提取全是显式方法,不用啃 GDAL 文档。

⑤ 不止能源——基站选址直接复用

基站/机房选址、应急设施布点,本质都是同一个多准则叠加(MCDA)问题:把坡度、道路、生态红线、居民区、供电距离叠成"能/不能建"的二值图。GeoKit 的工作流可直接套。

一、深读拆解

1.1 它到底解决什么痛点

传统做法:你有 DEM(高程)、坡度图、路网 shp、生态红线 shp、行政区划 shp……格式不一、坐标系不同、像元大小不同。要把它们叠在一起判断"某点能不能建站",你得手动做投影转换、重采样、按范围裁剪、再逐像元做逻辑运算。每一步都容易错,且不可复现。

GeoKit 的核心价值:用 RegionMask(区域掩膜)把"研究区"固化为一个空间上下文对象,所有栅格/矢量都以它为准做对齐和融合。你只管写业务逻辑(坡度<15°、离路 1km 内、避开红线),对齐的脏活它包了。

1.2 核心对象与能力清单

模块 / 对象
干什么的
关键 API
RegionMask
研究区上下文,融合多源数据的主角
.load() .indicateFeatures() .indicateValues() .extractFeatures() .rasterize() .vectorize() .intersection()
Extent
空间范围对象,定义裁剪/重投影边界
.load() .warp() .clip()
raster
栅格读写、重采样、矩阵提取
loadRaster() createRaster() warp() extractMatrix()
vector
矢量读写、要素提取、创建
loadVector() extractFeatures() createVector() vectorInfo()
geom / srs / util
几何运算、坐标系、绘图辅助
drawGeoms() drawImage()

支持清单:矢量(Shapefile / GeoPackage / GeoJSON)、栅格(GeoTIFF 等 GDAL 支持的格式)、任意 EPSG 坐标系自动转换、栅格↔矢量互转(rasterize / vectorize)、点处采样(多插值方式)、缓冲区、交集、阈值二值化。文档站 geokit.readthedocs.io 是完整的。

二、运维实战(部署步骤)

2.1 环境准备

GeoKit 依赖 GDAL,强烈建议用 conda-forge 安装,别用 pip 硬装 GDAL(坑多)。Python 3.10+ 环境。

# 推荐:Miniforge 装好 conda 后,一行建环境 conda create -n geokit -c conda-forge geokit conda activate geokit  # 验证 python -c "import geokit; print(geokit.__name__)"

2.2 上手:一个基站选址的最小工作流

下面这段就是 GeoKit 的"灵魂"——用 RegionMask 把多准则叠成候选点。把网络运维的约束翻译成代码:坡度够平、离路够近、避开生态红线。

import geokit from geokit.regionmask import RegionMask  # 1) 定义研究区(ROI):某地市行政区边界 rm = RegionMask.load("city_boundary.shp")  # 2) 约束①:坡度 < 15°(栅格阈值 -> 二值掩膜,1=满足) flat = rm.indicateValues("slope.tif", value=('<', 15))  # 3) 约束②:距主干道 1km 内(矢量缓冲 -> 二值掩膜) near_road = rm.indicateFeatures("roads.shp", buffer=1000)  # 4) 约束③:避开生态红线(矢量存在即排除,用 1-掩膜 取反) protected = rm.indicateFeatures("ecozone.shp", buffer=500) no_protected = 1 - protected  # 5) 多准则叠加(逐像元与运算) suitable = flat * near_road * no_protected  # 6) 二值图转候选面,导出 GeoPackage 交给网优 further 处理 candidates = rm.vectorize(suitable, flat=False, threshold=0.5) geokit.vector.createVector(candidates, output="base_station_candidates.gpkg")

再来个"读数据 + 重采样到研究区"的常用片段:

import geokit  # 读栅格 / 矢量 dem = geokit.raster.loadRaster("dem.tif") roads = geokit.vector.loadVector("roads.shp")  # 把栅格重采样 + 裁剪到指定坐标系与像元大小 dem_warped = geokit.raster.warp(     dem, pixelWidth=100, pixelHeight=100, srs="EPSG:32650" )  # 在研究区内提取矢量要素(仅取落在区内的) feats = rm.extractFeatures(roads, where="class='highway'")

2.3 常驻:嵌进你自己的选址脚本 / 定时任务

GeoKit 是库不是服务,最适合的做法是:把上面的工作流封成一个 site_suitability.py,入参是"约束配置文件(哪些层、什么阈值、缓冲多大)",出参是候选点 GeoPackage。配合 crontab / 调度平台,每月跑一次更新候选库。

避坑提示:GeoKit 的 indicateValues 的 value 参数支持 ('<', 15) 这类运算符元组,也支持传 lambda 函数做复杂区间;生态红线"排除"用 1 - indicateFeatures(...) 取反最稳,不依赖 invert 参数。

三、部署案例(3 个真实场景)

场景 1 | 光伏电站用地适宜性(GeoKit 原生场景)

约束 = 坡度<8° + 距变电站 5km 内 + 避开农田/生态区 + 年均辐射达标。GLAES 正是用 GeoKit 做全球尺度的可再生能源用地适宜性,输出"哪里能建、建多少"的图层。对咱们的意义:把"光伏配套基站供电"也当成同一类问题。

场景 2 | 基站 / 机房选址

把"站点候选"抽象成用地适宜性问题:约束 = 坡度合适 + 道路可达 + 避开居民区/生态红线 + 供电距离可控 + 与现网站间距达标(防过覆盖)。RegionMask 一键出候选网格,直接喂给网优做进一步 RF 仿真。比在 ArcGIS 里手动叠层省 80% 时间。

场景 3 | 应急通信车驻点规划

汛期/灾害时,准则 = 覆盖重点单位 + 道路可达(保障进场)+ 地势较高避洪。用 RegionMask 把"洪涝风险栅格"取反、叠加"人口/重点单位点密度"、再约束道路缓冲,快速出应急车候选驻点。和本号之前拆的 isolysis(等时圈覆盖)、socialmapper(可达性)是同一思路的不同切口。

四、社区精选(同赛道相关项目)

GLAES(FZJ-IEK3-VSA/glaes)

Geospatial Land Availability for Energy Systems——基于 GeoKit 的用地适宜性工具,直接产出可再生能源可用土地,是 GeoKit 最典型的上层应用。

RESKit(FZJ-IEK3-VSA/reskit)

可再生能源资源评估工具,空间处理层依赖 GeoKit,做风速/辐射的资源yield建模。

rioxarray

栅格 + xarray 的纯 Python 遥感分析库,和 GeoKit 的 raster 模块互补,适合做时序栅格运算。

本号已深读的同赛道(可串起来看)

isolysis(等时圈覆盖)、socialmapper(可达性/选址)、yirgacheffe(栅格+矢量声明式叠加)、pyorps(成本面选线)——它们和 GeoKit 合起来,就是一套"网络运维 GIS 工具箱"。

活跃度引擎(来互动)

💬 评论区提问

你们做选址/覆盖规划,现在是栅格叠加手算还是已经上 ML/AI 了?评论区聊聊踩过的坑。

📦 资料包钩子

留言 「选址」 领本号整理的《GeoKit 基站选址模板脚本》(含约束配置示例 + 候选点导出),直接能跑。

🗳️ 投票即内容(下期写什么由你定)

你最想用 GIS 解决哪类网络运维问题?①基站选址 ②光缆路由走廊 ③应急布点 ④覆盖补盲。投票,票数最高的下期深读。

项目出自 @FZJ-IEK3-VSA(于利希研究中心),论文:Ishmam et al., SoftwareX 2026, DOI 10.1016/j.softx.2026.102870。

项目卡片 | ETHOS.GeoKit(geokit) 协议:MIT | 语言:Python(GDAL 封装) | 发表:SoftwareX 2026 仓库:https://github.com/FZJ-IEK3-VSA/geokit | 文档:https://geokit.readthedocs.io 安装:conda create -n geokit -c conda-forge geokit

*本篇为「阿艾法知识库·每日开源精选」自动深读稿,仅入公众号草稿箱,未群发。转载或引用请注明出处与项目原许可。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 14:36:14 HTTP/2.0 GET : https://f.mffb.com.cn/a/510664.html
  2. 运行时间 : 0.305395s [ 吞吐率:3.27req/s ] 内存消耗:4,755.51kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=fa18c60acef5a7be75448bc139bdfd17
  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.001122s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001409s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000873s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.007620s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001740s ]
  6. SELECT * FROM `set` [ RunTime:0.000668s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001828s ]
  8. SELECT * FROM `article` WHERE `id` = 510664 LIMIT 1 [ RunTime:0.001283s ]
  9. UPDATE `article` SET `lasttime` = 1787294174 WHERE `id` = 510664 [ RunTime:0.005295s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000845s ]
  11. SELECT * FROM `article` WHERE `id` < 510664 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001615s ]
  12. SELECT * FROM `article` WHERE `id` > 510664 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009758s ]
  13. SELECT * FROM `article` WHERE `id` < 510664 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.036492s ]
  14. SELECT * FROM `article` WHERE `id` < 510664 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002523s ]
  15. SELECT * FROM `article` WHERE `id` < 510664 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.016402s ]
0.309029s