首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python中ArcPy读取Excel数据创建矢量图层并生成属性表

Python中ArcPy读取Excel数据创建矢量图层并生成属性表

作者头像
疯狂学习GIS
发布于 2022-04-11 13:10:09
发布于 2022-04-11 13:10:09
1.6K00
代码可运行
举报
文章被收录于专栏:疯狂学习GIS疯狂学习GIS
运行总次数:0
代码可运行

1 任务需求

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

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

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

2 代码实现

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- 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 运行结果

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 疯狂学习GIS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ArcPy读取Excel时序数据、批量反距离加权IDW插值与掩膜
  本文介绍基于Python中ArcPy模块,实现Excel数据读取并导入图层,同时进行IDW插值与批量掩膜的方法。
疯狂学习GIS
2022/08/10
1K0
ArcPy读取Excel时序数据、批量反距离加权IDW插值与掩膜
利用ArcGIS Pro制作弧线OD图【ArcGIS Python系列】
Origin-Destination(OD)图是一种用于可视化起点和终点之间关系的地理图表。它在空间上表示出不同地点之间的连接和流动。在OD图中,起点和终点通常用节点(点)表示,而它们之间的连接则用线段或弧线表示。
renhai
2023/11/24
1.6K0
利用ArcGIS Pro制作弧线OD图【ArcGIS Python系列】
六、处理几何数据【ArcGIS Python系列】
要素类中的每个要素都由一个或多个顶点组成,这些顶点定义了点、多段线或多边形要素。在点要素类的情况下,每个点要素由单个顶点组成。多段线和多边形要素由多个顶点组成。每个顶点是由一对x、y坐标定义的位置。该图说明了点、多段线和多边形如何在笛卡尔坐标空间中由顶点定义。
renhai
2023/11/24
6140
六、处理几何数据【ArcGIS Python系列】
九、自定义工具箱【ArcGIS Python系列】
在创建Python工具箱之前,必须先创建脚本,当你熟悉编写Python脚本之后,制作工具箱就相当于交付产品到用户手上,用户可以根据工具提示访问该工具,并且可以在模型构建器使用,也可以作为脚本调用。
renhai
2023/11/24
6730
九、自定义工具箱【ArcGIS Python系列】
三、Arcpy基础【ArcGIS Python系列】
ArcGIS中的地理处理允许您执行空间分析和建模以及自动执行GIS任务。典型的地理处理工具获取输入数据(要素类、栅格或表),执行地理处理任务,然后生成输出数据作为结果。ArcGIS包含数百种地理处理工具。地理处理工具的示例包括用于创建缓冲区、用于向表添加字段以及用于对地址表进行地理编码的工具。
renhai
2023/11/24
7330
三、Arcpy基础【ArcGIS Python系列】
ArcMap图层添加坐标系的方法
  本文介绍在ArcMap软件中,为不含有任何坐标系的图层添加地理坐标系或投影坐标系的方法。
疯狂学习GIS
2023/06/26
1.3K0
ArcMap图层添加坐标系的方法
遥感数据机器学习的准备工作:python将栅格数据提取至EXCEL
大部分我们处理的降水、气温等栅格数据的格式是nc形式,需要我们将他转换成栅格数据并导入至Arcgis中,进行下一步操作。
Twcat_tree
2023/02/28
1.7K0
遥感数据机器学习的准备工作:python将栅格数据提取至EXCEL
ArcGIS批量绘制多张地图的Python代码
  本文介绍基于Python语言中ArcPy模块,实现ArcMap自动批量出图,并对地图要素进行自定义批量设置的方法。
疯狂学习GIS
2023/11/20
5270
ArcGIS批量绘制多张地图的Python代码
ModelBuilder与空间建模
  模型是将一系列地理处理工具串联在一起的工作流,上一个工具的输出作为下一个工具的输入。模型构建器是一个用来创建、编辑和管理模型的应用程序。
小孙同学
2022/01/17
1.5K0
ModelBuilder与空间建模
Python中arcpy栅格创建与多景遥感影像批量拼接
  本文介绍利用Python语言arcpy等模块,实现栅格图层建立与多幅遥感影像数据批量拼接(Mosaic)的操作。
