为 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 路径的方法。有多种方法可实现此目的:

使用数据的相对路径

目前,最简便的方法就是使用 toolshare 文件夹结构存储各工具所使用的全部数据。然后,您可将地图文档、模型工具和脚本工具的属性设置为存储相对路径。然后将此 toolshare 文件夹复制到 UNIX/Linux 平台并使用 ArcGIS Server 管理器发布服务。在执行服务中的任务时,这些任务可以根据 toolshare 文件夹中的相对位置找到所有数据。

使用 ArcMap 图层

通过这种方法,您可发布包含工具图层的 ArcMap 文档。模型工具和脚本工具将使用 ArcMap 内容列表中的图层和表。然后,请在将地图文档和工具箱复制到 UNIX/Linux 之前执行以下操作:

  1. 打开 ArcMap 文档,然后禁用存储数据源的相对路径选项:
    1. 在 ArcMap 中,单击文件菜单 > 地图文档属性
    2. 在属性对话框上,请确保存储数据源的相对路径名复选框处于取消选中状态。
    3. 单击确定保存属性,然后保存地图文档并退出。
  2. 目录 窗口中,右键单击地图文档,然后单击设置数据源
  3. 设置数据源 对话框上,为所有图层指定 UNIX/Linux 路径,包括工具图层的子图层。(只有在使用结果地图服务时才有必要更改工具图层的子图层。)
  4. 设置路径之后,关闭对话框,然后将地图文档和工具箱复制到 UNIX/Linux 计算机上。
  5. 通过发布包含工具图层的地图文档(而非工具箱)来发布服务。

使用 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 上的名称必须为小写。尽管它们是名称需要小写的唯一两个数据集,您也应该养成小写所有数据集名称的习惯,包括目录名称。

相关主题


3/7/2012