ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

使用当前工作空间环境和临时工作空间环境

  • 设置当前工作空间环境
  • 使用基本名称
  • 在工具对话框中显示工作空间
  • 脚本中的当前工作空间和基本名称
  • 临时工作空间环境
  • 自动生成的输出数据集名称

几乎所有的地理处理工具都可将数据集作为输入,从而生成新的数据集。使用地理处理工具时需要注意的是,应避免输入较长的数据集名称,例如:

E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst

输入如此长的数据集名称非常繁琐、麻烦并且容易出错。也正因为如此,地理处理才允许将数据集或图层直接拖动到工具对话框,使用浏览按钮 打开 导航至数据集,或者从下拉列表中选择图层。此外,有两个功能专门用于简化输入和输出数据集指定:当前工作空间和临时工作空间环境设置。

下面是关于当前工作空间和临时工作空间的重点:

  • 可在地理处理环境窗口中设置当前和临时工作空间,可通过单击地理处理 > 环境访问该窗口。
  • 与所有地理处理环境一样,当前和临时工作空间将随地图文档一起保存。
  • 在 ArcMap 中,当前和临时工作空间将自动设置为默认地理数据库。可随时将当前或临时工作空间更改为除此默认地理数据库之外的其他地理数据库。
  • 使用工具对话框或在 Python 中执行工具时,可输入数据集的基本名称,该工具将在当前工作空间中查找该数据集。
  • 使用工具对话框时,输出数据集名称将按照当前工作空间和临时工作空间的设置自动生成。

设置当前工作空间环境

  1. 在 ArcMap 中,单击地理处理 > 环境。

    随即将显示环境设置窗口。

  2. 展开工作空间类别,然后输入工作空间的路径。下图显示的是将当前工作空间设置为 D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase,这是地理数据库内的一个要素数据集。

    设置当前工作空间环境

    您可将当前工作空间设置为系统文件夹、地理数据库或者地理数据库中的要素数据集。

  3. 单击确定。
  4. 或者,也可以在目录 窗口中浏览至某个地理数据库,右键单击该地理数据库,然后单击设为默认地理数据库。当前工作空间和临时工作空间将设置为此默认地理数据库。

还有多种其他的环境设置方法,您可将环境设置为应用于所有工具或者仅执行某个工具、模型、模型过程或脚本。

了解有关环境设置的详细信息

使用基本名称

当前工作空间蕴含的基本思想是,只设置一次工作空间,然后在键入输入和输出路径时只使用基本名称即可。一个数据集名称由两部分组成,即工作空间和基本名称,如下图所示。

数据集名称
目录路径、路径、位置和数据集名称。在实际术语中,这些词汇所代表的含义相同,即用于指定数据集的字符串。

使用基本名称的示例

下图显示的是用作当前工作空间的地理数据库示例。当前工作空间将设置为 D:\BuildingaGeodatabase\Montgomery.gdb\Landbase。

Montgomery.gdb 的内容

工作空间设置完毕以后,需要使用数据集名称时,仅输入基本名称即可。下面的示例介绍如何使用裁剪工具。

  • 基本名称 (Blocks) 加上当前工作空间即为数据集名称 (D:\BuildingaGeodatabase\Montgomery.gdb\Landbase\Blocks)。然后,输入要素参数便替换为该数据集名称。
  • 自动生成一个唯一的输出数据集名称。基本名称与附带下划线的输入基本名称 (Blocks) 相同;工具的名称 - 在此示例中为 Clip - 根据需要添加数字,以确保名称唯一。
    键入输入的基本名称
  • 如果不想使用自动生成的输出名称,可删除自动生成的名称并自行输入基本名称,该名称还将扩展到数据集名称中,如下所示。

    使用输出数据集的基本名称

运行工具后,您可能会发现输出并没有写入预期位置,这可能是因为键入输出名称时出错,或者您只是忘记了写入位置。如果发生此类情况,请打开结果窗口;其中包含已运行工具及其输入数据集和输出数据集的相应记录。

还可在批处理格网中使用基本名称,如下所示。

将当前工作空间与批处理格网结合使用

了解有关批处理的详细信息

在工具对话框中显示工作空间

