加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何使用Python实现SHP按照某一字段批量输出

(2010-10-14 15:57:19)
标签:

python

it

分类: 工作/开发方面

背景:比如有一个结合表(shp格式),现在要做分幅图,那么就要通过图框去切割数据库,要用Python去实现的话,其中一步就是将结合表按照图幅名称生成单个图框文件(shp格式),以下是代码:

# ---------------------------------------------------------------------------
# Select.py
# Created on: 星期四 十月 14 2010 11:53:19 上午
  (generated by ArcGIS/ModelBuilder)
# Usage: Select <Input_Features> <Expression>
# ---------------------------------------------------------------------------

# Import system modules
import sys, string, os, arcgisscripting

# Create the Geoprocessor object
gp = arcgisscripting.create()

#创建调试日志
log=open("c:\\PythonLog.txt","w")
   
try:
    fc=sys.argv[1]  #获得输入要素
    out_fld=sys.argv[3]  #获得输出要素的目录
    out_field=sys.argv[2]  #按“字段”值进行输出
    #获取指定字段的值
    #---------------------------------------------
    out_value=[]  #初始化数组out_value
    rows=gp.searchcursor(fc)  #获取所有字段
    row=rows.next()
    #循环字段
    while row:
        s=row.getvalue(out_field)  #获取字段值
        #判断如果值不在out_value数组里就添加进去
        if s not in out_value:
            log.write(s+'\n')
            out_value.append(s)
        row=rows.next()
    del rows,row
    #---------------------------------------------   

    #循环out_value,按指定字段进行输出
    for value in out_value:
        log.write(out_fld+"\\"+value+".shp"+'\n'      
        log.write(out_field+"='"+value+"'"+'\n')
        gp.select_analysis(fc,out_fld+"\\"+value+".shp",out_field+"='"+value+"'")
    print "执行完成!"
    #关闭调试日志
    log.close()   
except:
    print gp.getmessage(2)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有