arcpy操作sde中的要素类

环境:

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的路径。

arcpy操作sde中的要素类

而“SDE.area_1”是sde中存放的要素类的名称,也就是对这个要素类执行缓存区分析。 

arcpy操作sde中的要素类

“E:/output/majorrdsBuffered”是执行缓存区后输出文件的路径,也就是存放在output文件夹,生成的文件名为“majorrdsBuffered” 。

arcpy操作sde中的要素类

示例二:遍历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]

 arcpy操作sde中的要素类