ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

通过 Python 使用环境设置

  • 获取和设置环境设置
  • 使用环境设置处理临时数据
  • 重新设置环境

每个工具都含有一组用于执行操作的参数。其中一些参数在所有工具中通用,如容差或输出位置。这些参数可从所有工具在运行期间使用的地理处理环境中获得默认值。执行某一工具时,当前环境设置也可用作全局输入参数值。诸如感兴趣区域、输出数据集的空间参考以及新栅格数据集的栅格像元大小等设置都可以使用地理处理环境指定。

脚本可通过多种不同方式执行。可在 ArcGIS 应用程序中作为脚本工具运行。也可以通过其他脚本运行或本身在 Python 窗口中运行。当某个脚本在 ArcGIS 应用程序的工具中运行或通过其他地理处理脚本运行时,调用该脚本的应用程序或脚本所使用的环境设置将被传递到该脚本。这些设置将成为工具脚本执行时所使用的默认设置。被调用的脚本可能会更改传递的设置,但这些更改仅用在该脚本内或由该脚本可能调用的任何其他工具使用。更改不会传递回调用脚本或应用程序。将环境模型描述为层叠形式最为合适,该形式中的值向下流向任何使用地理处理环境的过程。

获取和设置环境设置

环境设置以 env 类的属性的方式公开。这些属性可用于检索或设置当前值。环境可作为环境类中的读/写属性进行访问,方法为 arcpy.env.<环境名称>。

import arcpy

arcpy.env.workspace = "c:/data"

示例 1:设置环境值

import arcpy

# Set the workspace environment setting
#
arcpy.env.workspace = "c:/St_Johns/data.gdb"

# Set the XYTolerance environment setting
#
arcpy.env.XYTolerance = 2.5

# Calculate the default spatial grid index, divide in half, then
#   set the spatial grid 1 environment setting
#
grid_index = arcpy.CalculateDefaultGridIndex_management("roads")[0]

arcpy.env.spatialGrid1 = float(grid_index) / 2

# Clip the roads by the urban area feature class
#
arcpy.Clip_analysis("roads", "urban_area", "urban_roads")

示例 2:获取和设置环境值

import arcpy

# Check the current raster cell size and make sure it is a certain size
#   for standard output
#
arcpy.env.workspace = "c:/avalon/data"

if arcpy.env.cellSize < 10:
    arcpy.env.cellSize = 10
elif arcpy.env.cellSize > 20:
    arcpy.env.cellSize = 20
    
arcpy.HillShade_3d("island_dem", "island_shade", 300)
警告:

设置 Python 中的属性时要注意拼写和大小写。将值指定给 arcpy.env.Workspace 与设置 arcpy.env.workspace 不同(注:arcpy.env.workspace 是正确的格式)。如果您遇到已设置环境,但发现没有对后续工具产生作用的情况,请检查拼写和大小写。

ListEnvironments 函数可用于检查环境名称是否正确。

import arcpy
print(arcpy.ListEnvironments())

使用环境设置处理临时数据

scratchGDB 和 scratchFolder 环境是提供保证存在的地理数据库和文件夹位置的只读环境。这意味着,您可以随时可靠地使用地理数据库或文件夹,而不必进行创建或管理。

import arcpy

inputFC = arcpy.GetParameterAsText(0)
clipFC = arcpy.GetParameterAsText(1)
outputFC = arcpy.GetParameterAsText(2)

# Use scratchGDB environment to write intermediate data
#
tempData = arcpy.CreateScratchName(workspace=arcpy.env.scratchGDB)

result = arcpy.Buffer_analysis(inputFC, tempData, "50 METERS")
arcpy.Clip_analysis(clipFC, result, outputFC)

scratchFolder 环境的设置如下:

  • 如果未设置 scratchWorkspace,则 scratchFolder 会默认为当前用户的临时文件目录。
  • 如果 scratchWorkspace 引用一个地理数据库,则 scratchFolder 将是包含该地理数据库的文件夹。
  • 如果 scratchWorkspace 被设置为文件夹,则 scratchFolder 将与 scratchWorkspace 相同。

scratchGDB 环境的设置如下:

  • 如果未设置 scratchWorkspace,则 scratchGDB 将默认为当前用户临时文件目录中名为 scratch.gdb 的地理数据库。
  • 如果 scratchWorkspace 引用一个地理数据库,则 scratchGDB 将与 scratchWorkspace 相同。
  • 如果 scratchWorkspace 被设置为文件夹,则 scratchGDB 将被设置为 scratchWorkspace 文件夹中名为 scratch.gdb 的地理数据。

重新设置环境

由于地理处理环境对工具操作和输出有着很大的影响,因此需要保证能够追踪环境设置并在必要时将其重置为默认状态。

可使用 ResetEnvironments 函数恢复默认环境值,或者使用 ClearEnvironment 函数重置特定环境。

import arcpy

# Reset geoprocessing environment settings
arcpy.ResetEnvironments()

# Reset a specific environment setting
arcpy.ClearEnvironment("workspace")

相关主题

  • 在 Python 窗口中设置环境
  • env

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

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