免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 11496|回复: 184
收起左侧

[经验共享] ARCGIS模型构建器的简单应用 制作xls转shp工具

    [复制链接]

1

主题

1741

铜板

7

好友

技术员

Rank: 3Rank: 3

积分
66
QQ
发表于 2021-8-4 20:29 | 显示全部楼层 |阅读模式
本帖最后由 qwertyu167 于 2021-8-5 10:47 编辑

本来准备给公司发微信公众号上的,但是嫌我这篇写的太长了,我就另写了一篇python和模型构建器交互的,这篇就发这里好了。
先直接把这个工具分享出来吧
游客,如果您要查看本帖隐藏内容请回复


什么是模型构建器?
ARCGIS的模型构建器是一个简单易用的应用程序, 用户利用该功能可对数据处理流程进行可视化编程,将ArcToolbox中的工具和python脚本自由组合成为自定义工具。
模型构建器的优点:
对于GIS工作者而言,在ArcGIS中的很多工作往往不只用一个工具完成,往往是利用多个工具对数据进行一系列处理最后得到想要的数据。在这一过程中ArcGIS的模型构建器功能常常能够极大地减少用户的手动操作,避免用户将大量工作时间花费在逐个点选工具箱逐个进行处理的过程上,极大减少GIS工作者的工作时间,提升工作效率。
在工作过程中经常会遇到将含有坐标的excel的数据转换为shp,下面我们使用模型构建器构建一个模型,用来将含有十进制度坐标的excel表格转换为点要素类,投影到我们需要的坐标系,并按表格的名称列导出shp。
Excel模板图 十进制度坐标
1.png
1、 打开arcgis模型构建器
2.png

1、 我们需要先使用创建XY事件图层工具将excel文件转换为图层,再使用要素类至要素类工具将图层转换为要素。下面我们将这两个工具加入模型构建器。
将ArcToolbox中的工具加入模型通常采用以下两种方法:
1).在ArcToolbox工具栏 直接将工具拖入模型构建器窗口
3.png
2).在搜索栏搜索工具然后将搜索到的工具拖入模型构建器
4.png
1、 上面两个工具已经加入模型构建器,下面我们来设置参数并且将两个工具连接起来。
1) 参数的设置。
双击工具或者右键点击工具—打开,在这里我们可以看到工具和平常使用没有什么区别。我们可以将不经常修改的参数设置为常量,并且将需要改变的参数设置为模型参数,方便使用时修改。
5.png 6.png
为了方便调试,先填好参数                           。
注:低版本的arcgis只能使用xls格式的表格。
7.png
2) 工具与工具的连接
8.png
设置要素类至要素类工具的参数。
9.png

参数设置完成,先保存这个模型,试着运行一下。
10.png
11.png

模型参数的值可以在工具界面修改,如下图
12.png
1、Excel表格转点要素类已经完成,现在需要对要素进行定义投影和投影。重新编辑模型拖入定义投影、投影工具。设置点的坐标系与需要投影到的坐标系。
按实际需要设置定义投影和投影坐标系,设置为模型参数
按实际需要设置定义投影和投影坐标系,设置为模型参数
13.png
将工具按下图连接起来
14.png
点击运行整个模型。

运行结果
15.png

5、投影完成,现在需要对其进行迭代,并按字段名称对数据进行分组并输出shp。(如果不需要分组功能,就不需要添加迭代器了,只需直接添加一个要素类至要素类工具,xls转shp工具就完成了)

现在先新建一个模型,加入迭代器要素选择 ,添加要素类至要素类工具用来生成shp。

添加创建文件夹工具,用来创建保存shp的文件夹。加入仅模型工具中的解析路径,用来获取excel文件的路径。



