打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【转载】Arcgis自动生成地球化学系列图-批量克里金
userphoto

2022.07.09 江苏

关注

GISer last 2022-07-06 18:14 发表于安徽

以下文章来源于地质掘墓人 ,作者张金龙1992

地质掘墓人你的气质里,藏在你走过的路,读过的书和爱过的人。

一、需求

最近有小伙伴提个需求

能不能用Arcgis批量生成地球化学图

什么意思呢

就是他给我一个excel表格(图1)

实验室返回的数据

需要做成一系列等值线图(图2)

因为出图结果“长”得都差不多

就是改变元素而已

想要个批量出图的功能

1元素数据
2系列图

经过试验操作

我给了他三种批量成图方法

常规方法、模型构建器方法、Arcpy脚本方法

下面详细展开

二、思路

首先介绍常规方法

第一步要把表格数据转成点要素(图1)

然后在工具箱插值分析中找到克里金法(图2)

由于克里金插值法

具有产生预测表面的能力

而且能够对预测的确定性或准确性提供某种度量

讲人话,就是它的参数很多,功能强大

实际应用中要根据需要及数据特点赋参数值

至于其他操作很简单,不作重点介绍

1Arcgis添加XY数据
2克里金插值方法

首先什么是模型构建器

它是用来创建、编辑和管理模型的应用程序

是将一系列地理处理工具串联在一起的工作流

它将其中一个工具的输出作为,另一个工具的输入使用起来

讲人话,就是把我们的操作流程固定下来

给它个数据,让他自己跑程序

几乎不需要自己写代码

本例模型构建器主体功能为克里金法(图1)

克里金是处理不同列的(Z字段)

需要迭代列,而不是迭代行数据(图2)

由于模型构建器的迭代器主要是迭代对象

如文件对象,要素类对象,行对象,要素对象等

而不同字段属于对象的结构

故不能直接用,需要迂回操作

我的办法,将excel点数据生成系列点文件(图3)

然后再插入迭代器,迭代要素类(图4)

生成系列图,最后根据样式生成系列图集

1克里金
2克里金循环列

3系列点文件
4迭代要素类

什么是脚本

脚本(Script)是一种纯文本保存的程序

是批处理文件的延伸

而ArcPy是一个Python站点包(site package)

通过Python执行地理数据分析、数据转换

数据管理和地图的自动化

讲人话,脚本就是自己编写自己想要的功能

而形成工具使用

写脚本也不麻烦

在桌面新建个文本文件即可

本次需求以面向过程为思想,需要用做三个事

第一个事:excel转点要素,写成.py文件

第二个事:遍历所有元素批量克里金,写成.py文件

第三个事:根据模板遍历所有元素,写成.py文件

再分别设置参数,配置脚本工具

以第一个事为例

脚本操作,先写代码(图1)

然后根据需要设置三个参数

打开脚本工具(图2)

完成excel转点要素操作

1python脚本
2脚本工具

二、操作

(一)模型构建器

1.excel转多个点要素

提供两种办法

方法一:多个工作表分别导入

将插值列统一修改为“Z”字段

1整理excel
2多个表分别导入

方法二:导入总表后,分别导出

然后再删除无关字段

统一修改为“Z”字段

1分别导出2删除字段

2.设置模型构建器

在Arccatalogue目录下,新建工具箱(图1)

新建模型,打开模型,插入迭代器

选择要素类,双击迭代要素类(图2)

工作空间或者要素数据集(图3)

选择待处理文件夹(上一步所有shp文件夹)

并将其设置成模型参数(图4)

设置模型参数方法:

在“批量出图”上,单击鼠标右键

选择“模型参数”(图4),设置完成后

“批量出图”右上角多一个“P”表示已设置成功

1新建工具箱
2迭代器

3迭代要素4设置模型参数

然后搜索“克里金法”

单击鼠标左键不放,拖拽到模型构建器内

双击克里金法(图1)

在输出表面栅格输入

%工作空间%\%名称%(图2)

