arcpy批量将excel一些列的点坐标制作成面

2023-10-26

使用Arcpy可以批量将Excel表格中的点坐标制作成面,并将对应组点的属性写入到对应面的属性中。


import arcpy
import xlrd

# 设置输入数据路径
excel_file = r"C:\data\points.xlsx"  # 包含点坐标和属性的Excel表格
output_feature_class = r"C:\data\polygons.shp"  # 输出的面要素类路径

# 打开Excel表格
workbook = xlrd.open_workbook(excel_file)
worksheet = workbook.sheet_by_index(0)

# 获取Excel表格的列数
num_cols = worksheet.ncols

# 创建面要素类
arcpy.CreateFeatureclass_management(arcpy.env.workspace, 
                                    arcpy.Describe(output_feature_class).name,
                                    "POLYGON")

# 添加字段到面要素类
for col in range(1, num_cols):  # 假设第一列为点坐标,默认不包含在面属性中
    field_name = str(worksheet.cell_value(0, col))  # 字段名为Excel表格第一行
    arcpy.AddField_management(output_feature_class, field_name, "TEXT")

# 打开面要素类的编辑会话
with arcpy.da.Editor(arcpy.env.workspace) as edit_session:
    # 插入面要素
    with arcpy.da.InsertCursor(output_feature_class, ["SHAPE@"] + [str(worksheet.cell_value(0, col)) for col in range(1, num_cols)]) as cursor:
        # 遍历Excel表格的每一行
        for row_id in range(1, worksheet.nrows):
            # 提取点坐标
            points = []
            for col in range(0, num_cols-1):
                x = float(worksheet.cell_value(row_id, col))
                y = float(worksheet.cell_value(row_id, col + 1))
                points.append(arcpy.Point(x, y))

            # 构建面几何对象
            polygon = arcpy.Polygon(arcpy.Array(points))
            
            # 提取对应的属性
            attributes = [worksheet.cell_value(row_id, col) for col in range(1, num_cols)]
            
            # 插入新的面要素
            cursor.insertRow([polygon] + attributes)
 

在上述代码中,我们首先设置了输入数据的路径,即包含点坐标和属性,代码中的路径和文件名应根据你自己的数据进行相应修改。另外,坐标系设置为WGS 84经纬度坐标系(EPSG 4326),如果使用的是其他坐标系,请相应修改spatial_reference变量。

该代码将会根据Excel表格中的点坐标数据,创建面要素类并插入对应的面要素。同时,将Excel表格中对应组点的属性数据写入到面要素的属性中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arcpy批量将excel一些列的点坐标制作成面 的相关文章

