Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容

您所在的位置:网站首页 如何做矢量图表格 Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容

Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容

2024-07-07 04:32:50| 来源: 网络整理| 查看: 265

1 任务需求

  首先,我们来明确一下本文所需实现的需求。

  现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls;文件内包含站点编号、X与Y坐标、站点名称等四列数据,部分数据如下所示。

在这里插入图片描述

  我们需要将该表格文件中所记录的全部站点信息导入到Python中,并将全部站点创建为一个点要素的矢量图层;此外,需要同时可以指定该矢量图层的投影坐标系,并将表格文件中的四列信息作为矢量图层属性表的字段与内容。

2 代码实现

  接下来,我们就基于Python中ArcPy模块,进行详细代码的撰写与介绍。

  首先,需要说明的是:当初在编写代码的时候,为了方便执行,所以希望代码后期可以在ArcMap中直接通过工具箱运行,即用到Python程序脚本新建工具箱与自定义工具的方法;因此,代码中对于一些需要初始定义的变量,都用到了arcpy.GetParameterAsText()函数。大家如果只是希望在IDLE中运行代码,那么直接对这些变量进行具体赋值即可。关于Python程序脚本新建工具箱与自定义工具,大家可以查看这篇博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/121518404)详细了解。

  上面提到需要初始定义的变量一共有四个,其中arcpy.env.workspace参数表示当前工作空间,excel_path参数表示存储有北京市PM2.5浓度监测站点信息的Excel数据文件,spatial_reference_txt参数表示需要对站点矢量数据进行投影的坐标系类型(在本文中我们以“WGS 1984 UTM Zone 50N”投影为例),shapefile_name参数表示投影后站点矢量数据的具体文件。

# -*- coding: cp936 -*- # @author: ChuTianjia import xlrd import arcpy arcpy.env.workspace=arcpy.GetParameterAsText(0) excel_path=arcpy.GetParameterAsText(1) # 站点信息表格文件 shapefile_name=arcpy.GetParameterAsText(3) # 需要生成的矢量要素的路径与名称 file_data=xlrd.open_workbook(excel_path) sheet_data=file_data.sheets()[0] sheet_row_num=sheet_data.nrows point_geometry_list=[] point_object=arcpy.Point() # Read Spatial Coordinate Information spatial_reference_txt=arcpy.GetParameterAsText(2) # 指定投影坐标系 spatial_reference=arcpy.SpatialReference() spatial_reference.loadFromString(spatial_reference_txt) # Import the Coordinates of Each Point for i in range(1,sheet_row_num): x=sheet_data.row(i)[1].value y=sheet_data.row(i)[2].value point_object.X=float(x) point_object.Y=float(y) point_geometry=arcpy.PointGeometry(point_object,spatial_reference) point_geometry_list.append(point_geometry) arcpy.CopyFeatures_management(point_geometry_list,shapefile_name) # Import the Filed Information field_list=["X","Y","ID_Own","Name"] arcpy.AddField_management(shapefile_name,field_list[0],"FLOAT") arcpy.AddField_management(shapefile_name,field_list[1],"FLOAT") arcpy.AddField_management(shapefile_name,field_list[2],"SHORT") arcpy.AddField_management(shapefile_name,field_list[3],"TEXT") with arcpy.da.UpdateCursor(shapefile_name,field_list) as cursor: n=1 for row in cursor: row[0]=sheet_data.row(n)[1].value row[1]=sheet_data.row(n)[2].value row[2]=sheet_data.row(n)[0].value row[3]=sheet_data.row(n)[3].value cursor.updateRow(row) n+=1 3 运行结果

  执行上述代码,即可得到包含有表格文件中所列全部站点的点要素矢量图层文件,且其属性表中包含了原有表格文件中全部列所对应的字段与内容。

在这里插入图片描述

  查看该图层属性,可以看到其已经具有了我们在代码中所指定的投影坐标系。

在这里插入图片描述

欢迎关注公众号/CSDN/知乎/微博:疯狂学习GIS



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