ArcGIS建模工具中字符串的坑

模型构建器中的字符串要手动加引号!!

一、系统环境

  • Windows 10 64bit(OS版本:1709)
  • ArcGIS 10.2 Desktop

二、任务目标

任务可以用如下图表述:


ArcGIS建模工具中字符串的坑_第1张图片
0.建模任务.png
  1. 有一些以Class_年份.tif格式命名的栅格图层
  2. 需要将这些栅格图层与斜坡单元矢量(该图层一直保持不变)处理后,结果也按年份命名为:Zonst_年份
    很简单的一个需求

三、使用建模工具搭建流程

ArcGIS主菜单【地理处理】-【模型构建器】,打开模型构建器对话框。

3.1 解析路径

(1)首先,需要将Class_2000.tif分解,将年份提取出来。可以使用解析路径工具。方法是:模型构建器对话框【插入】-【仅模型工具】-【解析路径】

解析路径工具并不是工具箱中的工具,而仅仅是建模工具中可用的工具。

(2) 然后,创建一个变量,作为模型的输入图层。这里选择栅格图层,因为待处理的数据是栅格图层。

(3)打开解析路径处理单元,选择刚才创建的变量,返回值选择name(结果是Class_2000)

过程如下图所示:


ArcGIS建模工具中字符串的坑_第2张图片
1.解析路径.gif

(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”值。 然后保存模型即可。


ArcGIS建模工具中字符串的坑_第3张图片
2.计算值.gif

3.3 添加地理处理工具:以表格显示分区统计

剩下的事情就好办了。添加【以表格显示分区统计】到建模器,
设置相关参数。记得在输出表中引用在【计算值】单元中得到的结果,引用方式是%变量名%。
具体操作如下:


3.地理处理.gif

你可能感兴趣的:(ArcGIS建模工具中字符串的坑)