随机推荐

  • Mysql-通过创建存储过程完成“对多个同类表进行查询并将结果汇总储存在新表中”

    案例背景 公司数据储存在N张表中 N是大数 现在需要求每个类别某类数据topN用户的数据 代码结果 创建存储过程将数据从多个相同表中查询求topN并存入 本文主要内容 知识点 分组查询topN问题 https editor csdn net
  • 雅可比矩阵机器学习_深度学习中的Matrix Calculus (一)

    绝大多数网络上对深度学习公式的推导教程notation混乱 而专门介绍Matrix Calculus的材料可能又过于繁杂 其实在深度学习中用到的矩阵微积分并不艰深 看完之后你就可以愉快的进行各种推导了 本文仅作为优秀资源的搬运总结 有余力的
  • SQL 备份表-造数据-还原表

    不影响日后工作的造数据步骤 1 备份表内的内容 2 清表内内容 3 给表造数据 4 还原表 1 备份表内的内容 create table lt 库名2 gt lt 表名2 gt as select from lt 库名1 gt lt 表名1
  • 搭建iscsi存储系统

    内容 常见硬盘介绍 NAS和SAN服务器概述 实战 配置IP SAN服务器 实战 IP SAN服务器日常操作 存储设备 阵列柜 SAS 容量小 300G 600G 900G 价格贵 SATA 容量大 500G 750G 1T 2T 3T 4
  • HackMyVM Influencer

    HackMyVM Influencer 靶机IP 192 168 173 148 信息收集 nmap端口扫描 开启80 2121端口 ftp连接2121端口 匿名用户登录 下载所有文件 查看note txt 依次对图片文件 进行密码爆破 在
  • for和do-while循环以及break和continue语句

    目录 for循环 语法形式 循环的执行流程图 for循环和while循环的区别 例子 do while循环 语法形式 循环的执行流程图 例子 break和continue语句 break和continue在不同循环中的区别 while fo
  • 20张程序员才懂的搞笑图!保准你笑出猪叫......

    温馨提示 请勿在以下场景食用本文 吃饭时 挤电梯时 路过精神病院时 HTML的4种黑法 扫地阿姨 HTML确实是一门编程语言啊 扫地阿姨 所以HTML程序员不能称自己是程序员 扫地阿姨 这个黑的太过分了吧 扫地阿姨 小姑娘我被你的外表欺骗的
  • Java基础之字符常量

    表示一个字符 一个字符常量要用一对英文半角格式的单引号 引起来 它可以是英文字母 数字 标点符号 以及由转义序列来表示的特殊字符 a 1 r u0000 u0000 表示一个空白字符 即在单引号之间没有任何字符 之所以能这样表示是因为 Ja
  • 线程安全集合类概述

    HashTable和Vector 遗留的线程安全实现 效率较低 HashTable map的实现 Vector list的实现 Collections中的带synchronized修饰实现类 如synchronizedMap synchro
  • 反爬机制之验证setcookie

    反爬表现 在使用python或rust进行爬虫的时候的有时会遇到请求返回一段含有只含有js代码的html页面如图 分析及优化文件 首先解决转义字符 x63 x73 x4b x48 x77 x71 x4d x49这种 转义字符可以通过prin
  • 新一配:区块链及其概念【转载】

    区块链是分布式数据存储 点对点传输 共识机制 加密算法等计算机技术的新型应用模式 区块链 Blockchain 是比特币的一个重要概念 它本质上是一个去中心化的数据库 同时作为比特币的底层技术 是一串使用密码学方法相关联产生的数据块 每一个
  • 考研数学-三角函数与反三角函数图像

    转载自 http math001 com inverse trigonometric functions 在三角函数的前面加上 arc 表示它们的反函数 f 1 x 即由一个三角函数值得出当时的角度 1 正弦函数 sin x 反正弦函数 a
  • 泰勒公式浅谈原理(转) ----- 深度好文, 一点是如何蕴含整个世界

    泰勒公式浅谈原理 转 上周写完了 三体 读后思考 泰勒展开 维度打击 黑暗森林 后收到一些邮件 进一步思考了关于泰勒展开的意义 也许我掌握的那些网络技术比如Linux Netfilter NAT之类 太过底层太过小众 所以大家几乎都是没有感
  • [论文阅读] (15)英文SCI论文审稿意见及应对策略学习笔记总结(letpub爬虫)

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇介绍英文论文实验评估
  • 在 .NET Core 中结合 HttpClientFactory 使用 Polly(下篇)

    译者 王亮作者 Polly 团队原文 http t cn EhZ90oq声明 我翻译技术文章不是逐句翻译的 而是根据我自己的理解来表述的 包括标题 其中可能会去除一些不影响理解但本人实在不知道如何组织的句子 译者序 这是 Polly and
  • c++11中auto&&是什么意思?

    为什么80 的码农都做不了架构师 gt gt gt By using auto var
  • Missing global shader FCopyVelocityGridCS‘s permutation 0, Please make sure cooking was successful.

    打包好的项目报了如下错误 如何解决这个bug呢 这个问题困扰了我很久 从2022年9月左右就无法打包到现在的2023年5月31号 没想到今天解决了 最近我花了一星期的时间来研究这个bug导致 当时以为是蓝图和材质代码导致 一个个查 吧资源的
  • Python快速入门多线程与多进程

    Python快速入门多线程与多进程 多线程 多线程的含义 进程我们可以理解为是一个可以独立运行的程序单位 比如打开一个浏览器 这就开启了一个浏览器进程 打开一个文本编辑器 这就开启了一个文本编辑器进程 但一个进程中是可以同时处理很多事情的
  • 链栈C++实现

    include
  • arcpy批量将excel一些列的点坐标制作成面

    使用Arcpy可以批量将Excel表格中的点坐标制作成面 并将对应组点的属性写入到对应面的属性中 import arcpy import xlrd 设置输入数据路径 excel file r C data points xlsx 包含点坐标