(为什么不用绝对路径比如c\users\desktop

因为两个%内部可以放变量

也是根据需要自己定,让这个程序更灵活

创建结果输出变量

也就是上面两个%里的“工作空间”

方法:在模型菜单“插入”下选择“创建变量”

选择“工作空间”变量类型(图3)

插入“工作空间”后,将其配置为模型参数

方法:在“工作空间”单击鼠标右键

选择“模型参数”(图4),设置完成后

“工作空间”右上角多一个“P”表示已设置成功

1克里金法
2配置参数

3插入参数
4设置模型参数

所有设置完成后

关闭模型编辑器,更改保存(图1)

双击模型工具,添加参数(图2)

执行模型工具(图3)

执行结果(图4)

1关闭模型编辑器2添加模型参数

2执行模型4执行结果

将结果添加到Arcgis数据视图

发现处理后的图形是形的

(处理范围是所有点的范围)也不太完美

接下来在添加三个参数

处理范围、保存分辨率和掩膜

①.添加处理范围并设置参数方法:

单击鼠标左键克里金法

选择获取参数-从环境-处理范围-范围(图1)

在“范围”上右键,选择为模型参数

②.添加分辨率并设置参数方法:

单击鼠标左键“克里金法

选择获取参数-从环境-栅格分析-像元大小(图2)

在“像元大小”上右键,选择模型参数

③.掩膜并设置参数方法:

单击鼠标左键“克里金法

选择获取参数-从环境-栅格分析-掩膜(图3)

在“掩膜”上右键,选择模型参数

在模型工具,单击右键,选择属性

调整参数顺序(图4),保存


1处理范围2像元大小

3设置掩膜4调整参数顺序

双击模型工具并添加需要参数(图1)

执行模型工具,结果如图所示(图2)

图形显示是掩模后的,分辨率50

此时结果是我们想要的

1执行模型工具2执行结果

3.设置输出模板

切换布局视图

在布局视图设置统一输出样式(图1)

分别添加图名、比例尺、指北针、图例等(图2)

这部分不作重点,不多说

1选择色带
2设置图名等

4.所有元素输出一遍

统一出图样式方法:

做其他元素时,选择导入符号系统

选择第一次配置的(Al2O3)图层色带样式(图1)

同理分别设置所有元素(图2)

至此批量制图结束

1导入符号2其他元素图

方法评价:

模型构建器方法

不需要编程,简单的配置即可

能解决批量处理元素的克里金插值法

但是有条件限制(迭代器不能迭代列)

为能迭代每一个元素

我把每列元素转成点文件

虽然解决了迭代问题,也解决了克里金问题

但毕竟还是要操作好多列

而且每个元素输出也要单独修改

还是有点麻烦

为避免做重复性工作

也就有下面的的Arcpy脚本方法

)Arcpy脚本

网上也类似代码

参考文章

《ArcPy读取Excel多时序数据、批量反距离加权IDW插值与批量掩膜

网址:https://baijiahao.baidu.com/s?id=1733494862361369132

不过不是克里金方法

而且也不是遍历每一列数据

于是对前人代码进行修改和自定义功能

最终达成目的

也分为三个步骤进行说明

1.excel转点要素.py

在桌面新建文本文档

复制以下代码

另存为python文件(图1)

设置为脚本工具方法:

在工具箱下右键添加脚本(图2)

设置标签为“Excel转shp”(图3)

单击下一步,导入脚本

选择上面另存的python文件(图4)

接下来为脚本设置参数名称及数据类型(图5)

最后双击脚本工具

添加自定义参数(图6)

1写脚本文件
2新建脚本工具

3设置名称
4导入脚本

5调整参数6执行脚本工具

执行脚本工具

详细操作见下面动图

2.批量克里金.py

同上一个操作

在桌面新建文本文档

复制以下代码

另存为python文件(图1)

在工具箱下右键添加脚本(图2)

设置标签为“批量克里金”(图3)

单击下一步,导入脚本

选择上面另存的python文件(图4)

为脚本设置参数名称及数据类型(图5)

最后自定义参数,执行脚本工具(图6)

1写脚本文件
2新建脚本工具

3设置名称
4导入脚本

5调整参数6执行脚本工具

详细操作见下面动图

3.根据模板批量修改样式.py

同上一个操作

在桌面新建文本文档

复制以下代码

另存为python文件(图1)

在工具箱下右键添加脚本(图2)

设置标签为“根据模板批量出图”(图3)

单击下一步,导入脚本

选择上面另存的python文件(图4)

为脚本设置参数名称及数据类型(图5)

最后自定义参数,执行脚本工具(图6)

1写脚本文件
2新建脚本工具

3设置名称
4导入脚本

5调整参数6执行脚本工具

详细操作见下面动图

Arcpy脚本工具方法

需要注意的点很多

为方便理解,贴出录制视频

供大家学习

47:14

最后做个总结

平时工作遇到需要批量处理的事情

要么选择模型构建器,要么用Python

模型构建器相对来说简单

写这篇文章的时候,我直接建的

几乎没有调试,所有步骤及结果一次通过

而Python方法相对复杂些

上文三个步骤第一个和第三个网上有类似模块

但功能结果都不一样,需要修改

第二个批量克里金.py是我自己写的

总体来说Python方法更方便,也更灵活

最终实现了小伙伴需求,很开心

确定

  • 不看此公众号

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何在ArcGIS for Desktop中实现批量任务 | kikita & Maps
【ArcGIS for Server】制作并发布GP服务
使用sqlmap绕过过滤
搜罗全网!ArcGIS二次开发Python(arcpy)指南(七):你也可以制作ArcGIS工具箱
【技术】如何利用ArcGIS模型构建器批量将shp转为excel表格?
深度学习知识库精品:TensorFlow文本摘要生成
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服