IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> (3)ArcPy:创建点线面要素及添加字段 -> 正文阅读

[Python知识库](3)ArcPy:创建点线面要素及添加字段

使用ArcPy创建常用的要素文件时(shapefile),如、点、线面要素,其创建步骤基本相同。线、面要素与点要素创建的不同在于,点要素使用单个点坐标创建,线和面则是将一组点放入一个数组中,使用数组来创建线或者面。下面展示创建要素的基本步骤
均为在PyCharm中进行

## 创建要素的基本步骤:
# 1.输入数据
# 2.定义空间参考
# 3.确定创建要素的路径、名称
# 4.创建要素类
# 5.创建要素字段
# 6.创建游标
# 7.创建点,遍历所有数据
# 8.新建要素、新建行
# 9.将新建的行写入游标中

点、线、面要素的创建如上所述。下面展示点线面要素创建的python代码以及相应的解释:
1.点要素的创建

#coding:utf-8
import arcpy
points=[[113.12345,34.3654],[113.12365,34.65894],[113.12389,34.6547]]

sp=arcpy.SpatialReference(4326)
path="H:\pyStudy\data_points" #输出创建文件的路径
filename="testPoint.shp"      #所创建文件的名称
fc=arcpy.CreateFeatureclass_management(path,filename,"POINT","","","",sp) #创建要素类
arcpy.AddField_management(fc,"FIDX","TEXT",50) #创建字段,即属性表中的字段名
arcpy.AddField_management(fc,"X","TEXT",50)
arcpy.AddField_management(fc,"Y","TEXT",50)
cursor=arcpy.InsertCursor(fc) #创建游标

index=0
for pt in points:
    point=arcpy.Point()
    point.X=pt[0]
    point.Y=pt[1]
    row=cursor.newRow()
    row.shape=point
    row.FIDX=index #将字段数据写入行中
    row.X=pt[0]
    row.Y=pt[1]
    cursor.insertRow(row)
    index+=1
print "Finished!"
print "创建成功!"


##创建多点,即多个点为一条记录
pointArray=[
            [[113.12345,34.3654],[113.12365,34.65894],[113.12389,34.6547]],
            [[113.1235,34.3654],[113.12365,34.6894],[113.2389,34.6547]],
            [[113.12345,34.654],[113.365,34.6894],[113.9,34.6547]],
           ]
sp=arcpy.SpatialReference(4326)
path="H:\pyStudy\data_points"
filename="testMultiPoints"
fc=arcpy.CreateFeatureclass_management(path,filename,"MULTIPOINT","","","",sp)
arcpy.AddField_management(fc,"FIDn","TEXT",50)
cursor=arcpy.InsertCursor(fc)

index=0
for coord in pointArray:
    array=arcpy.Array()
    for pt in coord:
        point=arcpy.Point()
        point.X=pt[0]
        point.Y=pt[1]
        array.add(point)
    multipoint=arcpy.Multipoint(array)

    row=cursor.newRow()
    row.shape=multipoint
    row.FIDn=index
    cursor.insertRow(row)
    index+=1
print "创建多点完成!"#创建单点

2.线要素的创建

###创建线要素
polylinePts=[
            [[113.12345,34.3654],[113.12365,34.65894],[113.12389,34.6547]],
            [[113.1235,34.3654],[113.12365,34.6894],[113.2389,34.6547]],
            ] #每组有三个点,每组为一条线段
sp=arcpy.SpatialReference(4326)
path="H:\pyStudy\data_polylines"
filename="test_polylines.shp"
fc=arcpy.CreateFeatureclass_management(path,filename,"POLYLINE","","","",sp)
arcpy.AddField_management(fc,"polyline","TEXT",50)
cursor=arcpy.InsertCursor(fc)

for coord in polylinePts:
    array=arcpy.Array()
    for pt in coord:
        point=arcpy.Point()
        point.X=pt[0]
        point.Y=pt[1]
        array.add(point)
    polyline=arcpy.Polyline(array)
    row=cursor.newRow()
    row.shape=polyline
    row.polyline="***123"
    cursor.insertRow(row)
print "创建线要素完成!"

3.面要素的创建

###创建面要素
polygonPts=[
             [[113.12345,34.3654],[114.12365,34.65894],[113.12389,34.6547]],
             [[113.1235,34.3654],[113.12365,35.6894],[113.2389,34.6547]],
           ] #每组三个点,三个点组成一个面
sp=arcpy.SpatialReference(4326)
path="H:\pyStudy\data_polygon"
filename="test_polygons.shp"
fc=arcpy.CreateFeatureclass_management(path,filename,"POLYGON","","","",sp)
arcpy.AddField_management(fc,"Polygon","TEXT",50)
cursor=arcpy.InsertCursor(fc)

for coord in polygonPts:
    array = arcpy.Array()
    for pt in coord:
        point=arcpy.Point()
        point.X=pt[0]
        point.Y=pt[1]
        array.add(point)
    polygon=arcpy.Polygon(array)
    row=cursor.newRow()
    row.shape=polygon
    row.Polygon="Polygon"
    cursor.insertRow(row)
print "面要素创建完成!"
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:36:21  更:2022-05-09 12:37:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 18:34:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计