2.7Python(目前ArcGIS使用)代碼轉化為3.5Python(目前ArcGIS Pro使用)代碼 Analyze Tools For Pro (2to3命令) 基本操作 調用ArcToolbox的兩種形式 #arcpy.ToolboxAlias.ToolName() #arcpy.Tool ...
2.7Python(目前ArcGIS使用)代碼轉化為3.5Python(目前ArcGIS Pro使用)代碼----Analyze Tools For Pro (2to3命令)
基本操作
調用ArcToolbox的兩種形式
#arcpy.ToolboxAlias.ToolName()
#arcpy.ToolName_ToolboxAlias()
#ToolboxAlias工具箱別名
#ToolName工具名稱
arcpy.analysis.Buffer(in_features="bjboundary", out_feature_class="G:/實習文件/map/buf_Boundary.shp", buffer_distance_or_field="0.5 Unknown", line_side="FULL", line_end_type="ROUND", dissolve_option="NONE", dissolve_field="", method="PLANAR")
編寫的一般流程
#預設只捕捉最嚴重的錯誤
try:
arcpy.Buffer_analysis()
except arcpy.ExecuteError:
print(arcpy.GetMessages())
#捕捉警告
try:
arcpy.SetSeverityLevel(1)
arcpy.Buffer_analysis()
except arcpy.ExecuteError:
print(arcpy.GetMessages())
環境(Environment)設置
arcpy.env.workspace = “c:/data“#設置工作空間
arcpy.env.extent = arcpy.Extent(0,0,100,100)#設置工作範圍
arcpy.env.overwriteOutput = True#覆蓋輸出
空間數據的描述
desc = arcpy.Describe(r"F:\map\region.shp")#讀取文件描述
print (desc.DataType)
print (desc.ShapeType)
print (desc.ShapeFieldName)
print (desc.spatialReference.name)
判斷文件是否存在
# Set the current workspace
arcpy.env.workspace = r"E:\map"
# Check for existence of data before deleting
if arcpy.Exists("roadbuffer"):
arcpy.Delete_management("roadbuffer")
顯式指定文件夾中的所有要素文件
env.workspace = "F:/map"
fcs = arcpy.ListFeatureClasses("*","polygon")#尋找所有面矢量文件
for fc in fcs:
print fc.encode("utf-8")#含中文輸出UTF-8
顯示矢量文件中所有字元串類型的欄位名
fds = arcpy.ListFields ('F:\\map\\region.shp', "s*","")#以列表形式獲取shp文件中以s開頭的欄位名
for fd in fds:#for迴圈輸出欄位名
print fd.name