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

news/2025/1/16 7:48:11/

使用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表格中对应组点的属性数据写入到面要素的属性中。


http://www.ppmy.cn/news/464688.html

相关文章

MTU是什么

MTU是通信术语,意思是“最大传输单元”。 简单解释一下:网络上的数据在传输的时候会被打成一个一个的“包”,网络设备的端口默认设置了MTU值,如果数据包的大小没有超过这个值,就直接被转发;如果超过了MTU值…

U-MEX and Increments

题意 给你个数列,让你求对应下标i使得整个数列MEX(i)的最小步数,其中MEX(i)是指出现的最小正整数. 题解: 首先计数把每个数字出现的次数记录,对于下标i,我们需要让0-i…

UMT

UMT 链接: 数据集 提取码: 6cgu 1.一 论文导读2.二 论文精读3.三 代码实现4.四 问题思索 《Phrase-Based & Neural Unsupervised Machine Translation》 —基于短语和神经网络的无监督机器翻译 作者:Guillaume Lample 单位:Facebook AI Research 发…

ME-11

English中文含义(TTX)Table Top Exercise桌面推演(CPX)command post exercises指挥所演习(CTX)combined training exercises多国合成训练演习(CALFEX)combined arms live fire exercises多兵种联合实装演习(FTX)field training exercises野战训练演习(FCX)fire coordination ex…

meteor简介

简介 对于开发者而言,meteor相比于其他框架,更注重业务逻辑的编写,开发者不必再将关注点集中在如何CRUD数据、如何在页面与程序之间传递数据的具体操作及代码实现上,因为meteor已经为我们分装好了,提供了简洁的API。m…

meteor

开发工具: sublintext Robomongo webStroe meteor网址: http://www.meteor.com 部分视屏网址 http://www.maiziedu.com http://v.youku.com/v_show/id_XOTA5Mzc0NTQ0.html?f23545469 查看meteor版本 meteor --version 查看meteor的系统自带demo并…

MateQ

java客户端接入 <dependency><groupId>com.taobao.metaq.final</groupId><artifactId>metaq-client</artifactId><version>4.2.6.Final</version> </dependency>发布消息 日常环境不需要申请即可发送&#xff0c;Topic与Prod…

kata kata pacar php,Membantu

Membantu (2010-02-03 18:57:20) 标签&#xff1a; 杂谈 Lebih dari tiga tahun yang lalu&#xff0c;Saya telah mengenal etnis Cina di Indonesia Surabaya Sonny&#xff0c;Jatuh cinta dengan dia。Setiap hari ia tidak kembali ke rumahnya sendiri&#xff0c;Oleh k…