批处理(一):使用WorkspaceRunner进行批处理

原文链接:

https://knowledge.safe.com/articles/1469/batch-processing-using-the-workspacerunner-1.html?smartspace=chaining-workspaces

一、介绍

WorkspaceRunner转换器从一个工作空间中运行另一个工作空间。结合Directory and File Pathname读模块,它可以用于批处理。

使用FMEServerJobmitter替换WorkspaceRunner,可以在FME Server中实现同样的功能。不推荐向FME Server发布包含WorkspaceRunner转换器的工作空间。该转换器将试图在FME Server外启动一个FME实例运行工作空间,这个FME实例需要额外的许可。

在这个示例中,用户有一个构建多边形的工作空间,该工作空间需要在存储在包含多个MIF/MID数据集的单个文件夹上使用。可以通过创建一个包含WorkspaceRunner转换器的工作空间来完成。

二、下载

BatchProcessingData.zip (包含 MapInfo MIF 文件和一个输出文件夹)

PolygonBuilder.fmw (工作空间1 MapInfo MIF 文件中构建多边形)

WorkspaceRunner.fmw (工作空间2使用WorkspaceRunner运行工作空间1)

注意: 确保你把PolygonBuilder.fmwWorkspaceRunner.fmw中读模块/写模块数据集的位置更改为你解压后的BatchProcessingData目录。同样更改WorkspaceRunner转换器。

三、说明

3.1 工作空间1: PolygonBuilder.fmw

1. 添加一个 MapInfo MIF/MID 读模块

在空白工作空间中添加一个MapInfo MIF/MID 读模块,对于数据集,选择文件夹中的任意一个你打算批处理的文件。例如,添加数据集parcel_k24.mif。在添加读模块时,确保你在“Workflow选项”那里选择了“Single Merged Feature Type(合并要素类)”,这样可以确保文件夹中的所有数据集被处理。添加读模块在画布中后,再打开参数对话框,在Format Attributes标签栏,勾选fme_basename

https://knowledge.safe.com/storage/attachments/13652-mifreader.png

MapInfo MIF/MID 读模块,设置Workflow Options Single Merged Feature Type

https://knowledge.safe.com/storage/attachments/13653-formatattributes.png

MapInfo MIF/MID 读模块参数,在Format Attributes 栏,勾选fme_basename

 

2. (可选) 添加GeometryFilter转换器

MapInfo MIF文件可以包含多种几何类型,在该示例中,我们只需要线。在画布中添加一个GeometryFilter转换器,在参数框中设置Geometry Types to FilterLine(线)。

3. (可选) 创建多边形

现在过滤出了线,我们需要把线连接起来创建多边形。添加一个AreaBuilder转换器,在参数框中设置Group Byfme_basename,其他参数保留默认。

https://knowledge.safe.com/storage/attachments/13654-areabuilder.png

通过 fme_basename分组创建多边形

 

4. 写出到 Shapefile

添加一个Shapefile写模块,设置Dataset为你输出文件夹的位置。设置Shapefile DefinitionShapefile定义)为Automatic。当出现Feature Type(要素类)对话框时,点击ok。将写模块连接到AreaBuilder。连接后再次打开写模块参数对话框,更改Shapefile Namefme_basename并设置GeometryShape_Polygon

https://knowledge.safe.com/storage/attachments/13655-shapefilewriter.png

为了扇出数据集,设置Shapefile Name fme_basename

5. 保存并关闭工作空间

你可用测试工作空间的运行结果是否正确。我们将使用另外一个工作空间来运行此工作空间。所以,现在你只需要把它保存到你指定的位置,然后关闭它。接着创建工作空间2

https://knowledge.safe.com/storage/attachments/13656-polygonbuilderworkspace.png

工作空间PolygonBuilder.fmw,将使用WorkspaceRunner运行该工作空间

3.2 工作空间2: WorkspaceRunner.fmw

1. 添加Directory and File Pathnames 读模块

在空白工作空间中,添加Directory and File Pathnames 读模块,设置dataset为包含待批处理的所有MapInfo MIF文件的目录,该示例中设置为Data文件夹。

https://knowledge.safe.com/storage/attachments/13657-pathreader.png

使用Directory and File Pathnames读模块,读取包含所有MIF文件的文件夹

 

2. 添加WorkspaceRunner 转换器

在画布中添加WorkspaceRunnerWorkspaceRunner将运行另外一个工作空间。在参数框中,设置FME Workspace为你工作空间1中创建的工作空间,在这个示例中为PolygonBuilder.fmw。一旦你选择了工作空间,底部的参数将填充,我们需要更改参数值确保它们正确。更改Source MapInfo MIF/MID File(s)为属性path_windows(注意:确保WorkspaceRunner连接到Directory and File Pathnames 读模块,这样才能看到参数)。然后更改Destination Esri Shapefile文件夹为你的输出文件夹。

https://knowledge.safe.com/storage/attachments/13658-workspacerunner.png

设置FME Workspace PolygonBuilder.fmw,更改 Source MIF File path_windows

 

3. 连接转换器Loggers

为了记录批处理中可能出现的错误,在WorkspaceRunner右键点击Connect Loggers。运行工作空间,然后在输出文件夹中确保文件处理完毕。

https://knowledge.safe.com/storage/attachments/13659-workspacerunnerworkspace.png

WorkspaceRunner.fmw, Logger连接到 WorkspaceRunner

WorkspaceRunner.fmw转换日志,显示PolygonBuilder.fmw工作空间中正在转换一个MIF文件。

WorkspaceRunner在进行转换时,启动了多个FME进程——每个文件一个进程。WorkspaceRunner可以设置为等待每个进程完成后再开启下一个进程,这样每次只有一个新的进程。在WorkspaceRunner中有一个设置最大并发进程数(Maximum Number of Concurrent Processes)的参数。这将限制并发执行的工作空间数量为指定的值。如果进行指定,这个值必须为1-7的整数。指定的值包括执行WorkspaceRunner的进程。例如,如果值被设置为7WorkspaceRunner只会启动6个额外的FME并发进程。可以通过任务管理器中显示的fme.exe进程进行确认。

当运行WorkspaceRunner.fmw工作空间时,Windows 任务管理器显示运行了3 fme.exe 实例

带有已转换Shapefiles的输出文件夹

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/84325501
今日推荐