1.获得环境变量
#coding=utf8 import arcpy import os import sys import math import string def Main(): environments = arcpy.ListEnvironments() # Sort the environment list, disregarding capitalization # environments.sort(key=string.lower) for environment in environments: # As the environment is passed as a variable, use Python's getattr # to evaluate the environment's value # envSetting = getattr(arcpy.env, environment) # Format and print each environment and its current setting # arcpy.AddMessage( "{0:<30}: {1}".format(environment, envSetting)) for toolbox in arcpy.ListToolboxes(): # Toolboxes are printed in the form of "toolbox_name(toolbox_alias)" arcpy.AddMessage(toolbox) arcpy.env.overwriteOutput=True arcpy.env.addOutputsToMap=True arcpy.AddMessage("arcpy.env.scratchGDB="+arcpy.env.scratchGDB) arcpy.env.workspace = arcpy.env.scratchWorkspace #默认数据库 arcpy.ResetEnvironments() # Reset a specific environment setting arcpy.ClearEnvironment("workspace") Main()
2.设置环境变量
def Main(): arcpy.env.overwriteOutput=True arcpy.env.addOutputsToMap=True arcpy.AddMessage("arcpy.env.scratchGDB="+arcpy.env.scratchGDB) arcpy.env.workspace = arcpy.env.scratchWorkspace #默认数据库 arcpy.ResetEnvironments() # Reset a specific environment setting arcpy.ClearEnvironment("workspace") Main()
=======================3D转2D
#coding=utf8 import arcpy import os import sys import math def Main(): arcpy.env.overwriteOutput=True arcpy.env.addOutputsToMap=True arcpy.env.outputZFlag ="Disabled" arcpy.env.tinSaveVersion = "PRE_10.0" #CURRENT indata=arcpy.GetParameterAsText(0) outdata=arcpy.GetParameterAsText(1) arcpy.CopyFeatures_management(indata,outdata) #arcpy.Select_analysis(indata,outdata) arcpy.ResetEnvironments() # Reset a specific environment setting arcpy.ClearEnvironment("workspace") Main()
输出tin,10.0版本的tin
def Main(): arcpy.env.overwriteOutput=True arcpy.env.addOutputsToMap=True arcpy.env.outputZFlag ="Disabled" arcpy.env.tinSaveVersion = "PRE_10.0" #CURRENT arcpy.CheckOutExtension('3D') indata=arcpy.GetParameterAsText(0) outdata=arcpy.GetParameterAsText(1) arcpy.CreateTin_3d(outdata,spatial_reference="#",in_features=indata+" 标示高程 Hard_Line <None>",constrained_delaunay="DELAUNAY") arcpy.ResetEnvironments() # Reset a specific environment setting arcpy.ClearEnvironment("workspace") Main()
3.许可和软件安装信息
def Main(): arcpy.AddMessage("ProductInfo:"+arcpy.ProductInfo()) arcpy.AddMessage("{0:<30}: {1}".format("ArcInfo", arcpy.CheckProduct("ArcInfo"))) arcpy.AddMessage("{0:<30}: {1}".format("arcview", arcpy.CheckProduct("arcview"))) arcpy.AddMessage("{0:<30}: {1}".format("arceditor",arcpy.CheckProduct("arceditor"))) arcpy.AddMessage("{0:<30}: {1}".format("engine",arcpy.CheckProduct("engine"))) arcpy.AddMessage("{0:<30}: {1}".format("enginegeodb",arcpy.CheckProduct("enginegeodb"))) arcpy.AddMessage("{0:<30}: {1}".format("arcserver",arcpy.CheckProduct("arcserver"))) if arcpy.CheckExtension("3D") == "Available": arcpy.CheckOutExtension("3D") arcpy.CheckInExtension("3D") arcpy.AddMessage("有3D") else: arcpy.AddMessage("没有3D:") for install in arcpy.ListInstallations(): arcpy.AddMessage("install:"+install) d = arcpy.GetInstallInfo() for key, value in d.iteritems(): # Print a formatted string of the install key and its value # arcpy.AddMessage("{:<13} : {}".format(key, value)) arcpy.AddMessage(u"安装版本"+arcpy.GetInstallInfo()['Version']) arcpy.AddMessage(u"安装路径"+arcpy.GetInstallInfo()['InstallDir']) ##3D —ArcGIS 3D Analyst 扩展模块 ##Datareviewer —ArcGIS 10.2 Data Reviewer for Desktop ##DataInteroperability —适用于 Desktop 的 ArcGIS Data Interoperability 扩展模块 ##Airports —ArcGIS for Aviation: Airports ##Aeronautical —ArcGIS for Aviation: Charting ##Bathymetry —ArcGIS for Maritime: Bathymetry ##Nautical —ArcGIS for Maritime: Charting ##GeoStats —ArcGIS Geostatistical Analyst 扩展模块 ##Network —ArcGIS Network Analyst 扩展模块 ##Spatial —ArcGIS Spatial Analyst 扩展模块 ##Schematics —ArcGIS Schematics 扩展模块 ##Tracking —ArcGIS Tracking Analyst 扩展模块 ##JTX —ArcGIS Workflow Manager for Desktop ##ArcScan —ArcScan ##Business —Business Analyst ##Defense —Esri Defense Solution ##Foundation —Esri Production Mapping ##Highways —Esri Roads and Highways ##StreetMap —StreetMap Main()
4.表名和字段是否有效
#coding=utf8 import arcpy import os import sys import math from arcpy.sa import * def Main(): arcpy.env.overwriteOutput=True arcpy.env.addOutputsToMap=True inworkspace=arcpy.GetParameterAsText(0) tablename=arcpy.GetParameterAsText(1) fieldname=arcpy.GetParameterAsText(2) arcpy.env.workspace = inworkspace if arcpy.Exists(tablename):#测试在执行期间当前工作空间中是否存在要素类、 #表、数据集、shapefile、工作空间、图层和其他文件。函数返回指示元素是否存在的布尔值。 arcpy.AddMessage(tablename+u"已存在") return tablename1 = arcpy.ValidateTableName(tablename,inworkspace) arcpy.AddMessage(tablename+u",修改为"+tablename1) arcpy.CreateTable_management(inworkspace, tablename1) #字段是否有效 fieldname1 = arcpy.ValidateFieldName(fieldname, inworkspace) arcpy.AddMessage(fieldname+u",修改为"+fieldname1) arcpy.AddField_management(tablename1, fieldname1, "double") data_type="Table" arcpy.Delete_management(inworkspace+os.sep+tablename1,data_type) Main()
5.信息输出和编写消息
#coding=utf8 import arcpy import os import sys import math import string def Main(): fc = arcpy.GetParameterAsText(0) arcpy.GetCount_management(fc) # Print the first and last geoprocessing tool messages message_count = arcpy.GetMessageCount() for i in range(message_count): arcpy.AddMessage("{0},{1}".format(i,arcpy.GetMessage(i))) feature_count = int(arcpy.GetCount_management(fc).getOutput(0)) if feature_count == 0: arcpy.AddError("{0} has no features.".format(fc)) else: arcpy.AddMessage("{0} has {1} features.".format(fc, feature_count)) arcpy.AddWarning("{0} has {1} features.".format(fc, feature_count)) Main()
8.异常处理
# -*- coding:UTF-8 -*- import arcpy import os import sys try: a=1111111 b=0000 c=a/b except Exception as e: arcpy.AddError(e) arcpy.AddMessage(e.message) finally: #'''不管try语句中的代码是否报错,都会执行finally分支中的代码''' #'''去完成一些连接操作的收尾工作''' arcpy.AddMessage('finally 被执行了') arcpy.AddMessage("***:{0}".format(arcpy.GetReturnCode(0))) num = arcpy.GetMessageCount() arcpy.AddWarning("{0} AddWarning".format(num)) num = arcpy.GetMessageCount() for i in range(num): arcpy.AddMessage("{0}==========={1}".format(i,arcpy.GetMessage(i))) arcpy.AddReturnMessage(i)