您可将指针悬停在浏览按钮 打开 上片刻,随即将显示您上次浏览的工作空间,如下所示。

在工具对话框中显示浏览工作空间

单击浏览按钮时,“浏览”对话框将在当前工作空间中显示。

脚本中的当前工作空间和基本名称

在 Python 窗口中,工作空间环境可用于设置当前工作空间。设置完工作空间后,便可使用工作空间中任意数据集的基本名称,如下所示。

import arcpy
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.gdb"
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5, "point")

以下是一个展示工作空间命令使用过程的 Python 脚本示例:

# Purpose: Determine the type of vegetation within 100 meters of all stream 
#          crossings
import arcpy
# Set the workspace (to avoid having to type in the full path to the data 
# every time)
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.gdb"
# Process: Find all stream crossings (points)
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5, 
                          "point")
# Process: Buffer all stream crossings by 100 meters
arcpy.Buffer_analysis("stream_crossings", "stream_crossings_100m", "100 meters")
# Process: Clip the vegetation feature class to stream_crossings_100m
arcpy.Clip_analysis("vegetation", "stream_crossings_100m", 
                    "veg_within_100m_of_crossings")
# Process: Summarize how much (area) of each type of vegetation is found within 
# 100 meters of the stream crossings
arcpy.Statistics_analysis("veg_within_100m_of_crossings", 
                          "veg_within_100m_of_crossings_stats", 
                          [["shape_area", "sum"]], "veg_type")

临时工作空间环境

除当前工作空间外,还存在临时工作空间环境设置。临时工作空间设置的访问方式和设置方式与当前工作空间相同。

临时工作空间环境的主要用途是供“模型构建器”使用。“模型构建器”需要使用一个工作空间来写入中间数据集(模型运行后便不再使用)。尽管它主要服务于“模型构建器”,但有时可能也需要为各工具对话框设置临时工作空间。或者更有可能的是,您设置了在“模型构建器”中使用的临时工作空间,但却忘记在使用某工具的对话框执行该工具前重置临时工作空间。

如果设置了临时工作空间环境,工具将使用它(而非当前工作空间)来自动生成输出数据集名称,如下所示。

使用临时工作空间自动生成的输出的示例
警告:

如果为输出键入了基本名称,则会使用当前工作空间(而非临时工作空间)来构造数据集名称。

规则就是,只要使用的是基本名称,该名称便会与当前工作空间相连,而不与临时工作空间相连。编写脚本时请注意这一点。在以下代码片段中,输出数据集 stream_crossings 将写入当前工作空间,而非临时工作空间。

arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb"
arcpy.env.scratchWorkspace = "c:/projects/Scratch/scratch.gdb"
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5, "point")
警告:

由于临时工作空间仅用于存放临时数据,因此请不要将它设置为企业级地理数据库。因为这可能会导致性能上的问题,即您有可能将临时数据写入到企业级数据库中。建议始终为临时工作空间使用文件地理数据库(而非个人地理数据库或 shapefile 工作空间)。

自动生成的输出数据集名称

所有工具均会为您自动创建输出数据集名称。生成输出名称的逻辑如下所示:

  • 如果设置了“临时工作空间”环境,则自动生成的输出路径将是临时工作空间。
  • 如果未设置“临时工作空间”环境,则会检查当前工作空间环境。如果设置了当前工作空间,则自动生成的输出将是当前工作空间。
  • 如果既未设置“临时工作空间”环境,也未设置“当前工作空间”环境,则自动生成的输出路径将是某一输入的工作空间。在这种情况下,需要遵循某些特定限制条件。例如,如果工作空间是文件夹,并且输出是新的要素类,则输出将是 coverage 工作空间的上级目录中的一个 shapefile 文件。还有其他一些限制条件,例如写入权限。在某些情况下,输出将写入到系统临时目录中。
  • 如果为输出数据集键入了基本名称,则无论是否设置了“临时工作空间”环境,都将使用“当前工作空间”环境构造输出路径。

相关主题

  • 当前工作空间(环境设置)
  • 临时工作空间(环境设置)
  • 临时文件夹(环境设置)
  • 临时 GDB(环境设置)

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明