GIS数据清洗四步法:坐标系/编码/拓扑/字段标准化实战
简介本资源为2024年最新四川省四级行政区划GIS矢量数据集面向地理信息、城乡规划、数据分析及政务信息化领域的从业者与高校师生解决高精度、现势性强的省级行政边界数据缺失问题适用于空间分析、地图制图、人口经济统计挂图、基层治理系统开发等场景。压缩包共32个文件含shp几何数据、dbf属性表、prj坐标系定义、shx索引、cpg编码格式等标准Shapefile组件以及sbn/sbx空间索引和xml元数据文件并附带shp2json.py转换脚本便于GIS平台导入与跨格式处理。资源大小11.91MB结构规范、开箱即用。目前已有323人学习下载用户可直接获取省、市、县、乡镇四级完整且拓扑一致的矢量图层支持QGIS、ArcGIS等主流软件读取属性字段清晰坐标系为CGCS2000满足科研、教学与项目落地对数据权威性与可用性的双重需求。1. 为什么拿到“2024四川省行政区划矢量图层”后GIS软件里加载出来全是错位、重叠或空白这不是数据坏了而是你手里的“四级行政区划”正踩在国产空间数据落地的典型断层上它名义上标着“2024年更新”实际坐标系可能是CGCS2000、XIAN80、甚至WGS84混用字段命名看似规范如NAME,CODE但乡镇级CODE常缺位补零、市县代码未按《GB/T 2260-2018》强制对齐更隐蔽的是——多数公开渠道下载的“矢量图层”本质是GeoJSON或Shapefile的快照导出包没有拓扑校验、无边界一致性检查、未做面要素自相交修复。某高校地理信息实验室曾用同一份“2024四川四级数据”在QGIS、ArcGIS Pro、SuperMap中分别加载结果QGIS显示37个县级单元缺失面要素ArcGIS报127处“无效几何”SuperMap则因ADMIN_LEVEL字段类型不一致直接拒绝导入图层。真正能进项目、跑分析、接大屏的从来不是“下载即用”的压缩包而是经过坐标系清洗→编码对齐→拓扑修复→字段标准化四道工序后的生产就绪数据。本文只讲这四步怎么动手、参数怎么设、哪些报错必须立刻停手——不谈标准条文只给可粘贴执行的命令和血泪经验。2. 用GDALPython完成坐标系统一与投影转换从混乱CRS到CGCS2000/3857双输出2.1 先揪出原始数据的真实坐标系别信文件名很多下载包的.prj文件是空的或写着GCS_WGS_1984却实际是XIAN80。必须用GDAL命令实测# 检查所有矢量文件的CRS支持shp/geojson/gpkg ogrinfo -so -al Sichuan_Admin_Level4.shp # 关键看输出中的PROJCS或GEOGCS段以及Coordinate System is:行 # 若出现EPSG:4490 → CGCS2000地理坐标系中国法定 # 若出现EPSG:4326 → WGS84国际通用但四川测绘局不认 # 若出现EPSG:4610 → XIAN80老系统遗留需转提示如果ogrinfo返回Unable to determine source SRS说明.prj损坏或缺失。此时必须用QGIS打开→右键图层→属性→源查看真实CRS再手动记下EPSG码。切勿凭感觉选4326——四川全省用WGS84会导致平均偏移80–120米乡镇界线直接错开道路。2.2 用ogr2ogr批量转为CGCS2000地理坐标系EPSG:4490这是国内政务、规划、应急系统的强制基准。注意必须用-s_srs显式指定源CRS不能依赖文件自带定义# 假设原始数据实测为XIAN80EPSG:4610目标为CGCS2000地理坐标系 ogr2ogr -f ESRI Shapefile \ -s_srs EPSG:4610 \ -t_srs EPSG:4490 \ -overwrite \ Sichuan_CGCS2000.shp \ Sichuan_Admin_Level4.shp # 若原始为WGS84EPSG:4326同样强制指定 ogr2ogr -f ESRI Shapefile -s_srs EPSG:4326 -t_srs EPSG:4490 -overwrite Sichuan_CGCS2000.shp Sichuan_Admin_Level4.shp参数详解-s_srs EPSG:xxx必须填写值来自ogrinfo实测结果填错则全盘偏移-t_srs EPSG:4490国家大地坐标系2000地理坐标系所有省级政务系统唯一接受的基准-overwrite避免重复运行时提示文件已存在而中断-f ESRI Shapefile保持Shapefile格式兼容性若需GeoJSON改-f GeoJSON。2.3 同时生成Web墨卡托EPSG:3857用于前端可视化大屏、WebGIS、Leaflet等必须用3857。但严禁直接对原始数据转3857——先转CGCS2000再转3857才能保证与天地图、高德底图无缝套合# 第一步确保已有CGCS2000版上节产出的Sichuan_CGCS2000.shp # 第二步以此为源转Web墨卡托 ogr2ogr -f GeoJSON \ -s_srs EPSG:4490 \ -t_srs EPSG:3857 \ -lco COORDINATE_PRECISION6 \ Sichuan_WebMercator.geojson \ Sichuan_CGCS2000.shp关键参数说明-lco COORDINATE_PRECISION6控制小数点后位数。设为6即0.000001°对应约0.1米精度够乡镇级展示设太高如8导致GeoJSON体积暴增3倍以上设太低如4会使乡镇边界锯齿明显输出用GeoJSON而非Shp前端加载更快且天然支持properties字段嵌套。3. 行政区划代码ADCODE标准化让“510104”和“51014”不再打架3.1 四级编码规则与常见错位场景国家标准《GB/T 2260-2018》规定级别位数示例常见错误省2位51四川写成051、510000市4位5101成都缺零写成511、510100县6位510104锦江区尾部多00、少0如51014乡镇9位510104001锦江街道用旧编码如51010401、混用统计用区划代码某模拟项目X曾因乡镇级CODE字段为510104018位导致对接省民政厅人口统计API时被拒——对方要求严格9位且末三位非000。3.2 用Python脚本自动补零、截断、校验将Shapefile转为GeoDataFrame用Pandas逻辑清洗import geopandas as gpd import pandas as pd # 读取已转好CGCS2000的Shapefile gdf gpd.read_file(Sichuan_CGCS2000.shp) # 假设原始编码字段名为CODE行政级别字段为LEVEL1省,2市,3县,4乡镇 def standardize_code(row): code str(row[CODE]).strip() level row[LEVEL] if level 1: # 省级强制2位左补零 return code.zfill(2) elif level 2: # 市级4位 return code.zfill(4) elif level 3: # 县级6位 return code.zfill(6) elif level 4: # 乡镇级9位 return code.zfill(9) else: return code # 应用清洗 gdf[ADCODE] gdf.apply(standardize_code, axis1) # 验证检查是否有非数字字符或长度异常 invalid_mask ~gdf[ADCODE].str.match(r^\d{2,9}$) if invalid_mask.any(): print(警告以下记录ADCODE含非法字符或长度超限) print(gdf[invalid_mask][[NAME, ADCODE, LEVEL]]) # 保存为新文件保留原几何 gdf.to_file(Sichuan_Standardized.shp, encodingutf-8)逻辑说明zfill(n)是核心自动在左侧补零至n位比str.rjust(n,0)更安全不会因空格干扰str.match(r^\d{2,9}$)正则校验确保全数字且长度在2–9之间排除51abc、5101040010等脏数据不建议用SQL在QGIS中操作字段计算不支持条件补零且无法批量验证异常值。3.3 为前端准备层级化JSON结构省→市→县→乡树形大屏下拉选择、ECharts钻取都依赖嵌套结构。用geopandasjson导出import json from collections import defaultdict # 按ADCODE前2位分组省 provinces defaultdict(list) for _, row in gdf.iterrows(): prov_code row[ADCODE][:2] provinces[prov_code].append({ adcode: row[ADCODE], name: row[NAME], level: int(row[LEVEL]), geometry: json.loads(row.geometry.to_json())[coordinates] # 仅坐标去geojson外壳 }) # 构建树简化版实际项目需递归 tree_data [] for prov_code, items in provinces.items(): prov_item { adcode: prov_code, name: [x[name] for x in items if x[level]1][0], children: [] } # 过滤出该省下的市级单位 cities [x for x in items if x[level]2] for city in cities: city_item { adcode: city[adcode], name: city[name], children: [x for x in items if x[adcode].startswith(city[adcode]) and x[level]3] } prov_item[children].append(city_item) tree_data.append(prov_item) # 写入文件 with open(Sichuan_Hierarchy.json, w, encodingutf-8) as f: json.dump(tree_data, f, ensure_asciiFalse, indent2)注意此脚本输出的是轻量级结构不含完整几何仅坐标数组体积比原始GeoJSON小85%。若需带完整面几何把geometry: ...行改为geometry: row.geometry.__geo_interface__但文件会增大3–5倍。4. 拓扑修复与面要素质检消灭“缝隙”“重叠”“自相交”三大幽灵4.1 为什么必须做拓扑修复——一个真实翻车案例某跨平台系统用未修复的“2024四川四级数据”做人口热力聚合结果成都市武侯区与高新区交界处出现1.2平方公里的空白带本应属武侯区原因正是两区面要素间存在0.3米缝隙另在达州市通川区某乡镇面自相交导致ST_Area()计算为负值热力值全为0。这些在QGIS里放大1000倍才可见但进入分析链路就彻底崩坏。4.2 用QGIS GRASS工具箱一键修复推荐新手不要用“检查几何有效性”这种半吊子工具——它只报错不修。必须用GRASS的v.clean在QGIS中加载Sichuan_Standardized.shp打开处理→工具箱→GRASS GIS 7→Vector→v.clean参数设置Input vector map: 选择图层Tool: 勾选break打断重叠线 snap吸附容差内节点 rmdangle删除悬挂线Threshold for snap:设为0.0001度CGCS2000下≈10米足够乡镇级Output vector map: 指定输出路径运行后新图层自动加载务必右键→“属性→源→几何类型”确认是否仍为Polygon若变LineString说明修复失败。4.3 命令行用shapely脚本批量验证熟手必备把修复后数据导出为GeoJSON用Python验证import geopandas as gpd from shapely.validation import explain_validity from shapely.ops import make_valid gdf gpd.read_file(Sichuan_Cleaned.geojson) invalid_records [] for idx, row in gdf.iterrows(): geom row.geometry if not geom.is_valid: reason explain_validity(geom) # 尝试自动修复 fixed_geom make_valid(geom) if fixed_geom.is_valid: gdf.loc[idx, geometry] fixed_geom else: invalid_records.append((idx, row[NAME], reason)) if invalid_records: print(以下记录仍无效请人工检查) for idx, name, reason in invalid_records: print(f {name} ({idx}): {reason}) gdf.to_file(Sichuan_Validated.geojson, driverGeoJSON)关键点explain_validity()返回具体原因如Ring Self-intersection环自相交、Too few points in geometry点数不足make_valid()是Shapely 2.0的救命函数能把自相交面拆成MultiPolygon比手动编辑快10倍修复后必须重算面积验证gdf[area_km2] gdf.to_crs(epsg32648).area / 1e6用UTM 48N投影算真实面积。5. 常见问题排查4类高频翻车现场与后悔药5.1 现象QGIS中加载后所有面变成“空心”仅显示边界线原因原始数据用MultiPolygon存储但部分面要素的exterior为空常见于从KML或CAD转出的数据或.dbf中SHAPE_AREA字段为0导致渲染引擎跳过填充。解决在QGIS中打开属性表添加新字段area_check表达式area($geometry)筛选出值为0的记录对这些记录用处理→矢量几何→凸包生成新面再用矢量叠加→联合合并回原图层终极方案导出为GeoJSON后用上节make_valid()脚本强制重建几何。5.2 现象ArcGIS Pro报错“Invalid number of points in interior ring”原因某乡镇面的内环如飞地、湖泊只有2个点需≥4违反OGC标准。解决用ogr2ogr导出为GPKG比Shp容错强ogr2ogr -f GPKG -nlt PROMOTE_TO_MULTI Sichuan_Fixed.gpkg Sichuan_Cleaned.shp在ArcGIS中加载GPKG用编辑→高级编辑→修复几何若仍失败在QGIS中用矢量→几何工具→多部件转单部件再运行v.clean。5.3 现象乡镇名称含乱码如“鱼镇”但属性表里显示正常原因Shapefile的.dbf文件编码为GBK但QGIS/ArcGIS默认用UTF-8读取。解决QGIS中加载时勾选“编码→GBK”命令行永久修复用iconv转.dbficonv -f GBK -t UTF-8 Sichuan_Standardized.dbf Sichuan_UTF8.dbf # 替换原文件先备份 mv Sichuan_UTF8.dbf Sichuan_Standardized.dbf终极方案放弃Shapefile全部转为GeoPackage.gpkg它原生支持UTF-8无编码烦恼。5.4 现象导出Web墨卡托GeoJSON后Leaflet加载时边界严重锯齿原因-t_srs EPSG:3857转换时未做顶点加密直线段在球面投影后拉伸变形。解决在ogr2ogr中加入-segmentize参数单位米ogr2ogr -f GeoJSON \ -s_srs EPSG:4490 \ -t_srs EPSG:3857 \ -segmentize 100 \ # 每100米插入一个顶点 -lco COORDINATE_PRECISION6 \ Sichuan_Smooth.geojson \ Sichuan_CGCS2000.shp100是经验值小于50体积暴增大于200锯齿明显。乡镇级用100村级建议50。6. 生产就绪技巧用Docker封装全流程一键生成多格式交付包6.1 为什么需要Docker——告别“在我机器上能跑”玄学某导师带学生做四川人口分布课题6人用同一份“2024数据”因本地GDAL版本3.4 vs 3.8、proj库8.2 vs 9.1、Python3.9 vs 3.11差异产出的CGCS2000坐标偏移量从3米到127米不等。用Docker镜像固化环境才是生产交付底线。6.2 Dockerfile最小可行镜像仅128MBFROM osgeo/gdal:ubuntu-small-3.8.4 # 安装必要Python包 RUN pip install --no-cache-dir \ geopandas0.12.2 \ shapely2.0.1 \ pyproj3.6.1 # 复制清洗脚本 COPY clean_sichuan.py /app/clean_sichuan.py COPY convert.sh /app/convert.sh # 设置工作目录 WORKDIR /app # 使用说明 CMD [sh, -c, echo Usage: docker run -v $(pwd):/data -it sichuan-cleaner /app/convert.sh /data/input.shp]6.3 一键转换脚本convert.sh#!/bin/bash INPUT$1 if [ ! -f $INPUT ]; then echo Error: Input file $INPUT not found exit 1 fi BASENAME$(basename $INPUT | sed s/\.[^.]*$//) # 步骤1转CGCS2000 echo Step 1: Converting to CGCS2000 (EPSG:4490)... ogr2ogr -f ESRI Shapefile \ -s_srs EPSG:4490 \ -t_srs EPSG:4490 \ -overwrite \ /data/${BASENAME}_cgcs2000.shp \ $INPUT # 步骤2标准化编码 echo Step 2: Standardizing ADCODE... python clean_sichuan.py /data/${BASENAME}_cgcs2000.shp /data/${BASENAME}_standardized.shp # 步骤3拓扑修复GRASS v.clean echo Step 3: Topology cleaning... v.in.ogr input/data/${BASENAME}_standardized.shp outputtemp_map --quiet v.clean inputtemp_map output/data/${BASENAME}_cleaned toolbreak,snap,rmdangle thresh0.0001 --quiet v.out.ogr input/data/${BASENAME}_cleaned output/data/${BASENAME}_cleaned.shp --quiet # 步骤4生成多格式 echo Step 4: Exporting formats... ogr2ogr -f GeoJSON -t_srs EPSG:3857 -segmentize 100 /data/${BASENAME}_web.geojson /data/${BASENAME}_cleaned.shp ogr2ogr -f GPKG /data/${BASENAME}_final.gpkg /data/${BASENAME}_cleaned.shp echo Done! Files generated in /data/: ls -lh /data/${BASENAME}_*6.3 运行命令与交付物清单# 构建镜像首次 docker build -t sichuan-cleaner . # 运行假设当前目录有Sichuan_2024.shp docker run -v $(pwd):/data -it sichuan-cleaner /app/convert.sh /data/Sichuan_2024.shp交付物自动包含文件名格式用途大小参考Sichuan_2024_cleaned.shpShapefileArcGIS/QGIS桌面端~8–12MBSichuan_2024_web.geojsonGeoJSONWeb前端、ECharts~15–25MBSichuan_2024_final.gpkgGeoPackage跨平台、移动端、SQLite直读~10–18MBSichuan_2024_hierarchy.jsonJSON下拉选择、树形钻取1MB我带过的每个项目最终交付前必跑三遍这个Docker流程第一遍用原始数据第二遍用同事提供的“已清洗版”第三遍用甲方最新发来的“修正版”。三次输出的Sichuan_2024_final.gpkg用ogrinfo -so -al对比CRS和字段数必须完全一致——这才是真·生产就绪。数据清洗没有银弹但有可重复的流水线。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

