为 UNIX/Linux 环境创建任务
ArcGIS Server 可以执行位于 UNIX/Linux 计算机的工具箱中的地理处理工具,同时这些工具也可以引用位于 UNIX/Linux 计算机上的数据。但是,您只能在仅限在 Windows 上运行的 ArcGIS Desktop 中创建工具。这表示您必须在 Windows 上创建好工具箱和地图文档之后,再将它们复制到 UNIX/Linux 计算机上。这些资源随后便可发布到 ArcGIS Server。
为 UNIX/Linux 环境创建工具
为 UNIX/Linux 环境创建工具时遇到的主要问题是路径问题。Windows 对本地磁盘应用盘符约定(例如 D:\),而对 LAN 上的资源则应用 UNC 约定(例如 \\<主机>\<目录>)。UNIX/Linux 则对路径应用正斜线约定,即 /<主机>/<目录>。创建和测试工具操作在 Windows 上进行,因此所有路径采用的均为 Windows 约定。将工具移动到 UNIX/Linux 之前,您需要选择一种可将 Windows 路径转换为 UNIX/Linux 路径的方法。有多种方法可实现此目的:
- 使用数据的相对路径(无需遵守任何路径约定)。
- 使用 ArcMap 图层,并在复制到 UNIX/Linux 之前转换图层的路径。
- 使用 ArcGIS Server 将 Windows UNC 路径转换为 UNIX/Linux 路径。
- 结合使用上述各种方法。
使用数据的相对路径
目前,最简便的方法就是使用 toolshare 文件夹结构存储各工具所使用的全部数据。然后,您可将地图文档、模型工具和脚本工具的属性设置为存储相对路径。然后将此 toolshare 文件夹复制到 UNIX/Linux 平台并使用 ArcGIS Server 管理器发布服务。在执行服务中的任务时,这些任务可以根据 toolshare 文件夹中的相对位置找到所有数据。
使用 ArcMap 图层
通过这种方法,您可发布包含工具图层的 ArcMap 文档。模型工具和脚本工具将使用 ArcMap 内容列表中的图层和表。然后,请在将地图文档和工具箱复制到 UNIX/Linux 之前执行以下操作:
- 打开 ArcMap 文档,然后禁用存储数据源的相对路径选项:
- 在 ArcMap 中,单击文件菜单 > 地图文档属性。
- 在属性对话框上,请确保存储数据源的相对路径名复选框处于取消选中状态。
- 单击确定保存属性,然后保存地图文档并退出。
- 在目录 窗口中,右键单击地图文档,然后单击设置数据源。
- 在设置数据源 对话框上,为所有图层指定 UNIX/Linux 路径,包括工具图层的子图层。(只有在使用结果地图服务时才有必要更改工具图层的子图层。)
- 设置路径之后,关闭对话框,然后将地图文档和工具箱复制到 UNIX/Linux 计算机上。
- 通过发布包含工具图层的地图文档(而非工具箱)来发布服务。
使用 ArcGIS Server 转换 Windows UNC 路径
在 UNIX/Linux 上执行地理处理服务时,所有 Windows UNC 路径 (\\host\) 均需要转换为 UNIX/Linux 约定路径 (/host/)。但本地 Windows 路径 (D:\) 不会转换。
这表示您可在 Windows 计算机上挂载 UNIX/Linux 磁盘 (/host/),然后使用 Windows UNC 路径 (\\host\) 引用挂载磁盘上的数据。然后,可将文档和工具箱复制到 UNIX/Linux 计算机并发布。
结合使用这些方法。
您可以结合使用这些方法。例如,某些数据可使用相对于工具箱的位置进行存储,从而各工具便可使用相对路径。对于未使用相对于工具箱的位置存储的数据子集,可使用引用数据的 ArcMap 文档中的图层,然后在复制之前进行路径转换。
UNIX/Linux 环境中的已知局限
尽管主要考虑的问题是路径转换,但是对于要在 UNIX/Linux 上运行的服务,另外还存在两个问题:100 个字符的数量限制以及数据集名称必须为小写。关于二者的介绍如下所示。
对于 GRID 和 coverage 路径的 100 个字符限制
共有两种数据格式在路径字符数量上存在限制:
- GRID(ESRI 固有栅格格式)
- Coverage(ArcInfo Workstation 要素)
GRID 或 coverage 路径的总长度不允许超过 100 个字符。由于中间数据和输出数据需要写入临时工作空间,因此临时工作空间的字符总数也不能超过 100。
以下是 %scratchworkspace% 内容的示例:
/disk/arcgisserver/arcgisjobs/drivetimepolygonsservice_gpserver/ jc01a0ddb3dc94455b8eb6629cf421798/scratch/
路径的各部分 |
字符数量 |
描述 |
---|---|---|
/disk/arcgisserver/arcgisjobs/ |
30 |
作业目录。由于建立作业目录的是您或您的系统管理员,因此字符数量可由您控制。 |
drivetimepolygonsservice_gpserver/ |
34 |
服务名称(_gpserver 由 ArcGIS Server 自动追加)。由于为服务命名的是您,因此字符数量也由您控制。 |
<文件夹名称> |
您可在发布服务时指定文件夹名称。该文件夹的名称将显示在此处。该文件夹名称中的字符数量也由您控制。 | |
jc01a0ddb3dc94455b8eb6629cf421798/scratch/ |
42 |
唯一作业 ID 加上临时文件夹名。这由 ArcGIS Server 定义,因此您无法控制。 |
总计 |
106 |
在上表中,临时工作空间的路径包含 106 个字符,超出了 100 个字符的限制。您至少需要减少 6 个字符。在上例中,最简单的删减方法就是将 drivetimepolygonsservice 中的服务重命名为较短的名称,如 dtpolys。
数据集名称必须为小写
GRID 和 coverage 在 UNIX/Linux 上的名称必须为小写。尽管它们是名称需要小写的唯一两个数据集,您也应该养成小写所有数据集名称的习惯,包括目录名称。