当前位置:首页>python>用 Python 玩转 GIS 空间分析!告别繁琐操作,解锁高效科研新姿势

用 Python 玩转 GIS 空间分析!告别繁琐操作,解锁高效科研新姿势

  • 2026-03-21 01:30:19
用 Python 玩转 GIS 空间分析!告别繁琐操作,解锁高效科研新姿势
一、前言

做 GIS 相关研究的你,是不是还在对着传统 GIS 软件的点点戳戳反复操作?批量处理数据时逐一对接、空间分析步骤繁琐、自定义建模受限,动辄耗费数小时甚至数天的时间?其实,Python 早已成为 GIS 空间分析的 “高效利器”,凭借简洁的代码、丰富的开源库、强大的批量处理能力,轻松实现数据读取、空间运算、可视化输出的全流程自动化,让 GIS 分析效率翻倍,更能解锁传统软件无法实现的个性化建模需求。

不管是国土规划、生态环境评价、水文模拟,还是城市地理、遥感解译后的空间分析,Python 都能完美适配,从基础的空间数据裁剪、投影转换,到进阶的缓冲区分析、空间插值、网络分析,再到高阶的空间统计、模型耦合,一行行代码就能搞定复杂操作。今天就带大家走进 Python+GIS 的世界,聊聊必备库、核心应用场景和实用技巧,新手也能快速上手!

二、Python GIS 空间分析,核心优势太能打

相较于 ArcGIS、QGIS 等传统可视化 GIS 软件,Python 做空间分析的优势体现在方方面面,尤其适配科研、大数据处理和个性化分析需求,真正做到 “一次编码,无限复用”。

批量处理效率拉满:面对成百上千的遥感影像、矢量数据,无需手动逐个操作,几行代码就能实现批量读取、处理、分析和输出,彻底告别重复劳动,比如批量裁剪研究区的 DEM 数据、批量转换矢量数据投影,几分钟就能完成传统软件几小时的工作。

开源免费无门槛:核心 GIS 库均为开源免费,无需破解软件、无需担心授权问题,跨 Windows、Mac、Linux 全系统运行,实验室电脑、个人笔记本均可轻松部署,学生党和科研团队友好度拉满。

自定义建模灵活度高:传统 GIS 软件的分析功能固定,而 Python 可通过组合不同库的功能,搭建个性化的空间分析模型,比如将空间插值与生态风险评价模型结合、将网络分析与城市交通规划模型耦合,满足专属研究需求。

多领域数据无缝衔接:Python 可轻松对接 Excel、CSV、TIF、SHP、GeoJSON 等各类数据格式,还能与遥感处理(GDAL)、数据分析(Pandas/Numpy)、可视化(Matplotlib/Seaborn)、机器学习(Scikit-learn)库联动,实现 “数据预处理 - 空间分析 - 统计建模 - 结果可视化” 的一站式科研流程。

轻量运行不卡顿:无需安装庞大的软件客户端,仅需配置相关库环境,即使处理大尺度、大样本的空间数据,也能保持流畅运行,低配电脑也能轻松驾驭。

三、必备核心库,搭建 Python GIS 分析体系

Python 做 GIS 空间分析的核心,在于几款经典的开源库,各司其职、搭配使用,就能覆盖 99% 的 GIS 分析需求,新手从基础库入手,循序渐进即可快速掌握。

1. 基础空间数据处理:Geopandas

GIS 数据处理的 “入门必备”,基于 Pandas 扩展而来,完美兼容 Pandas 的数据分析功能,专门用于矢量数据(SHP、GeoJSON、GPKG)的处理,支持空间数据的读取、裁剪、投影转换、缓冲区分析、空间连接、属性查询等基础操作,语法简洁,上手难度极低,是 Python GIS 的 “基石”。

2. 栅格数据处理:GDAL/RIOS/xarray

栅格数据(DEM、遥感影像、栅格专题图)的处理核心,GDAL 是业界标准,支持几乎所有栅格格式的读写、投影转换、裁剪、重采样、波段运算;RIOS 更适配大规模栅格数据的批量处理;xarray 则擅长多维栅格数据的分析,三者搭配,轻松搞定各类栅格空间运算。

