ArcGIS Python arcpy 批量创建SDE空间索引
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空间索引相关推荐
- Python(arcpy) 批量计算流域面积
需要注意: 1.只有面元素才可以计算面积,所以如果手上数据是边界线的文件,则需要将之转为面文件,参见Python(arcpy) 批量将线元素转化为面元素 2.地理坐标系无法计算面积,需要在投影坐标系下 ...
- python 批量创建线程_【Python】批量创建线程
在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...
- 【Python】批量创建线程
在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...
- 【python arcpy批量重分类】
批量重分类 批量重分类 批量重分类 import arcpy from arcpy.sa import * arcpy.CheckOutExtension('spatial') arcpy.env.w ...
- ArcGIS Python 影像批量裁剪
该工具在:"14综合\工具箱.tbx\影像裁剪\按记录批量裁剪影像",影像数据按矢量面要素批量裁剪,界面如图14-5所示. 图14-5 影像批量裁剪 按一个矢量面数据,按字段值相同 ...
- Python:批量创建暗黑2的RR小号
前言: 暗黑玩了17年,啥都玩过了,现在主要是休闲,平时也会编程做点小脚本,不过暗黑2的脚本从来没做过. RR的第一步是创建小号,但是重复劳动较多,所以想试试Python怎么实现. 花了一个小时写了出 ...
- 基于Python(Arcpy)批量对遥感影像MK与SEN检验,结果为两张TIF图(MK与SEN)
def mkSen_cal(source_folder,outpt_folder):arcpy.CheckOutExtension("spatial")arcpy.env.work ...
- 用python实现批量创建文件夹
import os file_path=os.path.abspath(r"D:\Myproject\exp0203") #生成文件夹的路径 for i in range(1,12 ...
- python如何批量创建文件夹_python使用循环实现批量创建文件夹示例
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- 【camera】基于深度学习的车牌检测与识别系统实现(课程设计)
- 差分约束问题 ---- 2019ccpc哈尔滨A. Artful Paintings[二分+差分约束+建图剪枝]
- Unity3D在iOS下为啥不能更新的资料收集
- console程序显示彩色文字 .
- 批量保存到mysql_关于保存批量数据进入mysql
- 【计算机网络】手动配置hosts文件解决使用GitHub和Coursera网站加载慢/卡的问题
- 【Java】HashMap构建登录程序
- 浅谈OpenCL之 应用程序总体步骤思路
- bash awk_Bash指南,Linux终端技巧,DevOps错误,Python,awk,NASA等
- 【Java从0到架构师】项目实战 - 驾考(旧)- Freemarker、MyBatis-Plus
- 设计模式网站 http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html
- mysql 查询优化 ~ 分区表查询的探索
- mysql中不重复_mysql中distinct的用法(不重复记录)
- 阅读《视音频编解码技术零基础学习方法-雷霄骅》摘要
- html 鼠标单击显示div,3.1.2 利用鼠标单击实现DIV的选取
- Android Java 虚拟机
- setTimeout expects a function as first argument but got undefined
- Python练习小程序 定时关机小脚本
- java table数据转excel,excel将数据转化成表格-如何将java数据转换成Excel表格
- 大专生程序员找工作的一点小建议 知识分享 经验分享
热门文章
- Discuz! X3 数据字典
- (原因)MLX96014 红外温度传感器EEPROM内数据修改失败
- 校园英语杂志《校园英语》杂志社《校园英语》编辑部2023年第一期目录
- DevOps实战系列【第八章】:详解Jenkins集成Docker私服Nexus3
- 用虚幻4开发搭积木的VR游戏
- NLP对数据集进行(词性标注):将所有的词性进行汇总并且编号;将所有的英文词对应的词性转换成编号,得到list
- 运行手游服务器电脑,服务器上跑PC游戏,可行吗?
- 普源数字示波器DHO1204技术参数
- 计算机技术发展趋势是什么,计算机以后的发展趋势是什么?
- 4.react受控组件与非受控组件