1、  SDE连接文件建立使用Desktop系统工具箱建立SDE连接文件,如果catalog已经直连到SDE可以省略此步骤。2、  Python脚本导入Toolbox设置脚本中使用变量为SDE表空间,在导入脚本过程中只需要指定这一个变量即可(1)      新建工具箱(2)      添加脚本

(3)      变量设置输入名称,在数据类型下拉列表中选择“工作空间”

(4)      脚本执行在工具箱中双击建立的脚本,打开对话框,导航到SDE连接文件位置,按确定执行重建索引工作。3、  脚本主要逻辑及脚本异常情况设置
脚本通过遍历SDE数据库下面的要素数据集以及要素类进行生成索引工作。生成索引过程中要确定要素不被其他程序占用,否则会出现独占锁情况出现,另外使用的建立空间索引为默认索引参数,如下所示0,0,0代表三级索引为默认索引arcpy.AddSpatialIndex_management(fc, 0, 0, 0)。
遍历完成后,获取该要素是否已经已有空间索引,已有索引先进行删除索引,然后进行重建,没有索引直接增加空间索引。
脚本如下:
# -*- coding: cp936 -*-
import os
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
# path = r"C:\Users\Administrator\AppData\Roaming\ESRI\Desktop10.2\ArcCatalog\连接到 localhost.sde"
path = arcpy.GetParameter(0)
arcpy.env.workspace = path
#遍历SDE下面要素类#
fcs = arcpy.ListFeatureClasses()
for fc in fcs:try:desc = arcpy.Describe(fc)except:arcpy.AddError('Failed:' + fc + " Check this featureclass")#判断是否已经有空间索引
    if (str(desc.hasSpatialIndex) == 'True'):try:arcpy.SetProgressorLabel("正在执行要素    " + fc + "...")#如果有空间索引先删除原有索引,然后重新创建
            arcpy.RemoveSpatialIndex_management(fc)arcpy.AddMessage('Success:' + fc + ' Start Delete Spatial index')arcpy.AddSpatialIndex_management(fc, 0, 0, 0)arcpy.AddMessage('Success:' + fc + '  Create Spatial index Completed')except:arcpy.AddError('Failed:' + fc + " error")else:try:arcpy.SetProgressorLabel("正在执行要素    " + fc + "...")arcpy.AddSpatialIndex_management(fc, 0, 0, 0)arcpy.AddMessage('Success:' + fc + " had no Spatial index,just now Created Spatial Index ")except:arcpy.AddError('Failed:' + fc + " error")#遍历SDE下面的数据集
DSs = arcpy.ListDatasets()
print(DSs)
for ds in DSs:#遍历数据集下面的要素类
    arcpy.env.workspace = str(path) + "\\" + dsprint(arcpy.env.workspace)ff = arcpy.ListFeatureClasses()for fc in ff:try:desc = arcpy.Describe(fc)except:arcpy.AddError('Failed:' + fc + "Check this featureclass")if (str(desc.hasSpatialIndex) == 'True'):try:arcpy.SetProgressorLabel("正在执行要素    " + fc + "...")#如果有空间索引先删除原有索引,然后重新创建
                arcpy.RemoveSpatialIndex_management(fc)arcpy.AddMessage('Success:' + fc + ' Start Delete Spatial index')arcpy.AddSpatialIndex_management(fc, 0, 0, 0)arcpy.AddMessage('Success:' + fc + '  Create Spatial index Completed')except:arcpy.AddError('Failed:' + fc + " error")else:try:arcpy.SetProgressorLabel("正在执行要素    " + fc + "...")arcpy.AddSpatialIndex_management(fc, 0, 0, 0)arcpy.AddMessage('Success:' + fc + " had no Spatial index,just now Created Spatial Index ")except:arcpy.AddError('Failed:' + fc + " error")

