免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 5183|回复: 27
收起左侧

[二次开发] arcgis10.2.2建库脚本(内含工具)

  [复制链接]

2

主题

6174

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
304

爱心勋章

发表于 2021-9-23 17:28 | 显示全部楼层 |阅读模式
PS:本帖是经转发到论坛,并非楼主原创。


脚本工具:python2.7
脚本功能:读取EXCEL表中的图层名和字段名建库,创建GDB数据库。
脚本代码:最初代码来源于QQ数据交流群
  1. # -*- coding:cp936 -*-
  2. import xlrd
  3. import arcpy
  4. import os


  5. def main():
  6.     # 输入表格
  7.     xl0 = arcpy.GetParameterAsText(0)
  8.     # 输出数据库
  9.     out_folder = arcpy.GetParameterAsText(1)
  10.     out_name = arcpy.GetParameterAsText(2)
  11.     # 打开表
  12.     table0 = xlrd.open_workbook(xl0)

  13.     features = table0.sheets()[0]  # 图层列表
  14.     arcpy.CreateFileGDB_management(out_folder, out_name)
  15.     for i in range(1, features.nrows):
  16.         (xh0, ysbm0, jhtz0, ysmc0, ystj0, bz0) = features.row_values(i)[:6]  # 序号-图层名称(要素别名)-几何特征-属性表名(要素名称)-约束条件-备注
  17.         ysmc0 = ysmc0.encode('unicode-escape').decode('string_escape')
  18.         jhtz0 = jhtz0.encode('unicode-escape').decode('string_escape')
  19.         sjkdz0 = os.path.join(out_folder, out_name + ".gdb")  # 数据库地址
  20.         ysdz0 = os.path.join(sjkdz0, ysmc0)  # 要素地址
  21.         arcpy.CreateFeatureclass_management(sjkdz0, ysmc0, jhtz0)  # 创建要素
  22.         arcpy.AlterAliasName(ysdz0, ysbm0)
  23.         arcpy.AddMessage(u"要素 " + ysbm0 + u" 创建成功")
  24.         fields = table0.sheet_by_name(ysmc0)  # 字段列表
  25.         for j in range(1, fields.nrows):  # 获取字段列表工作表每行的字段属性
  26.             (xh, zdmc, zddm, zdlx, zdcd, xsws, yz, ystj) = fields.row_values(j)[
  27.                                                            :8]  # 序号-字段名称(字段别名)-字段代码-字段类型-字段长度-小数位数-值域-约束条件
  28.             zddm = zddm.encode('unicode-escape').decode('string_escape')
  29.             zdlx = zdlx.encode('unicode-escape').decode('string_escape')
  30.             zdcd = str(int(zdcd))
  31.             ystj = ystj.encode('unicode-escape').decode('string_escape')
  32.             if ystj == "M":
  33.                 if zdlx == "TEXT":
  34.                     arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", zdcd, zdmc, "NON_NULLABLE", "", "")
  35.                 else:
  36.                     arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", "", zdmc, "NON_NULLABLE", "", "")
  37.             else:
  38.                 if zdlx == "TEXT":
  39.                     arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", zdcd, zdmc, "NULLABLE", "", "")
  40.                 else:
  41.                     arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", "", zdmc, "NULLABLE", "", "")
  42.             arcpy.AddMessage(u"字段 " + zddm + u" 添加完成")


  43. if __name__ == '__main__':
  44.     main()
复制代码



C建库程序表格模板.zip

9.52 KB, 下载次数: 290

代码模板

建库程序.zip

2.82 KB, 下载次数: 297

成品工具

评分

参与人数 1铜板 +2 收起 理由
携盘走天涯 + 2 感谢分享!

查看全部评分

2

主题

6174

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
304

爱心勋章

 楼主| 发表于 2021-9-24 09:19 | 显示全部楼层
hunterlcg 发表于 2021-9-24 08:31
哥们你搬的真快 我放在吾爱破解上的

老哥,我也是第一时间在吾爱上面看到你发的帖子,觉得这个非常有用,就搬过来了,生怕哪天那边变天没法下载,赶紧搬过来这边,望见谅哈,我不是故意的
回复 支持 1 反对 0

使用道具 举报

5

主题

4402

铜板

3

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
977
发表于 2021-9-24 08:31 | 显示全部楼层
哥们你搬的真快 我放在吾爱破解上的
回复 支持 0 反对 0

使用道具 举报

21

主题

9万

铜板

83

好友

地信学员

开开心心每一天

Rank: 12Rank: 12Rank: 12

积分
12841
发表于 2021-9-23 19:14 | 显示全部楼层
謝謝提供分享有空度用一下看看
回复 支持 反对

使用道具 举报

0

主题

3万

铜板

10

好友

VIP会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
992

爱心勋章活跃勋章

发表于 2021-9-23 22:09 | 显示全部楼层
我想知道在哪个QQ群
回复 支持 反对

使用道具 举报

1

主题

1万

铜板

3

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2652
发表于 2021-9-24 08:17 | 显示全部楼层
謝謝提供分享謝謝提供分享謝謝提供分享
回复 支持 反对

使用道具 举报

2

主题

6174

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
304

爱心勋章

 楼主| 发表于 2021-9-24 11:28 | 显示全部楼层
猫猫咪 发表于 2021-9-23 22:09
我想知道在哪个QQ群

具体的群我不清楚,我也没有在那个群,都是群友下载放出来的
回复 支持 反对

使用道具 举报

0

主题

173

铜板

0

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
160
发表于 2021-9-24 14:51 手机频道 | 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

2

主题

2192

铜板

2

好友

助理工程师

Rank: 5Rank: 5

积分
359
发表于 2021-11-18 13:22 | 显示全部楼层
感谢分享,谢谢
回复 支持 反对

使用道具 举报

30

主题

2万

铜板

59

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6284
QQ
发表于 2022-1-23 09:45 | 显示全部楼层
感谢分享:mg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表