Modelbuilder进阶教程

By 李远祥

Modelbuilder 进阶1 自定义变量

参数是用来交互操作的,因此,参数具备非常大的灵活性,包括参数的定义和调用。

除了工具里面的参数之外,还可以通过自定义变量,自定义变量可以非常灵活的在工具的参数中调用。

变量包括了ArcMap大部分对象和数据,如文档、图层、数据类型、字段等,也包含了其他通用变量,如字符串、数值等

变量的调用一般使用%%括住变量名称,可以混合在参数中使用。

下面例子中使用一个行政代码区创建地理数据库,给字符串变量重命名为【行政代码】,在参数中使用了字符串的组合

模型构建器进阶2-前提条件

前提条件是工具在执行前首先检查的条件,如果条件满足,可以执行工具;不满足,则创建这些前提条件。

前提条件一般用在没有前后关系的操作,不同于前后参数;

另一方面,在没有前提条件的设置下,arcgis的某些操作也会执行,但约束性不强

前提条件可以很好的强制执行工具调用前的一些基本操作。

例子中使用了创建固定的目录作为前提条件,这样,可以限制在没有对应目录的情况下执行工具。

前提条件也可以用作异步操作

任何变量都可用作工具执行的前提条件,并且任何工具都可以有多个前提条件。

该例子是先检查是否存在对应的文件夹,如果没有,则创建目录,并在目录中创建符号命名规则的地理数据库。

模型构建器进阶3-迭代器

迭代是指以一定的自动化程度多次重复某个过程,通常又称为循环。迭代很重要,因为自动重复任务会节省执行这项任务所需的时间和精力。在"模型构建器"中进行迭代时,可以在每次迭代中使用不同的设置和数据来反复执行同一个过程。"模型构建器"中的迭代操作还具有灵活性,用户可以迭代整个模型,或只是重复执行单个工具或过程。

基本上自动化的操作都需要使用迭代器去构建模型,迭代器就是循环操作

下面的例子是利用行政区划的shapefile 数据,分别创建所有县的目录,并单独将县的边界到处到目录中

For 循环,执行多个操作。

使用迭代器的注意事项

  • 同一个模型里面只能使用一次迭代器;如果需要多次迭代,可以将带迭代器的模型加载到另一模型再进行迭代
  • 迭代器中没有针对数据本身的条件选择功能,这些条件设置一般可以在系统工具中进行设置(如筛选、过滤等)
  • 迭代器的类型有限,但巧妙利用迭代器能够高效率的解决问题。

模型构建器进阶4-行内变量

在模型构建器中,可通过以百分号 (%) 将替换变量括起来的方式,用一个变量的内容替换另一变量。这种变量替换方式称为行内变量替换

该例子中创建的地理数据是一个输出变量,但其使用了行政代码这个变量进行组合替换,则这个变量就是行内变量

  • 行内变量可分为两类:
    • 模型变量 - 模型中的任何变量:%variable name%。
    • 系统变量 - 模型构建器中包含两个系统变量:表示变量列表编号的 %i% 和表示模型迭代次数的 %n%。
  • 行内变量的使用规则
    • 变量名称使用百分号 (%) 括起。
    • 变量名称中允许存在空格。
    • 替换不区分大小写。Initial Value 和 initial value 是等同的。
    • 执行模型时,将按以下顺序确定和使用行内变量:
    • 模型变量。
    • 模型环境设置。
    • 系统变量(%i% 和 %n%)。
    • 父模型中的变量。如果当前运行的模型是一个子模型,则将一并搜索其父模型的变量。

模型构建器进阶6-仅模型工具

  • 仅模型工具仅用于"模型构建器"中。其中的有些工具可用来控制处理流程,而其他工具则是些简单的支持工具。
  • 模型构建器只提供7种仅模型工具
  • 仅模型工具更像编程语言里面的条件控制、字符分析等方法和函数
  • 仅模型工具可以用于模型运行过程中的计算和判断

例如:解析路径 工具,可以很好的反映数据的各层路径

模型构建器进阶5-工具帮助

在工具中加入适当的说明是十分有必要,方便模型的使用

模型的说明可以ArcCatalog中使用右键【项目描述】进行设置

