地信网论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

免费视频|新人指南|答学员问|投诉删帖

禁止上传涉密资料|赚取铜板|附件下载

查看: 803|回复: 2
收起左侧

[经验共享] python在arcgis中的应用

[复制链接]

7

主题

6625

铜板

8

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
638
QQ
发表于 2018-6-15 13:24 | 显示全部楼层 |阅读模式
土地论坛

马上注册地信网,享受更多功能,学习更多知识,成就人生精彩!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
今天分享两个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 感谢分享!

查看全部评分

24

主题

1万

铜板

62

好友

地信贵宾

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

积分
241683

宣传勋章爱心勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章5周年纪念勋章

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

使用道具 举报

0

主题

2729

铜板

3

好友

助理工程师

Rank: 5Rank: 5

积分
191
发表于 2018-6-18 22:51 | 显示全部楼层
地信网论坛版规和新人指南
感谢分享
回复

使用道具 举报

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

本版积分规则

土流网招商加盟广告
在线客服

新人指南|地信论坛 ( 湘ICP备14003170号-5 湖南土流信息有限公司 版权所有 关于地信 联系方式 邮箱登陆

湘公网安备 43010302000511号

Powered by Discuz! X3.2

快速回复 返回顶部 返回列表