ArcGIS model builder 输出文件名处理

在ArcGIS中使用model builder批处理文件时,由于原文件为.tif格式的栅格文件,这样输出文件以“%NAME%”引用命名时,就会变成**.tif.**,请问如何去掉中间的“.tif”这部分呢?自己试了写成“%NAME%[:-4]”这样无效。
已邀请:

慕晓燕 - 长期ArcGIS爱好者

赞同来自: changkx 江宝骅 盎髯~immortals

看你的问题描述,批处理应该是用到了 Iterate Rasters 的迭代器。如果要处理 %Name% 这个行内变量,就需要额外加个 Calculate Value 的工具来执行处理文件名的部分,并且将值给新变量传给下个工具 ,例如这个示例是 name2。为了确保有了新的变量值才执行后面的工具,最好加个 Precondition。
 
如下如中设置, Calculate Value 工具中的表达式为 "%Name%".replace(".tif","")

修改.png

 

不二痞子 - GIS思维创始人,https://gisthink.ke.qq.com/

赞同来自: changkx 小黑

    本身迭代器  输出的值,其实都应该只是个名称,而迭代栅格比较奇葩输出的是文件(带有格式)。
C:\Data\GIS.tif
文件是这样:GIS.tif
名称是这样:GIS
    可以认为这是一个bug,也可以认为官方有意为之,因为栅格数据的格式多,但是你看迭代栅格,他输出默认是NAME(也就是名称),文档里面也没有特殊说明,所以可以认为这是他们的一个疏忽。
    这个时候你可以加个  解析路径,
1.jpg

 
关于解析路径看下图:如果一个文件  C:\Data\InputFC.shp
2.jpg

jiyunsong2019

赞同来自:

我用迭代器要素选择——选中每个多边形要素裁切栅格数据,计算栅格面积,写入相应记录的面积字段中,但是写入不成功,请问为什么,用于裁切的多边形要素,是来自于中间变量中的shp文件,我估计就是传入的图层名字不正确,如图中,将计算结果写入ywshp图层中,ywshp是渔网输出的shp文件。怎么解决这个问题,谢谢
 

frostone

赞同来自:

如果想对行内变量名称只取其中一部分该如何操作,比如 "%Name%".left("%Name%",Instr("%Name%","元"))  不知道哪里出问题老报错
2020-02-07_210608.png


2020-02-07_210852.png

 

要回复问题请先登录注册