Modelbuilder进阶教程相关推荐

  1. javascript进阶教程第一章案例实战

    javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了"删除& ...

  2. JSP WEB开发入门基础到高手进阶教程002

    JSP WEB开发入门基础到高手进阶教程 -------开发入门 JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript. ...

  3. duilib进阶教程 -- 在MFC中使用duilib (1)

    由于入门教程的反响还不错,因此Alberl就以直播的形式来写<进阶教程>啦,本教程的前提: 1.请先阅读<仿迅雷播放器教程> 2.要有一定的duilib基础,如果还没,请先阅读 ...

  4. 爬虫进阶教程:极验(GEETEST)验证码破解教程

    原文链接及原作者:爬虫进阶教程:极验(GEETEST)验证码破解教程 | Jack Cui 一.前言 爬虫最大的敌人之一是什么?没错,验证码![Geetest]作为提供验证码服务的行家,市场占有率还是 ...

  5. 《Web前端开发精品课 HTML与CSS进阶教程》——1.4 id和class

    本节书摘来自异步社区<Web前端开发精品课 HTML与CSS进阶教程>一书中的第1章,第1.4节,作者: 莫振杰 更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  6. STM32 进阶教程 20 - 串口+DMA实现OneWire总线

    前言 One-wire总线使用一根并联总线完成对于多个设备的访问,通过上拉的OD门实现多设备的读写操作,通过ID区别设备,通过CRC5完成数据校验.常见对于one-wire总线的操作代码主要使用包含基 ...

  7. STM32 进阶教程 19 - IQmath数学库的使用

    前言 STM32 M3 系列是不带浮点运算单元的,小数运算都是采用定点转浮点试式实现的,本节给大家介绍一个很好用的定点转浮点数学运算库,IQmath是德州仪器 (TI) 的一个高度优化的高精度数学函数 ...

  8. STM32 进阶教程 18 – ADC间断模式

    前言 STM32 的ADC拥有连续扫描模式,也有间断模式,间断模式较扫描模式需要更多的触发事件才能完成所有的通道转换操作,在实际工程应用中,可以利用间断模式实现一些特殊应用.关于间断模式,在STM32 ...

  9. STM32 进阶教程 17 - ADC注入通道

    前言 STM32 的ADC的一个强大功能是支持触发注入功能,在103中每个ADC模块支持4个注入通道,每个注入通道具有独立的结果突存器,注入通道具有较规划通道更高的优先级,在实际工程应用中,注入通道更 ...

最新文章

  1. 信号、系统与滤波器设计(matlab)
  2. Unsupported major.minor version 51.0解决办法
  3. taskdef class org.apache.catalina.ant.InstallTask cannot be found
  4. DataGirdView 编辑项时的验证
  5. 地图统计_博客 城市访问量统计并且通过Echarts+百度地图展示
  6. 【BZOJ2324】营救皮卡丘,费用流
  7. Consider renaming one of the beans or enabling overriding by setting
  8. 几个大厂及 RCE漏洞二三事
  9. NetSuite ERP软件系统特点介绍!
  10. php的toast,Windows通知服务:401尝试在PHP中创建Toast通知时无效令牌
  11. SQOOP 基础及安装
  12. (转)AIX rootvg 镜像创建与磁盘更换
  13. JavaScript网页特效---对联广告,网站对联广告
  14. 从海报视觉到网页设计
  15. 谈谈我对《ThoughtWorks文集》中多语言开发部分的看法
  16. WPF中的MVVM模式
  17. WINDWOS XP应用大全
  18. 某电商网站的数据库设计(6)——创建查询销售数据的视图
  19. 对话哈希未来贾英昊:资产上链的第一性原理 |链捕手
  20. 阿里云如何绑定域名(阿里云域名如何绑定ip)

热门文章

  1. 普通话测试第四题评分标准_2017年普通话考试-评分细则
  2. shell中encoding=utf-8_如何在Linux中将文件转换为UTF-8编码
  3. 洛谷——P1909 [NOIP2016 普及组] 买铅笔
  4. 实验2-4-4 求阶乘序列前N项和 (C语言)
  5. Win10+VS2017+Ceres-Solver-1.13.0配置
  6. python怎么爬取知乎回答并制作词云_爬虫|爬取微博动态
  7. Halcon算法矫正镜头畸变
  8. 通过调用外部exe的方法实现c#调用java
  9. Widows下TortoiseGit登录密码错误
  10. SESSION 与 COOKIE的区别是