原文发布时间:2013-11-04
原创:小新
对于文件夹型的数据集的定义可以参考视频培训的“重要术语”章节。按照我个人的理解,如果把图层或表理解为要素类的话,某种格式的一个文件不能再细分到图层时,则属于文件夹型数据集,一个文件即为一个要素类。像SHP、MapInfo TAB都是文件夹型的数据集。而Esri GDB、Esri MDB则是文件型数据集。
通过读模块添加数据到工作空间时,默认以“Individual Feautre Types”(独立要素类)的方式将数据添加到工作空间中。以shp数据为例,一个shp文件为一个要素类,添加一个数据后将在画布中显示一个要素类。
![](https://i-blog.csdnimg.cn/blog_migrate/511355d2d01eb9d96a7a4de3cb6d3b14.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/814617104b7543d3f639d000237332e5.jpeg)
右键单击该要素类,弹出属性框,在Feature Type Name中将显示当前添加的SHP数据的文件名。
![](https://i-blog.csdnimg.cn/blog_migrate/6dfe01609e63ddd3a3dcf28fb45ebf3d.jpeg)
这里显示的Feature Type Name意味着读模块每次处理时,只会处理要素类名称为“提供数据范围”的数据。由于SHP格式为文件夹型数据集,一个文件即为一个要素类。因此,如果制作好一个SHP模板,下次使用时,如果处理的SHP文件的名字不是“提供数据范围”,模板不会读取到任何要素,如下,我们运行模板时加载一个名字为“影像测试范围”的SHP数据,模板弹出如下提示:
在模板中没有任何要素输出:
问题:那么这样就会导致如果我们需要批处理一批SHP数据,而这些数据名称不同时,将不能使用该模板进行处理。
解决方法:要使模板能处理名称不同的SHP数据,需要右键工作空间中的读模块,勾选“Merge Feature Type”,“Merge Filter”输入“*”,其中“*”表示通配符的意思。如果只输入一个“*”可以读取任意名称的SHP数据,如果想根据一定规则的文件名进行读取,可以通过Filter Type来进行控制。
关于“Merge Filter”(合并要素类过滤)的更详细的描述请大家参考毛毛虫的这篇文章:
http://blog.163.com/antufme@126/blog/static/140492492201010311546692/
在制作所有处理文件夹型数据集的时候,我们都要注意对读模块做类似的处理,否则将会导致数据不能读取的问题。