ArcGIS Python arcpy 批量创建SDE空间索引相关推荐

  1. Python(arcpy) 批量计算流域面积

    需要注意: 1.只有面元素才可以计算面积,所以如果手上数据是边界线的文件,则需要将之转为面文件,参见Python(arcpy) 批量将线元素转化为面元素 2.地理坐标系无法计算面积,需要在投影坐标系下 ...

  2. python 批量创建线程_【Python】批量创建线程

    在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...

  3. 【Python】批量创建线程

    在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...

  4. 【python arcpy批量重分类】

    批量重分类 批量重分类 批量重分类 import arcpy from arcpy.sa import * arcpy.CheckOutExtension('spatial') arcpy.env.w ...

  5. ArcGIS Python ​影像批量裁剪

    该工具在:"14综合\工具箱.tbx\影像裁剪\按记录批量裁剪影像",影像数据按矢量面要素批量裁剪,界面如图14-5所示. 图14-5 影像批量裁剪 按一个矢量面数据,按字段值相同 ...

  6. Python:批量创建暗黑2的RR小号

    前言: 暗黑玩了17年,啥都玩过了,现在主要是休闲,平时也会编程做点小脚本,不过暗黑2的脚本从来没做过. RR的第一步是创建小号,但是重复劳动较多,所以想试试Python怎么实现. 花了一个小时写了出 ...

  7. 基于Python(Arcpy)批量对遥感影像MK与SEN检验,结果为两张TIF图(MK与SEN)

    def mkSen_cal(source_folder,outpt_folder):arcpy.CheckOutExtension("spatial")arcpy.env.work ...

  8. 用python实现批量创建文件夹

    import os file_path=os.path.abspath(r"D:\Myproject\exp0203") #生成文件夹的路径 for i in range(1,12 ...

  9. python如何批量创建文件夹_python使用循环实现批量创建文件夹示例

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. 【camera】基于深度学习的车牌检测与识别系统实现(课程设计)
  2. 差分约束问题 ---- 2019ccpc哈尔滨A. Artful Paintings[二分+差分约束+建图剪枝]
  3. Unity3D在iOS下为啥不能更新的资料收集
  4. console程序显示彩色文字 .
  5. 批量保存到mysql_关于保存批量数据进入mysql
  6. 【计算机网络】手动配置hosts文件解决使用GitHub和Coursera网站加载慢/卡的问题
  7. 【Java】HashMap构建登录程序
  8. 浅谈OpenCL之 应用程序总体步骤思路
  9. bash awk_Bash指南,Linux终端技巧,DevOps错误,Python,awk,NASA等
  10. 【Java从0到架构师】项目实战 - 驾考(旧)- Freemarker、MyBatis-Plus
  11. 设计模式网站 http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html
  12. mysql 查询优化 ~ 分区表查询的探索
  13. mysql中不重复_mysql中distinct的用法(不重复记录)
  14. 阅读《视音频编解码技术零基础学习方法-雷霄骅》摘要
  15. html 鼠标单击显示div,3.1.2 利用鼠标单击实现DIV的选取
  16. Android Java 虚拟机
  17. setTimeout expects a function as first argument but got undefined
  18. Python练习小程序 定时关机小脚本
  19. java table数据转excel,excel将数据转化成表格-如何将java数据转换成Excel表格
  20. 大专生程序员找工作的一点小建议 知识分享 经验分享

热门文章

  1. Discuz! X3 数据字典
  2. (原因)MLX96014 红外温度传感器EEPROM内数据修改失败
  3. 校园英语杂志《校园英语》杂志社《校园英语》编辑部2023年第一期目录
  4. DevOps实战系列【第八章】:详解Jenkins集成Docker私服Nexus3
  5. 用虚幻4开发搭积木的VR游戏
  6. NLP对数据集进行(词性标注):将所有的词性进行汇总并且编号;将所有的英文词对应的词性转换成编号,得到list
  7. 运行手游服务器电脑,服务器上跑PC游戏,可行吗?
  8. 普源数字示波器DHO1204技术参数
  9. 计算机技术发展趋势是什么,计算机以后的发展趋势是什么?
  10. 4.react受控组件与非受控组件