码迷,mamicode.com
首页 > 编程语言 > 详细

使用python从xls坐标文件中生成面要素

时间:2018-11-26 19:53:36      阅读:508      评论:0      收藏:0      [点我收藏+]

标签:字段   height   wrap   文件中   import   属性   work   array   als   

#根据xls文件生成图形数据,并赋值其它属性信息
# coding:utf8
import arcpy
import xlrd
 
arcpy.env.workspace = r"F:\test.gdb"
fc = "polygon"
cursor = arcpy.da.InsertCursor(fc, ["字段1", "字段2", "字段3", "SHAPE@"])
xlsfile = xlrd.open_workbook(r"F:\test.xls", "r")
mysheet1 = xlsfile.sheet_by_name("sheet1")
polygonarray = arcpy.Array()
rownum = mysheet1.nrows
colnum = mysheet1.ncols
fid = ""
count = 0
ismark = False
i = 0
try:
    for i in range(rownum):
        row = mysheet1.row_values(i)
        flowsn = row[1]
        if fid == "":
            fid = int(row[0])
        xmmc = row[2]
        bh = int(row[3])
        x = row[4]
        y = row[5]
        iswk = row[6]
        pnt = arcpy.Point()
        pnt.ID = bh
        pnt.X = x
        pnt.Y = y
        if fid == row[0]:
            if iswk == 1:
                polygonarray.add(pnt)
            else:
                if ismark:
                    polygonarray.add(pnt)
                else:
                    polygonarray.add(arcpy.Point())
                    ismark = True
                    polygonarray.add(pnt)
            if i == rownum - 1:
                poly = arcpy.Polygon(polygonarray)
                cursor.insertRow([fid, flowsn, xmmc, poly])
                print "要素{0}已经生成".format(fid)
                count = count + 1
                polygonarray.removeAll()
                ismark = False
        else:
            nfid = int(row[0])
            poly = arcpy.Polygon(polygonarray)
            row = mysheet1.row_values(i - 1)
            flowsn = row[1]
            xmmc = row[2]
            fid = int(row[0])
            cursor.insertRow([fid, flowsn, xmmc, poly])
            print "要素{0}已经生成".format(fid)
            count = count + 1
            polygonarray.removeAll()
            polygonarray.add(pnt)
            fid = nfid
            ismark = False
except Exception as e:
    print e.message
if cursor:
    del cursor
print "共生成要素{0}个".format(count)
 

使用python从xls坐标文件中生成面要素

标签:字段   height   wrap   文件中   import   属性   work   array   als   

原文地址:https://www.cnblogs.com/apromise/p/10021773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!