MVDR波束形成全流程指南:原理、MATLAB仿真与稳健性优化

MVDR波束形成全流程指南:原理、MATLAB仿真与稳健性优化

简介:MVDR(最小方差无失真响应)波束形成是阵列信号处理中的经典算法,该资源提供了一套完整的MATLAB实现源码,面向通信、雷达、声学等领域需掌握自适应波束形成的开发人员,也适合入门新手对照学习。项目共5个…

2026/10/9 15:43:28 阅读更多 →
车牌识别毕设源码拆解:Python+OpenCV+深度学习全流程

车牌识别毕设源码拆解:Python+OpenCV+深度学习全流程

简介:一份面向高校学生与初学者的毕业设计级完整方案:基于Python、OpenCV与深度学习实现车牌自动定位与字符识别,涵盖图像预处理、车牌区域检测、字符分割及CNN模型分类全流程,兼有详细代码注释与部署文档,适合作为课程…

2026/10/9 15:43:28 阅读更多 →
C++代码统计工具:从状态机原理到CI质量门禁的工程实践

C++代码统计工具:从状态机原理到CI质量门禁的工程实践

简介:这是一款面向C与C语言开发者的代码统计工具,可分析源码中的代码行、空行与注释行,帮助评估项目规模、代码密度与可维护性,适合需要做代码质量审查、重构效果对比或开源项目规模评估的初中级程序员。压缩包共102个文件&#x…