3. 空间分析与建模:PyQGIS/SciPy/NetworkX

  • PyQGIS:可调用 QGIS 的核心分析功能,实现高级空间分析,比如空间插值(克里金、反距离加权)、空间统计(莫兰指数、热点分析)、叠加分析等;
  • SciPy:提供多种科学计算方法,可实现空间插值、趋势面分析等;
  • NetworkX:专注于网络空间分析,适配城市交通网络、水系网络、道路网络分析等场景,比如最短路径求解、节点中心性分析。

4. 空间可视化:Matplotlib/Plotly/Folium

  • Matplotlib/Seaborn:实现静态空间结果可视化,可绘制栅格图、矢量分布图、空间分析专题图,支持自定义配色、图例、标注,适配论文插图需求;
  • Plotly/Folium:实现交互式空间可视化,可生成网页版的交互式地图,支持缩放、点击查看属性,适配课题汇报、成果展示;
  • Contextily:可快速为静态地图添加底图,让专题图更直观、专业。

5. 坐标与投影转换:PyProj

专门用于地理坐标与投影坐标的转换,支持各种坐标系(WGS84、高斯 - 克吕格、UTM、地方坐标系)之间的无缝转换,解决空间数据 “坐标不统一” 的核心痛点。

四、经典应用场景,覆盖科研与实际工作

Python+GIS 的组合可适配所有 GIS 相关研究领域,从基础操作到高阶建模,全方位满足需求,以下几个经典场景,几乎是科研和工作中必用的内容,掌握后就能轻松应对大部分分析需求。

场景 1:基础矢量数据处理

快速实现 SHP/GeoJSON 数据的读取、属性筛选、裁剪、投影转换、缓冲区分析。比如:读取研究区行政边界矢量,裁剪区内的水系、道路数据;对河流数据做 500 米缓冲区分析,评估河岸带生态影响;将 WGS84 坐标的矢量数据转换为 UTM 坐标,适配后续分析。

场景 2:栅格数据批量运算

处理遥感影像、DEM 等栅格数据,比如:批量裁剪研究区的 Landsat / 哨兵影像,提取 NDVI 指数;对 DEM 数据进行坡度、坡向、地形起伏度提取,为地形分析提供基础;将多期栅格数据进行差值运算,分析生态指数的时空变化。

场景 3:空间插值与专题图制作

针对离散的监测点数据(如气温、降水、PM2.5 浓度、土壤养分含量),采用克里金、反距离加权(IDW)等方法进行空间插值,生成连续的空间分布栅格,再结合 Matplotlib 绘制专业的专题图,添加色标、图例、研究区边界,直接适配论文发表。

场景 4:空间统计与相关性分析

