arcpy.env.workspace到底是个什么东西?

主页上的介绍不是很看的懂。
http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/018v00000040000000/
环境设置到底有什么作用?arcmap软件的环境设置是默认是在C:\Users\Administrator\Documents\ArcGIS\Default.gdb 下面,和arcpy有什么关系?
对于有些批处理,env.workspace=path 似乎是代处理数据的输入文件夹。
比如,批量extract rasters by shp 脚本:
import arcpy  
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput=0
arcpy.env.workspace = r'd:\data'
rasters = arcpy.ListRasters("*", 'tif')
mask= r'D:\GeoNE\GISmap\WE_map.shp'
outpath=r'D:\GeoNE\\MODIS09A1_NDVI'
for raster in rasters:
print(raster)
out=outpath+'\\'+raster
arcpy.gp.ExtractByMask_SA(raster, mask, out)
print(raster+" has done")
print("All done")
--------------------------
arcpy脚本不用设置输入文件夹路径吗?
哪位大侠有详细的环境设置资料可以介绍吗?
已邀请:

turtle

赞同来自: cobinzhang

环境变量可以在应用程序级别以及工具级别下进行设置,应用程序级别环境设置是最高级别,也是应用于所有工具的默认设置。工具级别环境设置会直接继承来自应用程序级别的环境设置。
Python脚本中可以通过arcpy中的env类来获取并设置环境变量,这些变量都是读/写属性。应用程序级别和工具级别环境设置都可以在脚本中调用且都可以应用于通过脚本运行的所有工具。
需要注意的是,在脚本中的环境设置仅应用于当前执行的脚本。
脚本中最为常用的环境变量设置就是arcpy.env.workspace,该变量用于定义当前脚本的工作目录(或者称为工作空间)。由于在脚本中设置了当前工作空间,脚本的其他位置也就不需要引用数据集的完整路径,这会让代码更为简洁,不过还是需要引用工作空间下的数据集名称。
 
以题主问题中代码为例:


arcpy.env.workspace = r'd: \ Data '   
Rasters = arcpy.ListRasters ( "*",' TIF ')   


Rasters相当于获取了D:\Data目录目录中所有TIF格式的数据
 
另外一个简单的例子:


import arcpy 
arcpy.env.workspace = "C:/ArcpyBook/Ch6" arcpy.Buffer_analysis("Streams.shp","Streams_Buffer.shp","200 Feet")
print arcpy.getMessages()


相当于对C:/ArcpyBook/Ch6目录中的Streams.shp文件进行200Feet的缓冲区分析,同时将缓冲结果保存在C:/ArcpyBook/Ch6目录下的Streams_Buffer.shp文件。

buffer.png

这样就不用引用完整路径了,只要指定数据集名称即可。

要回复问题请先登录注册