70cf5381c5d7f11afca826bbde58b546.png

ArcGIS 是一款功能强大的软件,而 DeepSeek 作为一种新兴的人工智能工具,可以帮助我们更高效地创建 ArcGIS 工具,进而达到事半功倍的效果。本文将详细介绍如何利用 DeepSeek 创建属于自己的 ArcGIS 工具箱,即使是小白也能轻松上手。郑重声明,我也是小白,所以我能学会,我相信你也一定没问题!

【理 论】

▶ 1.需求

当我们在处理行政区划、土地利用等具有分类属性的空间数据时,经常会遇到这样的需求,这不前几天同事就像我提出了这样一个问题:需要按照某个字段值(如行政区名称、地类编码)将要素分割成独立文件,并希望自动归类到对应文件夹。传统"按属性分割"工具生成的要素文件会堆积在同一目录,后期整理费时费力。其实这个功能在ArcGIS Pro中的按属性分割工具已经得到优化,但是作为职场老窜窜,相信广大粉丝朋友都不爱用Pro,那本期咱就用ArcMap把这个问题解决咯。

▶ 2.思路

总体分为三个阶段:

阶段一:用DeepSeek生成核心代码;

阶段二:创建ArcGIS工具箱;

阶段三:工具部署与测试。

【实 操】

▶ 1.用DeepSeek生成核心代码

1. 打开DeepSeek官网/客户端,输入prompt(提示词):

"请用ArcPy编写Python脚本,实现以下功能:

- 输入要素类路径

- 指定分类字段

- 输出根目录下自动创建与字段值同名的文件夹

- 每个要素分类生成独立shp文件到对应文件夹

要求包含异常处理,并添加中文注释"

be0b02783dff581ed6ab9ea7824d8519.png

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工具箱")。

769fdda57731c1417df5c3fb62de28e8.png

2. 右键新建工具箱 → 添加 → 脚本,按步骤填写名称、标签、描述等信息。

- 名称:智能要素分割

- 标签:按字段分割并自动归类

- 描述:根据指定字段值自动分类存储要素

bab3594e2c0f47b1c5976deca947237b.png

▶ 3.工具部署与测试

1. 将DeepSeek生成的完整代码粘贴到脚本编辑器,将txt文件拓展名修改为.py,然后导入至刚刚创建的工具箱下的脚本。

2b2f081a27e2d0cda622f45df2e34b77.png

7c0a9b1c5f7e4d0192989d6806d231f3.png

a2adbbeea0b8d04a2a416c2dd8b9cb99.png

2. 脚本参数配置(关键步骤):

显示名称

数据类型

参数属性 

工作空间

工作空间

输入,必填

输入要素类

Feature Layer

输入,必填

分割字段

Field

从输入要素获取

输出文件夹

Folder

输入,必填

   (配置字段依赖:将"分类字段"的"获取自"设置为"输入要素类")

164f44b04278a40c68ef5ad8d1c27f12.png

3. 测试案例:

- 输入:某省县级行政区划.shp

- 字段选择:"市名"

- 输出目录查看自动生成的:

  ├─北京市

  │   北京市.shp

  ├─上海市

  │   上海市.shp

  └─...

这个步骤大家自己去试试看!

6d4424b7407a38a0616c1636b904f71f.png

▶技巧扩展

1. 格式扩展:修改代码中的输出格式(如改为File Geodatabase)

2. 批量处理:在工具箱中添加迭代器实现多文件批量处理

3. 进度显示:在代码中添加arcpy.SetProgressor()实现进度条

4. 异常强化:添加字段值空值检测、路径合法性校验等

5. 提示词:"为ArcGIS编写实现【具体功能】的Python工具,要求包含【具体参数】,处理【数据类型】,并考虑【特殊需求】"

【结 语】

通过DeepSeek与ArcGIS的有机结合,即便是编程零基础的用户,也能在1小时内创建出专业级的地理处理工具。这种"需求描述→代码生成→工具封装"的新范式,正在彻底改变传统GIS工作流。建议各位小伙伴尝试将自己的业务需求转化为工具,早日实现效率自由!

往期精彩推荐:

地形图制作

交通可达性分析

设施服务区分析

人口重心迁移地图

ArcGIS制图之桂林山水

ArcGIS调用在线影像底图

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