开展空间自相关分析,计算莫兰指数(Moran's I),判断研究区要素的空间集聚特征(高值集聚、低值集聚、随机分布);进行热点分析(Getis-Ord Gi*),识别热点区和冷点区;结合 Pandas 实现空间数据的属性统计与相关性分析,比如分析不同土地利用类型与生态指数的相关性。

场景 5:网络空间分析

针对城市道路、水系、交通网络等矢量数据,构建网络模型,求解最短路径、最优路径;分析节点中心性,识别网络中的关键节点(如城市交通枢纽、水系交汇点);评估网络的连通性,为城市规划、水系治理提供科学依据。

场景 6:多源数据融合分析

对接遥感、GIS、统计数据,实现多源数据融合,比如将遥感解译的土地利用数据与社会经济统计数据(人口、GDP)进行空间连接,分析不同土地利用类型的人口承载能力;将生态监测数据与地形数据结合,构建生态风险评价模型。

五、新手入门实操指南,快速上手不踩坑

很多小伙伴觉得 “编程太难,零基础学不会”,其实 Python GIS 空间分析对编程基础要求极低,只要掌握基础语法,结合实际需求边学边练,1-2 周就能搞定基础分析,以下入门技巧,帮大家少走弯路。

1. 环境搭建:一键配置,无需复杂操作

新手推荐使用Anaconda搭建 Python 环境,自带 Pandas、Numpy 等基础库,再通过 conda/pip 命令一键安装 Geopandas、GDAL、Matplotlib 等 GIS 相关库,无需手动配置环境变量,简单几步就能完成全套部署;也可使用 Jupyter Notebook 作为编程工具,支持代码分段运行、实时查看结果,方便调试和修改。

2. 学习思路:以用代学,结合实际需求

不要死记硬背语法和函数,而是结合自己的研究方向,从实际需求入手,比如 “需要裁剪研究区的矢量数据”,就针对性学习 Geopandas 的裁剪功能;“需要对降水数据做空间插值”,就学习 PyQGIS 的插值方法,边做边学,记忆更深刻,也能快速感受到 Python 的高效。

3. 资源利用:善用开源资料,高效解决问题

Python GIS 的开源资源极其丰富,遇到问题时,可通过 GitHub、Stack Overflow、CSDN、知乎等平台搜索解决方案;关注专业的 GIS 博客、公众号,学习大神的实战代码;也可参考 Geopandas、GDAL 的官方文档,掌握函数的详细用法,官方文档是最权威的学习资料。

4. 代码复用:封装函数,打造个人工具库

在实际操作中,将常用的功能(如批量裁剪、投影转换、空间插值)封装成自定义函数,保存为.py 文件,后续遇到相同需求时,直接调用函数即可,无需重复编写代码,逐步打造属于自己的 GIS 分析工具库,效率越用越高。

5. 搭配传统软件:取长补短,高效协作

Python 并非要完全替代 ArcGIS、QGIS 等传统 GIS 软件,而是与其搭配使用。比如可在 QGIS 中完成简单的空间数据预处理,再导出数据到 Python 中进行批量分析和建模;也可将 Python 的分析结果导入传统 GIS 软件中进行可视化和细节调整,取长补短,实现效率最大化。

六、实战代码

以下是 3 个高频使用的 GIS 空间分析实战代码案例,涵盖矢量数据裁剪、缓冲区分析、栅格 NDVI 提取,基于 Anaconda 环境配置,注释清晰,新手可直接复制运行,每段代码都标注了核心功能和操作步骤,方便理解与修改。

前置准备:环境安装:先打开 Anaconda Prompt(Windows)/ 终端(Mac/Linux),执行以下命令安装所需库:

# 安装核心GIS库(建议按顺序安装,避免依赖冲突)

conda install pandas numpy matplotlib -y

conda install geopandas -c conda-forge -y

conda install gdal rasterio -c conda-forge -y

conda install contextily -c conda-forge -y

案例 1:矢量数据裁剪(研究区边界裁剪水系数据)

功能说明:读取 SHP 格式的研究区边界和水系矢量数据,用研究区边界裁剪出区内的水系,输出裁剪后的新矢量文件,并可视化结果。

# 导入所需库

import geopandas as gpd

import matplotlib.pyplot as plt

import contextily as ctx

# ---------------------- 1. 读取矢量数据 ----------------------

# 替换为你的文件路径(建议使用绝对路径,如:D:/GIS_data/study_area.shp)

study_area_path = "你的研究区边界.shp"  # 研究区边界(面矢量)

water_path = "你的水系数据.shp"         # 待裁剪的水系数据(线矢量)

# 读取数据,Geopandas自动识别SHP文件的空间参考

study_area = gpd.read_file(study_area_path)

water = gpd.read_file(water_path)

# 检查并统一投影(关键!不同投影无法裁剪)

print("研究区投影:", study_area.crs)

print("水系数据投影:", water.crs)

if study_area.crs != water.crs:

    water = water.to_crs(study_area.crs)  # 将水系数据投影转换为研究区投影

# ---------------------- 2. 执行裁剪操作 ----------------------

# 使用研究区边界裁剪水系(keep_geom_type=True保留原始几何类型)

water_clipped = gpd.clip(water, study_area, keep_geom_type=True)

# ---------------------- 3. 保存裁剪结果 ----------------------

output_path = "裁剪后的水系数据.shp"

water_clipped.to_file(output_path, encoding="utf-8")  # 编码设为utf-8避免中文乱码

print(f"裁剪完成!结果已保存至:{output_path}")

# ---------------------- 4. 可视化结果 ----------------------

fig, ax = plt.subplots(figsize=(10, 8))

# 绘制研究区边界(浅灰色填充,黑色边框)

study_area.plot(ax=ax, facecolor="lightgray", edgecolor="black", linewidth=1.5)

# 绘制裁剪后的水系(蓝色)

water_clipped.plot(ax=ax, color="blue", linewidth=1)

# 添加底图(可选,需联网)

ctx.add_basemap(ax, crs=study_area.crs, source=ctx.providers.OpenStreetMap.Mapnik)

# 设置标题和坐标轴

ax.set_title("研究区水系裁剪结果", fontsize=14)

ax.axis("off")  # 隐藏坐标轴

# 保存图片(可选)

plt.savefig("水系裁剪结果图.png", dpi=300, bbox_inches="tight")

plt.show()

案例 2:矢量缓冲区分析(河流 500 米缓冲区)

功能说明:读取河流矢量数据,生成指定距离(500 米)的缓冲区,叠加研究区边界后裁剪出区内的缓冲区,输出结果并可视化。

import geopandas as gpd

import matplotlib.pyplot as plt

# ---------------------- 1. 读取数据 ----------------------

river_path = "你的河流数据.shp"       # 河流线矢量

study_area_path = "你的研究区边界.shp" # 研究区面矢量

river = gpd.read_file(river_path)

study_area = gpd.read_file(study_area_path)

# 统一投影(缓冲区分析需投影为平面坐标系,如UTM、高斯-克吕格)

# 若原始数据为WGS84(4326),建议转换为UTM投影(示例:32650,需根据研究区调整)

if river.crs == "EPSG:4326":

    river = river.to_crs("EPSG:32650")

    study_area = study_area.to_crs("EPSG:32650")

# ---------------------- 2. 生成缓冲区 ----------------------

buffer_distance = 500  # 缓冲区距离(单位:米,因投影为平面坐标系)

river_buffer = river.buffer(buffer_distance)

# 将缓冲区转换为GeoDataFrame(方便后续操作)

river_buffer_gdf = gpd.GeoDataFrame(geometry=river_buffer, crs=river.crs)

# ---------------------- 3. 裁剪缓冲区至研究区内 ---------------------

buffer_clipped = gpd.clip(river_buffer_gdf, study_area)

# ---------------------- 4. 保存结果 ----------------------

buffer_output_path = "河流500米缓冲区.shp"

buffer_clipped.to_file(buffer_output_path, encoding="utf-8")

print(f"缓冲区生成完成!结果已保存至:{buffer_output_path}")

# ---------------------- 5. 可视化 ----------------------

fig, ax = plt.subplots(figsize=(10, 8))

# 绘制研究区边界

study_area.plot(ax=ax, facecolor="none", edgecolor="black", linewidth=1.5)

# 绘制河流

river.plot(ax=ax, color="blue", linewidth=1.5, label="河流")

# 绘制缓冲区(半透明红色)

buffer_clipped.plot(ax=ax, facecolor="red", alpha=0.3, edgecolor="red", label="500米缓冲区")

# 添加图例和标题

ax.legend(loc="upper right")

ax.set_title("河流500米缓冲区分析结果", fontsize=14)

ax.axis("off")

# 保存图片

plt.savefig("缓冲区分析结果图.png", dpi=300, bbox_inches="tight")

plt.show()

案例 3:栅格数据处理(遥感影像 NDVI 提取)

功能说明:读取 Landsat / 哨兵 2 号等多波段遥感影像(TIFF 格式),提取近红外(NIR)和红波段(Red),计算 NDVI(归一化植被指数),输出 NDVI 栅格文件并可视化。

import rasterio

from rasterio.plot import show

import matplotlib.pyplot as plt

import numpy as np

# ---------------------- 1. 读取栅格数据 ----------------------

# 替换为你的遥感影像路径(需包含红波段和近红外波段)

raster_path = "你的遥感影像.tif"

with rasterio.open(raster_path) as src:

    # 读取波段(需根据影像调整波段索引!示例:Landsat8中,Red=4,NIR=5;哨兵2中,Red=4,NIR=8)

    red_band = src.read(4).astype(np.float32)   # 红波段

    nir_band = src.read(5).astype(np.float32)   # 近红外波段

    meta = src.meta  # 获取影像元数据(投影、分辨率等)

# ---------------------- 2. 计算NDVI ----------------------

# 避免除以0错误,设置极小值

np.seterr(divide="ignore", invalid="ignore")

ndvi = (nir_band - red_band) / (nir_band + red_band + 1e-8)

# 将异常值(如NaN、超出-1~1范围)替换为0

ndvi = np.where(np.isnan(ndvi), 0, ndvi)

ndvi = np.clip(ndvi, -1, 1)

# ---------------------- 3. 保存NDVI栅格 ----------------------

# 更新元数据(数据类型改为float32,波段数改为1)

meta.update(dtype=rasterio.float32, count=1)

ndvi_output_path = "NDVI结果.tif"

with rasterio.open(ndvi_output_path, "w", **meta) as dst:

    dst.write(ndvi, 1)

print(f"NDVI计算完成!结果已保存至:{ndvi_output_path}")

# ---------------------- 4. 可视化NDVI ----------------------

fig, ax = plt.subplots(figsize=(10, 8))

# 绘制NDVI,使用植被指数专用配色(绿-黄-红)

im = ax.imshow(ndvi, cmap="RdYlGn", vmin=-1, vmax=1)

# 添加颜色条

cbar = plt.colorbar(im, ax=ax, shrink=0.8)

cbar.set_label("NDVI值", fontsize=12)

# 设置标题和隐藏坐标轴

ax.set_title("研究区NDVI分布图", fontsize=14)

ax.axis("off")

# 保存图片

plt.savefig("NDVI可视化图.png", dpi=300, bbox_inches="tight")

plt.show()

七、关键使用说明

    路径替换:所有代码中"你的XXX数据.shp/tif"需替换为实际文件的绝对路径(如D:/GIS_data/river.shp),避免中文路径和空格,防止报错;

    波段索引调整:案例 3 中遥感影像的红波段 / 近红外波段索引需根据影像类型调整(如哨兵 2 号 Red=4,NIR=8;Landsat9 Red=4,NIR=5);

    投影问题:矢量分析前必须统一投影,若不知道研究区 UTM 投影代码,可在 QGIS 中查看数据的 EPSG 编码;

    中文乱码:保存 SHP 文件时指定encoding="utf-8",可避免属性表中文乱码。

    最新文章

    随机文章

    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-03-27 18:46:43 HTTP/2.0 GET : https://f.mffb.com.cn/a/481382.html
    2. 运行时间 : 0.173796s [ 吞吐率:5.75req/s ] 内存消耗:4,720.58kb 文件加载:140
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=a7b4d518e3778b8dbdd27563652fa71d
    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.000883s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000893s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000320s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000334s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000470s ]
    6. SELECT * FROM `set` [ RunTime:0.000190s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000555s ]
    8. SELECT * FROM `article` WHERE `id` = 481382 LIMIT 1 [ RunTime:0.000445s ]
    9. UPDATE `article` SET `lasttime` = 1774608404 WHERE `id` = 481382 [ RunTime:0.000862s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000211s ]
    11. SELECT * FROM `article` WHERE `id` < 481382 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000421s ]
    12. SELECT * FROM `article` WHERE `id` > 481382 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000363s ]
    13. SELECT * FROM `article` WHERE `id` < 481382 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001725s ]
    14. SELECT * FROM `article` WHERE `id` < 481382 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.014845s ]
    15. SELECT * FROM `article` WHERE `id` < 481382 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004991s ]
    0.177302s