• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅
使用Python开发ArcGIS应用1-获取数据相关信息

使用Python开发ArcGIS应用1-获取数据相关信息

八 15 2010 Published by Jack under Python, arcgis

这几天抽空写了一些arcgis python入门类的脚本,详细信息注解以后加入.首先是获取数据信息类的应用. 获取信息函数直接copy的.看起来有点繁琐.先不改了.嗯嗯=.=

import arcgisscripting
####  get field's info function
def PrintFiledsInfo(fc):
    des = gp.Describe(fc)
    fields = des.Fields
    fields.reset()
    field = fields.next()
    while field:
        print "|fieldname: |" + field.Name + "  |" + "fieldtype: |" + field.Type +" |"
        print "--------------------------------------------"
        field = fields.next()
#### print feature's Area function
def PrintArea(fc):
    rows = gp.searchcursor(fc)
    rows.reset()
    row = rows.next()
    while row:
        geom = row.GetValue("Shape")
        print geom.Type
        print "area: "  + float.__str__( geom.Area)
        row = rows.next()
 
###print feature's length function
def PrintLength(fc):
    rows = gp.searchcursor(fc)
    rows.reset()
    row = rows.next()
    i = 0
    while row and i < 10:
        geom = row.GetValue("Shape")
        print geom.Type
        print "line: "  + float.__str__( geom.length)
        i = i + 1
        row = rows.next()
## print point x&y
def PrintPoint(fc):
    rows = gp.searchcursor(fc)
    rows.reset()
    row = rows.next()
    i = 0
    while row and i < 10:
        geom = row.GetValue("Shape")
        print geom.Type
        print "point: "  +  geom.firstpoint
        i = i + 1
        row = rows.next()
 
#######main func
 
if __name__ == "__main__":
 
    gp = arcgisscripting.create()
    gp.Workspace = r"C:\ArcGIS\DeveloperKit\SamplesNET\data\SanFranciscoNetwork"
 
    fcs = gp.ListFeatureClasses()
    fcs.reset()
    fc = fcs.next()
    while fc:
        print "**************"
        print "* " + fc + " "
        print "**************"
 
        PrintFiledsInfo(fc)
 
        des = gp.Describe(fc)
 
        if des.shapetype == "Polygon":
            PrintArea(fc)
 
        if des.shapetype == "Polyline":
            PrintLength(fc)
 
        if des.shapetype == "Point":
            PrintPoint(fc)
 
        fc = fcs.next()
posted on 2013-05-14 21:29  bobird  阅读(327)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3