
【干货】DeepSeek + ArcGIS:小白也能创建自己的工具箱——以“按属性分割并自动归类“工具为例...
ArcGIS 是一款功能强大的软件,而 DeepSeek 作为一种新兴的人工智能工具,可以帮助我们更高效地创建 ArcGIS 工具,进而达到事半功倍的效果。本文将详细介绍如何利用 DeepSeek 创建属于自己的 ArcGIS 工具箱,即使是小白也能轻松上手。郑重声明,我也是小白,所以我能学会,我相信你也一定没问题!【理 论】▶ 1.需求当我们在处理行政区划、土地利用等具有分类属性的空间数据时,经
ArcGIS 是一款功能强大的软件,而 DeepSeek 作为一种新兴的人工智能工具,可以帮助我们更高效地创建 ArcGIS 工具,进而达到事半功倍的效果。本文将详细介绍如何利用 DeepSeek 创建属于自己的 ArcGIS 工具箱,即使是小白也能轻松上手。郑重声明,我也是小白,所以我能学会,我相信你也一定没问题!
【理 论】
▶ 1.需求
当我们在处理行政区划、土地利用等具有分类属性的空间数据时,经常会遇到这样的需求,这不前几天同事就像我提出了这样一个问题:需要按照某个字段值(如行政区名称、地类编码)将要素分割成独立文件,并希望自动归类到对应文件夹。传统"按属性分割"工具生成的要素文件会堆积在同一目录,后期整理费时费力。其实这个功能在ArcGIS Pro中的按属性分割工具已经得到优化,但是作为职场老窜窜,相信广大粉丝朋友都不爱用Pro,那本期咱就用ArcMap把这个问题解决咯。
▶ 2.思路
总体分为三个阶段:
阶段一:用DeepSeek生成核心代码;
阶段二:创建ArcGIS工具箱;
阶段三:工具部署与测试。
【实 操】
▶ 1.用DeepSeek生成核心代码
1. 打开DeepSeek官网/客户端,输入prompt(提示词):
"请用ArcPy编写Python脚本,实现以下功能:
- 输入要素类路径
- 指定分类字段
- 输出根目录下自动创建与字段值同名的文件夹
- 每个要素分类生成独立shp文件到对应文件夹
要求包含异常处理,并添加中文注释"
2. 获取优化后的核心代码(关键代码段):
import sysreload(sys)sys.setdefaultencoding('utf-8')import arcpyimport osarcpy.env.workspace = arcpy.GetParameterAsText(0)input_fc = arcpy.GetParameterAsText(1)split_field = arcpy.GetParameterAsText(2)output_folder = arcpy.GetParameterAsText(3)if not os.path.exists(output_folder): os.makedirs(output_folder)unique_values = []with arcpy.da.SearchCursor(input_fc, split_field) as cursor: for row in cursor: if row[0] not in unique_values: unique_values.append(row[0])for value in unique_values: value_folder = os.path.join(output_folder, str(value)) if not os.path.exists(value_folder): os.makedirs(value_folder) output_fc = os.path.join(value_folder, "{}.shp".format(str(value))) query = "{0} = '{1}'".format(arcpy.AddFieldDelimiters(input_fc, split_field), value) arcpy.Select_analysis(input_fc, output_fc, query) arcpy.AddMessage("成功分割并保存 {0} 到 {1}".format(value, output_fc))
注:可能需要迭代多次,让DeepSeek不断优化代码才能运行成功,也有一定几率一次性运行成功,反正不用自己修改代码,只需不断地将报错信息反馈给DeepSeek就行了。我们从不生产代码,我们只做代码的搬运工!
▶ 2.创建ArcGIS工具箱
1. 打开ArcCatalog → 右键文件夹 → 新建 → 工具箱(命名如"凌晨GIS工具箱")。
2. 右键新建工具箱 → 添加 → 脚本,按步骤填写名称、标签、描述等信息。
- 名称:智能要素分割
- 标签:按字段分割并自动归类
- 描述:根据指定字段值自动分类存储要素
▶ 3.工具部署与测试
1. 将DeepSeek生成的完整代码粘贴到脚本编辑器,将txt文件拓展名修改为.py,然后导入至刚刚创建的工具箱下的脚本。
| |
2. 脚本参数配置(关键步骤):
显示名称 | 数据类型 | 参数属性 |
工作空间 | 工作空间 | 输入,必填 |
输入要素类 | Feature Layer | 输入,必填 |
分割字段 | Field | 从输入要素获取 |
输出文件夹 | Folder | 输入,必填 |
(配置字段依赖:将"分类字段"的"获取自"设置为"输入要素类")
3. 测试案例:
- 输入:某省县级行政区划.shp
- 字段选择:"市名"
- 输出目录查看自动生成的:
├─北京市
│ 北京市.shp
├─上海市
│ 上海市.shp
└─...
这个步骤大家自己去试试看!
▶技巧扩展
1. 格式扩展:修改代码中的输出格式(如改为File Geodatabase)
2. 批量处理:在工具箱中添加迭代器实现多文件批量处理
3. 进度显示:在代码中添加arcpy.SetProgressor()实现进度条
4. 异常强化:添加字段值空值检测、路径合法性校验等
5. 提示词:"为ArcGIS编写实现【具体功能】的Python工具,要求包含【具体参数】,处理【数据类型】,并考虑【特殊需求】"
【结 语】
通过DeepSeek与ArcGIS的有机结合,即便是编程零基础的用户,也能在1小时内创建出专业级的地理处理工具。这种"需求描述→代码生成→工具封装"的新范式,正在彻底改变传统GIS工作流。建议各位小伙伴尝试将自己的业务需求转化为工具,早日实现效率自由!
往期精彩推荐:
更多推荐
所有评论(0)