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

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

1 任务需求

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

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

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

2 代码实现

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

  首先,需要说明的是:当初在编写代码的时候,为了方便执行,所以希望代码后期可以在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


相关文章
|
8天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
9天前
|
人工智能 数据可视化 前端开发
Probly:开源 AI Excel表格工具,交互式生成数据分析结果与可视化图表
Probly 是一款结合电子表格功能与 Python 数据分析能力的 AI 工具,支持在浏览器中运行 Python 代码,提供交互式电子表格、数据可视化和智能分析建议,适合需要强大数据分析功能又希望操作简便的用户。
168 2
|
11天前
|
JSON 监控 API
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
|
12天前
|
JSON API 数据格式
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
|
16天前
|
存储 数据采集 JSON
Python爬取某云热歌榜:解析动态加载的歌曲数据
Python爬取某云热歌榜:解析动态加载的歌曲数据
|
17天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
23天前
|
机器学习/深度学习 存储 数据可视化
这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
本书介绍了如何将Python与Excel结合使用,以提升数据分析和处理效率。内容涵盖Python入门、pandas库的使用、通过Python包操作Excel文件以及使用xlwings对Excel进行编程。书中详细讲解了Anaconda、Visual Studio Code和Jupyter笔记本等开发工具,并探讨了NumPy、DataFrame和Series等数据结构的应用。此外,还介绍了多个Python包(如OpenPyXL、XlsxWriter等)用于在无需安装Excel的情况下读写Excel文件,帮助用户实现自动化任务和数据处理。
|
24天前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
24天前
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
146 83
|
25天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
49 12

热门文章

最新文章