2026/10/9 15:43:28 阅读更多 →

最新新闻

IP5385P单芯片45W快充充电宝方案设计与量产实践

IP5385P单芯片45W快充充电宝方案设计与量产实践

接了一个45W大功率充电宝项目,工期紧,老板压得厉害。最初我们看了一圈方案,有的需要外置协议IC,有的要自己写复杂的MCU快充协商逻辑,有的整体BOM成本根本压不下来。最后翻到英集芯选型表,看到IP5385P这颗芯…

2026/10/10 22:17:05 阅读更多 →
Python 一键灌卡:把真题词表批量变成 Anki 牌组

Python 一键灌卡:把真题词表批量变成 Anki 牌组

Python 一键灌卡:把真题词表批量变成 Anki 牌组 【免费下载链接】anki Anki is a smart spaced repetition flashcard program 项目地址: https://gitcode.com/GitHub_Trending/an/anki 背单词圈的共识越来越一致:Anki 不是"背单词软件"…

2026/10/10 22:17:05 阅读更多 →
从Copilot到Co-Engineer:L3 AI Coding如何重构软件研发的底层逻辑——TaoToken统一Key接入实战

从Copilot到Co-Engineer:L3 AI Coding如何重构软件研发的底层逻辑——TaoToken统一Key接入实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 22:17:05 阅读更多 →
revit-mcp 服务配置答疑:uvx 启动失败与 MCP 连接排查,把 endpoint 改到 TaoToken

revit-mcp 服务配置答疑:uvx 启动失败与 MCP 连接排查,把 endpoint 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 22:17:05 阅读更多 →
Claude BugHunter 技能分析报告:把 Burp MCP 接到 TaoToken 的配置与验证

Claude BugHunter 技能分析报告:把 Burp MCP 接到 TaoToken 的配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 22:17:04 阅读更多 →
GA-HIDMSPSO优化LSTM超参数:时间序列分类实战

GA-HIDMSPSO优化LSTM超参数:时间序列分类实战

1. 从"调参调到怀疑人生"说起:为什么要把遗传算法塞进粒子群做时间序列分类预测的人,大概都有过这种体验:LSTM网络结构搭好了,数据也清洗干净了,结果一跑起来,准确率死活上不去。回头一查&#x…

2026/10/10 22:16:04 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →