ArcPy 批量投影转换:用 Python 统一文件夹内 Shapefile 坐标系
项目交付时,经常会收到来自不同部门的 Shapefile:有的是 WGS84,有的是 CGCS2000,有的甚至没有 prj 文件。手动一个个投影转换既慢又容易漏。ArcPy 可以把这个流程批量化,尤其适合整理数据目录和制作统一底库。
基本思路
批量投影转换的核心步骤是:遍历输入文件夹,识别每个 Shapefile,检查空间参考,调用 arcpy.management.Project 输出到目标目录。执行前建议创建独立输出文件夹,避免覆盖原始数据。
import arcpy
import os
in_dir = r"D:gisinput_shp"
out_dir = r"D:gisprojected_shp"
target_sr = arcpy.SpatialReference(4490) # CGCS2000
os.makedirs(out_dir, exist_ok=True)
arcpy.env.workspace = in_dir
arcpy.env.overwriteOutput = True
for shp in arcpy.ListFeatureClasses("*.shp"):
desc = arcpy.Describe(shp)
if desc.spatialReference.name == "Unknown":
print(f"跳过未知坐标系:{shp}")
continue
name = os.path.splitext(shp)[0]
out_path = os.path.join(out_dir, f"{name}_cgcs2000.shp")
arcpy.management.Project(shp, out_path, target_sr)
print(f"完成:{out_path}")
未知坐标系不要硬转
如果输入数据没有正确空间参考,不能直接 Project。应先根据数据来源、坐标数值和说明文档确认原始坐标系,再使用 Define Projection 定义。定义错了再转换,只会得到更“正式”的错误数据。
关于地理变换
当源坐标系和目标坐标系基准不同时,可能需要指定 geographic transformation。ArcGIS Pro 的投影工具会提示可用转换方法,ArcPy 中也可以传入对应参数。涉及测绘精度要求时,不要忽略这一步。
批处理建议
脚本最好输出日志,记录跳过了哪些未知坐标系文件、哪些转换失败。批量数据整理最怕“悄悄失败”,日志能让后续检查有据可查。
相关文章
-
ArcPy 字段批量计算:CalculateField 的常见用法和避坑 2026-05-30 13:49:31
-
GeoPandas空间分析效率低?geoplot可视化进阶教程(附:实战代码包) 2026-03-23 08:30:02
-
GeoPandas处理空间数据总出错?一文解决几何计算与坐标系难题!(附:Shp文件实战代码) 2026-03-23 08:30:02
-
GeoPandas空间连接总出错?连环追问排查坐标系与字段匹配问题(附:实战代码) 2026-03-23 08:30:02
-
GeoPandas处理地质斜坡数据太慢?geoslope专业模型转换实战教程(附Python脚本) 2026-03-23 08:30:02
-
GeoPandas空间叠加分析太慢?一文搞懂geopandas overlay参数优化(附:实战代码) 2026-03-23 08:30:02
-
GeoPandas教程学不会?geopandas中文文档详解坐标转换与空间连接! 2026-03-23 08:30:01
-
GeoPandas绘图样式太丑怎么办?GIS地图出图优化技巧(附:配色方案) 2026-03-23 08:30:01
-
GeoPandas教程入门卡在geopandas安装?Windows避坑指南与环境配置全解(含:依赖库清单) 2026-03-23 08:30:01
-
ArcPy点要素批量处理怎么做?arcpy.point坐标转换实战技巧(附:代码详解) 2026-03-22 08:30:02
-
ArcPy批量合并数据太慢?arcpy.append_management效率优化指南(附:参数详解) 2026-03-22 08:30:02
-
ArcPy教程:arcpy.env环境设置总出错?坐标系与工作空间详解(附:常见报错对照表) 2026-03-22 08:30:02
-
arcpy怎么用?ArcPy教程从入门到批量处理(附:GIS数据自动化脚本) 2026-03-22 08:30:02
-
ArcPy批量处理数据太慢?arcpython自动化脚本优化方案(含:效率提升技巧) 2026-03-22 08:30:02
-
ArcPy自动化制图效率低?arcpy使用手册附批量出图脚本与参数详解 2026-03-22 08:30:02
-
ArcPy数据处理效率低?arcpy.getcount_management()实战技巧(附:批量统计脚本) 2026-03-22 08:30:02
-
GIS基础知识点太多学不完?进阶必备核心技能清单(含:实战案例) 2026-03-22 08:30:02
-
数据裁剪总是出错?GeoPandas教程详解clip函数核心参数(附:空间索引优化技巧) 2026-03-22 08:30:02
-
GeoPandas教程:空间连接sjoin怎么用?(附:空间索引优化技巧) 2026-03-22 08:30:02
-
ArcPy脚本运行时如何实时追踪进度?arcpy.AddMessage用法详解(附:效率提升脚本) 2026-03-21 08:30:02
热门标签
最新资讯
2026-05-30 13:49:29
2026-05-30 13:49:27
2026-05-30 13:49:25
2026-05-30 13:49:25
2026-05-30 13:49:24
2026-05-30 13:49:22
2026-05-30 13:49:22
2026-05-30 13:49:21
2026-05-30 13:49:20
2026-05-30 13:49:19