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

查看: 5907|回复: 9
收起左侧

python在arcgis中的应用

[复制链接]

11

主题

8490

铜板

13

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
792

爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章成就学员勋章

QQ
发表于 2018-6-15 13:24 | 显示全部楼层 |阅读模式
今天分享两个python应用小代码,一个是根据字段来编号,字段相同的按从1到XXX进行编号(虽然这功能用FME只需要一个转换器,但还是有想在Arcgis上面进行实现)。代码如下:
import arcpy
def ifdir(dir,key):
     if dir.get(key) is None:
         dir[key]=1
         return 1
     else:
         i=dir.get(key)+1
         dir1={key:i}
         dir.update(dir1)
         return i

def update(path,sourstr,deststr):
    dir={}
    cur=arcpy.UpdateCursor(path)
    for row in cur:
       str1=row.getValue(sourstr)
       number=ifdir(dir,str1)
       row.setValue(deststr,number)
       cur.updateRow(row)
    del row,cur   
path=r"e:\lianxi\bb\line.shp"     //文件所在位置
file1="bb"      //编号所区分的字段
fiel2="dd"      //编号要放的字段
update(path,file1,fiel2)
第二个小代码为批量修改gdb文件中某个字段的值,代码如下:
import os
import arcpy
from arcpy import env
def update(path):
     env.workspace=path
     for feature in arcpy.ListDatasets('',"Feature"):
         for featureClass in arcpy.ListFeatureClasses('',"All",feature):
             path1=os.path.join(path,feature)
             path2=os.path.join(path1,featureClass)
             cur=arcpy.UpdateCursor(path2)
             for row in cur:
                 if row.getValue("TAG") is None:      //判断TAG字段中的值是否为空
                     row.setValue("TAG",2)
                     cur.updateRow(row)
             del row,cur
def ergodic(path):
     list1=os.listdir(path)
     for path1 in list1:
         if os.path.isdir(os.path.join(path,path1)):
             list2=path1.split(".")
             if len(list2)==2:
                 update(os.path.join(path,path1))
def main1():
     path=arcpy.GetParameterAsText(0)
     ergodic(path)
     print "sucess"
main1()
同时第二小代码同时也适用shp格式数据,修改部分代码即可。



可以关注本人公众号:
                                  qrcode_for_gh_ecf7fff94f99_344.jpg
同时也可以加我微信进行交流:
                                          1819849031.jpg

评分

参与人数 2威望 +20 铜板 +90 收起 理由
得道与失道 + 10 感谢分享!
jimi21 + 20 + 80 感谢分享!

查看全部评分

26

主题

2万

铜板

104

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
474897

精华勋章宣传勋章爱心勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章

QQ
发表于 2018-6-18 15:58 | 显示全部楼层
我来学习一下,谢谢分享.
回复 支持 反对

使用道具 举报

0

主题

6917

铜板

6

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
491
发表于 2018-6-18 22:51 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

520

铜板

2

好友

助理工程师

Rank: 5Rank: 5

积分
152
发表于 2021-3-28 18:28 | 显示全部楼层
Python在ArcGIS
回复 支持 反对

使用道具 举报

0

主题

3106

铜板

11

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
450
发表于 2021-3-29 11:41 | 显示全部楼层
谢谢分享~!
回复

使用道具 举报

0

主题

1万

铜板

2

好友

地信院士

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

积分
2605
发表于 2021-12-16 13:55 | 显示全部楼层
感谢分享,支持
回复 支持 反对

使用道具 举报

2

主题

4万

铜板

8

好友

钻石会员

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

积分
7010
发表于 2021-12-19 09:00 | 显示全部楼层
谢谢分享
回复

使用道具 举报

10

主题

1万

铜板

22

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3911
发表于 2022-1-21 12:29 | 显示全部楼层
谢谢分享
回复

使用道具 举报

4

主题

4485

铜板

1

好友

地信院士

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

积分
2052
发表于 2024-2-28 10:47 | 显示全部楼层
感谢分享!
回复

使用道具 举报

0

主题

4万

铜板

10

好友

钻石会员

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

积分
6466
发表于 2024-3-4 22:37 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

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

本版积分规则

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