掌握林业信息技术 共创中国蓝 加入收藏  设为首页 
您现在的位置: 主页 > 技术园地 > 3S技术 >
分类归档
林业技术新闻
林业基础知识
植物价值
技术园地
行业标准
政策法律法规
林业软件
3S技术内容

基于Python读取Excel数据生成多边形


发布日期:2016-07-15 15:52      阅读次数:       文章摘自:未知

import xlrd,xlwt,arcpy,os
 
xlsPath = arcpy.GetParameterAsText(0)
polPath = arcpy.GetParameterAsText(1)
 
path = os.path.dirname(polPath)
outputname = os.path.basename(polPath)
# 新建一个空的面要素图层
arcpy.CreateFeatureclass_management(path, outputname,"POLYGON")
arcpy.management.AddField(outputname,"bh","text",18,"","")
arcpy.management.AddField(outputname,"Name","text",18,"","")
 
 
data = xlrd.open_workbook(xlsPath)  
table = data.sheets()[0]#通过索引顺序获取  
cols = table.col_values(3) 
nrows = table.nrows
point = arcpy.Point()
array = arcpy.Array() 
polygonGeometryList = [] 
cur =  arcpy.InsertCursor(outputname)
for i in range(1,nrows): 
     str = table.cell(i,3).value
     bh =  table.cell(i,4).value
     name = table.cell(i,1).value
     points = str.split(';')#这里代表范围坐标里面的坐标是以";"来进行分割的,根据坐标的不同可以修改这里  
     for j in points:
         xy = j.split(',') #这里代表范围坐标里面的每个XY坐标是用“,”分割的
         print xy[0] 
         print xy[1]
         print '\n'  
         point.X = float(xy[0]);
         point.Y = float(xy[1])
         array.add(point)
     row = cur.newRow()
     row.shape = array
     row.name = name
     array.removeAll() 
     cur.insertRow(row)




*****************************************************************************
       print xy[0] 
         print xy[1]
         print '\n'  
         point.X = float(xy[0]);
         point.Y = float(xy[1])#当EXECL表里面的范围坐标字段的XY坐标是反转过来的话,那么只需要将这里修改一下就行了,修改为如下代码


链接: https://pan.baidu.com/s/1gfCwr6N 密码: wyq7

尚未注册畅言帐号,请到后台注册