模型构建器中的字符串要手动加引号!!
一、系统环境
- Windows 10 64bit(OS版本:1709)
- ArcGIS 10.2 Desktop
二、任务目标
任务可以用如下图表述:
- 有一些以Class_年份.tif格式命名的栅格图层
- 需要将这些栅格图层与斜坡单元矢量(该图层一直保持不变)处理后,结果也按年份命名为:Zonst_年份
很简单的一个需求
三、使用建模工具搭建流程
ArcGIS主菜单【地理处理】-【模型构建器】,打开模型构建器对话框。
3.1 解析路径
(1)首先,需要将Class_2000.tif分解,将年份提取出来。可以使用解析路径工具。方法是:模型构建器对话框【插入】-【仅模型工具】-【解析路径】
解析路径工具并不是工具箱中的工具,而仅仅是建模工具中可用的工具。
(2) 然后,创建一个变量,作为模型的输入图层。这里选择栅格图层,因为待处理的数据是栅格图层。
(3)打开解析路径处理单元,选择刚才创建的变量,返回值选择name(结果是Class_2000)
过程如下图所示:
(4)解析路径的结果是可以作为行内变量使用的,即可以使用%变量名%的形式引用。所以,我们将解析路径的结果重命名为Value。
3.2 计算值
这个工具,是用来对某些变量作一些计算的。解析路径得到结果Class_2000后,其实只需要后面的:2000
所以,可以使用字符串切片功能,返回后面4个字符串。即s[-4:]
(1)模型构建器对话框【插入】-【仅模型工具】-【计算值】
(2)打开计算值处理单元,在代码块中输入:
def getYear(s):
return s[-4:]
(3)在表达式中输入:getYear("%Value%")
, 注意,%Value%的值是Class_2000,为了转变为字符串,必须在它外面再加一层引号,坑就在这里!!!!,字符串居然还要自己加引号,我也是醉了!
(4)单击确定。由于提取年份数值的操作是必须有解析路径的结果,即必须现有Value值,才能提取后面4个字符嘛!所以,在“计算值”处理单元上右键单击,【属性】-【前提条件】,勾选“Value”值。 然后保存模型即可。
3.3 添加地理处理工具:以表格显示分区统计
剩下的事情就好办了。添加【以表格显示分区统计】到建模器,
设置相关参数。记得在输出表中引用在【计算值】单元中得到的结果,引用方式是%变量名%。
具体操作如下: