全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
如果在后台执行工具,您便可以继续与应用程序(例如 ArcMap)进行交互从而在工具运行期间执行其他任务。
默认情况下,模型或脚本工具在前台运行。如果希望工具在后台运行,则需要解决下方列出的问题。确保模型和脚本纠正了这些问题后,便可按以下步骤在后台运行工具:
在目录 窗口或 ArcToolbox 窗口中,右键单击工具,然后单击属性。在常规选项卡中,取消选中始终在前台中运行,然后单击确定。
在 ArcMap 菜单中,单击地理处理 > 地理处理选项。在后台处理窗格中,选中启用。
必须解决的问题包括
使用地图文档图层(模型和脚本工具均存在此问题)。
在脚本工具中使用当前地图 文档(仅脚本工具存在此问题)。
问题 1 - 使用地图文档图层
模型示例
如果要在后台执行某模型工具,仅作为模型参数参与的图层才允许进入后台进程。例如,下方模型允许用户输入感兴趣区域、起始等值线和等值线间距,以便生成一个等值线要素类。此模型包含四个参数(3 个输入参数和 1 个输出参数)。请注意,Elevation Raster 变量虽然是 ArcMap 内容列表中的图层,但却不会被设置为模型参数。使用模型的工具对话框运行模型时,用户需要为感兴趣区域参数输入 Potential Landfill Site 图层,但无需提供 Elevation Raster 图层,因此它不属于参数。
在模型中使用图层
上述模型将按预期在前台运行。但如果将此模型设置为在后台运行,运行将失败,并会显示警告:“无任何进程准备好运行”,如下图所示。失败的原因是后台运行的进程无法使用不属于工具参数的图层。这种情况下,由于 Elevation Raster 模型变量不属于参数,后台进程无法找到它,因此运行会失败并会显示警告。
在后台中使用图层的模型的警告消息
解决方案
可采用多种方法更改模型,以使其能够在后台运行。
使图层变量成为模型参数。执行此操作可将图层传递给后台进程,然后此工具便可在后台中执行。这是最简单的解决方案。
不使用图层而使用磁盘上的数据集。在上例中,您可双击 Extract by Mask 工具,然后将输入栅格参数(由 Elevation Raster 变量表示)更改为使用栅格数据集而非内容列表中的图层。此解决方案存在唯一的问题是,对图层可执行选择操作,而对磁盘上的数据集则不能执行选择操作。如果是因为需要使用图层中的选择内容而要使用某图层变量,则不能使用磁盘上的数据集。这种情况下,您有两种选择(除了使变量成为模型参数以外):
在模型中,添加创建要素图层工具以便根据数据集变量创建图层变量,然后将该图层变量用作下一个模型流程的输入。(“创建要素图层”工具允许输入选择表达式。)
创建图层文件 (.lyr),然后在模型中使用该 .lyr 文件。也就是说,在上述模型中,Elevation Raster 变量将指向 .lyr 文件。您可使用保存至图层文件工具创建 .lyr 文件。
注:
除了将输入图层设置为模型参数外,由模型创建或更新的所有其他图层也都必须设置为模型参数。
脚本工具示例
将图层用作输入时,脚本工具存在与模型工具相同的问题。必须以参数形式传递每个图层,并且每个图层必须是正确的地理处理数据类型。脚本工具比较灵活,用户的选择余地更大;例如,使用与内容列表中图层名称匹配的字符串数据类型,脚本工具便可对图层执行操作。此方法尽管在前台中有效,但在后台中却不起作用,因为地图图层参考与后台进程之间不存在连接。下图演示的是某参数图层以字符串形式进行传递,并且脚本的属性也进行了修改,以便将图层用作输入。修改某脚本工具参数的数据类型
解决方案
请确保脚本工具参数使用的是正确的数据类型,如“要素图层”、“栅格图层”和“表视图”。
如果脚本工具使用的图层不属于参数,则需要
使图层成为参数。
不使用图层,改为使用磁盘上的数据集或 .lyr 文件。
问题 2 - 在脚本工具中使用当前地图 文档。
当前地图文档中运行的脚本工具必须在前台运行。MapDocument 类是在各种脚本工具中使用当前地图文档的有效方法。例如,在您的脚本中,可能自动缩放到了刚刚选择的要素。运行以下脚本将发生错误“Object: CreateObject 无法打开地图文档”。
选择要素并使用 ArcPy 映射缩放至这些要素的脚本示例
import arcpy
idvalue = arcpy.GetParameterAsText(0)
mxd = arcpy.mapping.MapDocument("CURRENT")
arcpy.SelectLayerByAttribute_management(
"Parcels", "NEW_SELECTION", '"ID" = ' + idvalue)
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.zoomToSelectedFeatures()
了解有关使用 MapDocument 类中 CURRENT 的详细信息。
解决方案
使用当前地图文档的脚本工具必须始终在前台中运行。在目录 窗口中,右键单击脚本工具,然后单击属性。在常规选项卡中,选中始终在前台中运行。
在工具中运行工具
假设您的脚本工具使用上述当前地图文档,并且此工具必须始终在前台运行。如果在某模型工具中使用此脚本工具并且该模型工具需要在后台中运行,会出现什么情况?答案就是,模型会注意到其本身包含必须在前台执行的工具。如果包含任何必须在前台运行的工具,则模型工具将自动在前台中运行。
注:
如果想要在后台运行某个模型,但是因选中且禁用了始终在前台中运行选项而被阻止,请检查模型的属性或模型所使用的脚本工具,并确保没有为这些工具选中始终在前台运行选项。