环境:
ArcGIS10.6.1、Oracle12c R1
示例一:对sde中的要素类执行缓冲区分析
import arcpy
from arcpy import env
env.workspace = r"C:\Users\admin\AppData\Roaming\ESRI\Desktop10.6\ArcCatalog\Connection to orcl.sde"
arcpy.Buffer_analysis("SDE.area_1" , "E:/output/majorrdsBuffered", "200 Meters", "FULL", "ROUND", "NONE")
其中env.workspace获取的是sde的名称路径,通过在catalog中选中sde,右键属性,在Database Properties下的“Name”选项能够看到sde的路径。
而“SDE.area_1”是sde中存放的要素类的名称,也就是对这个要素类执行缓存区分析。
“E:/output/majorrdsBuffered”是执行缓存区后输出文件的路径,也就是存放在output文件夹,生成的文件名为“majorrdsBuffered” 。
示例二:遍历sde中的要素类,以及获取指定要素类的某个字段下要素记录内容
import arcpy
import os
from arcpy import env
env.overwriteOutput = True
env.workspace = r"C:\Users\admin\AppData\Roaming\ESRI\Desktop10.6\ArcCatalog\Connection to orcl.sde"
# check name
fc_list = arcpy.ListFeatureClasses()
for fcname in fc_list:
print fcname, arcpy.Exists(fcname), arcpy.Exists(os.path.join(env.workspace,fcname))
fcname = "SDE.area_1"
with arcpy.da.SearchCursor(os.path.join(env.workspace,fcname), "NAME") as cursor:
for row in cursor:
print row[0]