疯狂学习GIS
2023/07/09
4720
Python中arcpy栅格创建与多景遥感影像批量拼接
利用ArcGIS_Python制作考虑路况的交通等时圈
平移和缩放地图以选择感兴趣的区域。使用绘图工具在地图上绘制多边形研究区域,然后在地图绘制点用来标记研究区域的起点,如果没绘制点则选取研究区域的中心点作为起点。
renhai
2023/11/24
6830
利用ArcGIS_Python制作考虑路况的交通等时圈
【GEE】4、 Google 地球引擎中的数据导入和导出
了解动物对环境的反应对于了解如何管理这些物种至关重要。虽然动物被迫做出选择以满足其基本需求,但它们的选择很可能也受到当地天气条件等动态因素的影响。除了直接观察之外,很难将动物行为与天气条件联系起来。在这个单元中,我们将从美洲狮收集的 GPS 项圈数据与通过 GEE 访问的 Daymet 气候数据集的每日温度估计值集成。
Twcat_tree
2023/11/07
1.7K0
【GEE】4、 Google 地球引擎中的数据导入和导出
四、探索空间数据【ArcGIS Python系列】
在 Python 脚本中,您可能需要确定数据集是否确实存在。该任务可以使用 arcpy.Exists()函数完成。返回函数返回一个布尔值True或False,指示该元素是否存在。
renhai
2023/11/24
4610
四、探索空间数据【ArcGIS Python系列】
(数据科学学习手札59)从抓取数据到生成shp文件并展示
  shp格式的文件是地理信息领域最常见的文件格式之一,很好的结合了矢量数据与对应的标量数据,而在Python中我们可以使用pyshp来完成创建shp文件的过程,本文将从如何从高德地图获取矢量信息开始,最终构造出相应的shp文件,并利用R中的leaflet进行可视化;
Feffery
2019/06/11
2.4K0
(数据科学学习手札59)从抓取数据到生成shp文件并展示
ArcGIS导入XY数据并定义坐标系与投影
  本文介绍在ArcMap软件中,从Excel表格文件中批量导入坐标点数据,将其保存为.shp矢量格式,并定义坐标系、转为投影坐标系的方法。
疯狂学习GIS
2024/11/21
1.1K0
ArcGIS导入XY数据并定义坐标系与投影
python与地理空间分析(3)shp文件操作
在python与地理空间分析(1)与(2)中我们介绍了GIS中常用的数据类型、python在处理地理空间数据时用到的包以及给定经纬度计算空间距离的算法,本期我们主要介绍对地理空间分析中常用到的矢量数据shp文件的处理,在捍卫祖国领土从每一张地图开始我们也提供较为精准的包括南海九段线的中国地图,大家可以自行下载。
MeteoAI
2019/08/19
15.8K1
python与地理空间分析(3)shp文件操作
Selenium2+python自动化58-读取Excel数据(xlrd)
前言 当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式。 一、环境准备 1.先安装xlrd模块,打开cmd,输入pip i
上海-悠悠
2018/04/08
9550
Selenium2+python自动化58-读取Excel数据(xlrd)
Python批量将投影坐标系转为地理坐标系
  本文介绍基于Python语言中的ArcPy模块,批量将多个遥感影像由投影坐标系转为地理坐标系的方法。
疯狂学习GIS
2024/09/17
3850
Python批量将投影坐标系转为地理坐标系
arcpy怎么用_python arcpy
arcgis地理处理包括了查找工具、工具箱、地理处理环境、模型、python脚本、arcpy等一系列自动执行地理任务的框架。
全栈程序员站长
2022/11/17
2.7K0
arcpy怎么用_python arcpy
Python | GDAL处理矢量数据
GDAL矢量数据处理 为什么要学GDAL? GDAL是什么? (Geospatial Data Abstraction Library) 地理空间数据抽象库 用C/C++编写,支持多种矢量/栅格数据,支持python、.NET、Ruby等语言绑定,开放源码。 传统上GDAL指的是栅格支持库 from osgeo import gdal 矢量支持使用OGR简单要素库 (OpenGIS Simple Features Reference Implementation) 但由于OGR与OpenGIS的规范并不完全
GIS与遥感开发平台
2022/04/29
10.3K0
Python | GDAL处理矢量数据
推荐阅读
相关推荐
ArcPy读取Excel时序数据、批量反距离加权IDW插值与掩膜
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验