如何利用arcpy将坐标点对数据写入GIS中,创建新的多边形要素

如何利用arcpy将坐标点对数据写入GIS中,创建新的多边形要素

数据准备

首先,需要准备一个含有X,Y坐标的txt文件,文件的X,Y坐标需要首尾相连,这样,这个坐标文件才能用于创建一个多边形。txt文件内容如下:

IDXY
055
141
223
355

表格中他们通过逗号隔开,ID为坐标点的序号,XY表示点在空间中的坐标,本例中的XY坐标为简单的笛卡尔坐标,并不具备实际意义上的地理空间坐标系,在实际应用中可使用真实的地理坐标或者投影坐标。

方法简介

接下来的任务就是如何使用arcpy这个站点包把已知的数据写入到GIS中,这里需要引入在数据库中常用的游标这个概念,它主要用于访问表格中的每一行记录或者向表格中插入新的记录,arcpy中有三种类型的游标:搜索游标、插入游标、更新游标,他们各自的方法如下表所示:

在这个实验中我们用到的是插入游标arcpy.da.InsertCursor,注意,插入游标函数在arcpy这个顶级包下面也有一个相同的arcpy.InsertCursor,此为之前版本常用的游标函数,这里需要选择数据处理模块da下的插入游标函数,下面就开始愉快的编程之旅吧。

具体过程

读取文本文件
将读取到的XY坐标以点的形式写入数组
建立游标对象
利用点数组构造多边形对象
将多边形对象插入要素类
关闭游标和文件
  • 导入数据处理所需的模块
import arcpy from arcpy 
import env 
import os

  • 导入工作空间和数据
# 设置工作空间
env.workspace = r'E:\py2'
# 输入数据,设置要素类路径
infile = 'E:/py2/arcpy/points.txt'
rootpath = 'E:/py2/arcpy'
fc = 'newpoly.shp'
allpathfc = os.path.join(rootpath, fc)
  • 创建必要的要素、对象
# 建立要素类
arcpy.CreateFeatureclass_management(rootpath, fc, 'Polygon')
# 建立游标对象
cursor = arcpy.da.InsertCursor(allpathfc, ['SHAPE@']) # allpathfc 需为全路径,否则会报错
# 建立点对象数列Array()
array = arcpy.Array()
point = arcpy.Point()

  • 打开文件,生成多边形对象
f = open(infile)
files = f.readlines()
f.close()
for line in files: 
    point.ID, point.X, point.Y = line.split(',')  
    array.add(point)
polygon = arcpy.Polygon(array)
  • 插入多边形对象到要素类,最后关闭游标对象
# 插入游标
cursor.insertRow([polygon])
del cursor

参考文献:
[1]Zandbergen P.A., 2014. 面向ArcGIS的python脚本编程: 人民邮电出版社.

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页