以下是在向“模型和脚本工具库”提交数据时可使用的一览表。在下面的一览表中,“本地数据”表示该数据位于根文件夹或其子文件夹中(如提交指南中所提到的)。
记录您的工具和工具箱
您应该对工具和工具箱进行详细记录。有关详细信息,请参阅 Desktop 帮助主题工具和工具箱记录快速浏览。
常规
此一览表适用于所有提交内容。针对模型、脚本和地图文档的特定一览表位于该表之下。
| 描述 | 问题的原因 | 解决方法 | |
|---|---|---|---|
| Zip 文件的大小不能超过 30MB。 | 提交的文件大小限制在 30MB。 | 移除不必要的数据、字段、制图表达和属性域。使用更小的数据集。 | |
| Zip 文件应该包含根文件夹,而不仅仅是根文件夹中的内容。 | 请参阅提交指南 - 它有助于避免覆盖数据。 | 将根文件夹(而非根文件夹的各项内容)添加到 zip 文件中。 | |
| 根据提交类别命名您的工具箱 - 案例研究、通用工具或服务示例。 | 请参阅提交指南 - 命名约定可帮助用户确定是可以直接使用您的工具还是需要先对工具进行检查和修改。 | 右键单击工具箱,单击属性,然后更改工具箱的名称和标注。 | |
| 您的工具箱应该具有一个别名。 | 工具箱别名可用于唯一标识脚本中的工具。 | 右键单击工具箱,单击属性,然后为工具箱提供一个别名。有关详细信息,请参阅 Desktop 帮助主题重命名工具箱:名称、标注和别名。 | |
| 使用标准子文件夹名称:ToolData、Doc、Scripts 和 Scratch。 | 请参阅提交指南 - 如果大家都遵循统一的命名约定,查找资源将更加容易。 | 如果重命名包含数据的子文件夹,请确保重新设置所有使用该子文件夹原始名称的地图图层和工具。 | |
| Scratch 文件夹(如果存在)不应该包含数据。 | 您并不希望提交的内容中包含不必要的数据。 | 删除 scratch 文件夹中的数据。 | |
| 删除数据中的不必要字段、制图表达、属性域和临时数据等。 | 不必要的项目会导致提交内容变得冗余。过多的不必要字段将使得表格难以查看。 | 移除不必要的字段、制图表达、属性域和临时数据。 |
模型
| 描述 | 问题的原因 | 解决方法 | |
|---|---|---|---|
| 保存模型时选中相对路径选项。 | 如果使用绝对路径(未选中此选项),数据下载之后,将找不到模型所使用的数据。 | 右键单击模型,单击属性,然后单击常规选项卡。在对话框底部,选中存储相对路径名(不是绝对路径)。有关详细信息,请参阅 Desktop 帮助主题路径解释:绝对、相对、UNC 和 URL。 | |
| 所有数据变量必须引用本地数据。 | 所有数据都应该放入 ToolData 文件夹和 ToolData 文件夹内的文件地理数据库中。如果您的数据变量引用了 ArcMap 文档中的图层,此图层必须引用本地数据(请参阅下面的地图文档一览表)。 | 将数据复制到 ToolData 文件夹,然后在 ModelBuilder 中打开数据变量并输入该数据的路径。 | |
| 不要使用 SDE 数据。 | 使用您工具的用户将无法连接到您的 SDE 数据库。 | 在 ToolData 文件夹中创建一个文件地理数据库,然后使用复制要素或复制行工具将数据从 SDE 复制到此本地文件地理数据库。将所有模型变量重置为使用本地文件地理数据库中的数据。 | |
| 图层符号系统文件 (*.lyr) 必须在本地。 | 如果您的模型使用图层符号系统文件 (.lyr) 来定义输出的符号系统,您需要确保图层文件位于本地(位于 ToolData 文件夹中)。 | 将图层文件复制到 ToolData 子文件夹中;将使用该图层文件对模型变量进行重置。 | |
| 引用的自定义工具(您创建的模型和脚本工具)位于本地工具箱中。 | 如果存在引用(使用)其他工具箱中的自定义模型或脚本工具的模型或脚本,引用的工具箱必须是本地的。 | 退出应用程序(例如 ArcMap)。将引用的工具箱复制到根文件夹,然后重命名原始工具箱。启动 ArcMap,然后对于使用刚刚重命名的工具箱中的工具的所有模型进行编辑。来自重命名的工具箱的工具将显示为无效工具。双击无效工具,然后浏览至包含工具的本地工具箱。如果模型已经修复为使用本地工具,您可以重命名您的原始工具箱。有关详细信息,请参阅 Desktop 帮助主题修复模型。 | |
| 检查模型是否有孤立派生数据。 | 孤立派生数据是模型输出的数据,不是中间参数或输出参数。这种数据将在运行模型后被遗留下来,如果用户计算机上不存在输出工作空间,这种数据可能会导致错误。 | 所有派生数据都应该为中间参数或模型参数。有关详细信息,请参阅 Desktop 帮助主题管理中间数据快速浏览。 | |
| 模型名称不是默认工具名称(例如 Model 1)。 | 工具既具有名称也具有标注。默认名称(例如,“Model”和“Model 1”)无法帮助用户理解您的模型。 | 右键单击模型,然后单击属性。为模型提供真实名称和标注,不要使用默认名称。 | |
| 模型图像是本地的。 | 模型元素可以显示为图像,而不是显示为椭圆和矩形。这些图像文件必须是本地的,否则图像无法在 ModelBuilder 中显示。 | 将您的图像置于 Doc 子文件夹中,然后重置模型中的所有图像以使用 Doc 子文件夹中的图像。 |
脚本工具
| 描述 | 问题的原因 | 解决方法 | |
|---|---|---|---|
| 工具是在选中相对路径名选项的情况下保存的。 | 您的脚本工具参数可能引用了诸如符号系统图层文件的数据。如果使用绝对路径(未选中此选项),数据下载之后,将找不到脚本工具参数属性中所使用的数据。 | 右键单击脚本工具,单击属性,然后单击常规选项卡。在对话框底部,选中存储相对路径名(不是绝对路径)。有关详细信息,请参阅 Desktop 帮助主题路径解释:绝对、相对、UNC 和 URL。 | |
| 脚本中不存在绝对路径。 | 用户计算机上不存在这些路径,您的脚本将运行失败。 | 有关使用相对路径和查找临时工作空间的方法,请参阅 Desktop 帮助主题共享 Python 脚本的技术。 | |
| 无需使用 AddToolbox 或 ImportToolbox 函数添加系统工具箱。 | 系统工具箱位于 ArcGIS 安装目录中。无需显式添加系统工具箱,将它们会自动出现在用户系统上。因为路径是绝对路径,因此不需要进行添加。 | 如果您需要查找安装目录,请使用 GetInstallInfo 函数。 | |
| 工具名称不是默认工具名称(例如 Script 1)。 | 脚本工具既具有名称也具有标注。默认名称无法帮助用户理解您的工具。 | 右键单击工具,然后单击属性。为模型提供真实名称和标注,不要使用默认名称。 | |
| 构建选择语句时使用了 AddFieldDelimiters 函数。 | 根据数据库的格式,可以使用两种查询语法:字段和 [字段]。如果未使用正确格式,您的工具将会失败。 | 请参阅 Desktop 帮助主题 AddFieldDelimiters 函数。 | |
| 使用良好的错误处理:try/except 块和 traceback。 | 帮助用户理解发生特定错误的原因。 | 请参阅 Desktop 帮助主题使用 Python 处理错误。 | |
| 对于熟知的错误,请使用 AddIDMessage 函数方法。 | AddIDMessage 函数可显示 9.3 中引入的错误代码,并显示错误描述和可能的解决方案的链接。 | 请参阅 Desktop 帮助主题 AddIDMessage 函数。 | |
| 详细注释您的代码,使其易于理解。 | 用户希望了解您的脚本在做什么。可以通过使您的脚本代码更易于理解和详细说明来帮助用户。 | 为您的代码添加注释。 | |
| 检查产品许可和扩展模块的许可。 | 如果您的脚本使用了未获得许可的工具,您的用户在运行您的工具时,将会自动收到错误消息。但是,此错误消息也可能在处理进行几分钟之后发生。最好的做法是在执行大量代码之前检查所需的许可。 | 请参阅 Desktop 帮助主题 CheckProduct 函数和 CheckExtension 函数。 |
地图文档
| 描述 | 问题的原因 | 解决方法 | |
|---|---|---|---|
| 地图应该在选中相对路径选项的情况下进行存储。 | 图层将发生损坏(其数据源必须进行重置)。 | 在 ArcMap 中,单击文件菜单,然后单击地图文档属性。选中选项存储数据源的相对路径名。有关详细信息,请参阅 Desktop 帮助主题路径解释:绝对、相对、UNC 和 URL。您也可以查看使用合并地图工具(10 版本新增工具)来创建地图文档和数据文件夹。 | |
| 地图图层引用了本地数据。 | 图层将发生损坏(其数据源必须进行重置)。 | 将数据复制到 Tooldata 文件夹;通过单击图层属性对话框的源选项卡上的设置数据源按钮重置 ArcMap 中的每个图层数据源。 | |
| 从“结果”窗口移除旧结果。 | 大量结果可使地图文档更大,并且使地图文档的打开变慢。 | 请参照 Desktop 帮助主题使用结果窗口移除旧结果。 |