16.png
注:excel文件需要两个解析路径才能获得我们想要的路径。比如这里"C:\Users\CY\Desktop\测试.xls\Sheet$"
第一次获得的是"C:\Users\CY\Desktop\测试.xls"
第一次获得的是"C:\Users\CY\Desktop"
17.png
行内变量:在模型构建器中,可通过以 “%” 将替换变量括起来的方式,用一个变量的内容替换另一变量。这种变量替换方式称为行内变量替换。
设置创建文件夹工具的参数
18.png
注:这里的%路径%为变量
设置迭代要素选择的参数,并将工具按下图连接起来
19.png
注:如果不设置按字段分组,arcgis将会自动按OID进行分组

设置要素类至要素类工具的参数,引用变量。
20.png
保存模型并关闭
6.将刚才保存的模型加入第一个模型中。
注:虽然一个模型只能使用一个迭代器,但可以使用此方法,间接使用多个。
21.png
重新连接参数后运行。
22.png
运行后的效果
23.png
为方便以后使用和查看,将下列参数设置为模型参数,然后点击自动布局,保存后关闭。
24.png
右键点击toolbox在属性里设置参数的位置,修改模型参数的名称,最后结果如下
完成后的自定义工具界面
25.png

下次使用时,设置参数后,点击确定,就能直接生成shp。



这样一个自定义的工具就做好了,使用十分方便。将保存的工具箱(.tbx)存在u盘,下次使用时只需要用安装了arcgis的电脑,添加工具箱,就可以使用了。







评分

参与人数 2威望 +20 铜板 +55 收起 理由
低薪小白白 + 5 感谢分享!
jimi21 + 20 + 50 感谢分享!

查看全部评分

1

主题

1741

铜板

7

好友

技术员

Rank: 3Rank: 3

积分
66
QQ
 楼主| 发表于 2021-8-7 22:11 | 显示全部楼层
import arcpy

# Get the feature class from the tool.
#
istr = arcpy.GetParameterAsText(0)
arcpy.AddMessage(istr)
if istr == "" or istr is None:
    arcpy.AddMessage("1")
    arcpy.SetParameterAsText(1, "True")
    arcpy.SetParameterAsText(2, "False")
else:
    arcpy.AddMessage("2")
    arcpy.SetParameterAsText(1, "False")
    arcpy.SetParameterAsText(2, "True")

脚本里的代码需要改一下
回复 支持 1 反对 0

使用道具 举报

1

主题

4374

铜板

59

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
368

地信专家组

发表于 2021-8-8 07:52 手机频道 | 显示全部楼层
学习学习,给楼主点赞
回复 支持 1 反对 0

使用道具 举报

141

主题

982万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
621916
发表于 2021-8-5 09:17 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

0

主题

2840

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
128
发表于 2021-8-5 09:23 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

0

主题

171

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
45
发表于 2021-8-5 11:25 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

338

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
20
发表于 2021-8-5 11:35 | 显示全部楼层
学到了,感谢分享!
回复 支持 反对

使用道具 举报

14

主题

13万

铜板

143

好友

VIP会员

mapgis

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
7583

精华勋章宣传勋章

QQ
发表于 2021-8-5 11:50 | 显示全部楼层
谢谢分享!
锄禾日当午,签到好辛苦!...
回复

使用道具 举报

0

主题

881

铜板

1

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
507
发表于 2021-8-5 12:32 | 显示全部楼层
谢谢楼主分享!
回复 支持 反对

使用道具 举报

0

主题

2万

铜板

10

好友

VIP会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
983

爱心勋章活跃勋章

发表于 2021-8-5 14:57 | 显示全部楼层
学习一下!!!!!!!!!!
回复

使用道具 举报

1145

主题

10万

铜板

2

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
21818

灌水勋章活跃勋章冰雪节勋章

QQ
发表于 2021-8-5 15:18 | 显示全部楼层
谢谢分享!谢谢分享!
加强科技支撑和引领  实现地质找矿新突破 。     
回复 支持 反对

使用道具 举报

0

主题

7964

铜板

6

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1048
发表于 2021-8-5 15:31 | 显示全部楼层
认真学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表