Arcpy||NumPyArrayToFeatureClass--Excel转要素类
时间:2019-11-06
本文章向大家介绍Arcpy||NumPyArrayToFeatureClass--Excel转要素类,主要包括Arcpy||NumPyArrayToFeatureClass--Excel转要素类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近在ArcGIS官方文档上看到在 ArcGIS 中使用 NumPy这个新特性(PS:也可能一直有,只是我才发现,哈哈),今天我们来聊一聊NumPyArrayToFeatureClass
这个函数。首先看看官方例子:
import arcpy
import numpy
outFC = "C:/data/texas.gdb/fd/pointlocations"
# Create a numpy array with an id field, and a field with a tuple
# of x,y coordinates
#
array = numpy.array([(1, (471316.3835861763, 5000448.782036674)),
(2, (470402.49348005146, 5000049.216449278))],
numpy.dtype([('idfield',numpy.int32),('XY', '<f8', 2)]))
# Define a spatial reference for the output feature class
#
SR = arcpy.Describe("C:/data/texas.gdb/fd").spatialReference
# Export the numpy array to a feature class using the XY field to
# represent the output point feature
#
arcpy.da.NumPyArrayToFeatureClass(array, outFC, ['XY'], SR)
该函数是将几何属性信息以Numpy结构化数组的形式传入生成要素类,利用该函数我们可以将大量数据一次性转为要素类,这里我们以将Excel表中的坐标为点要素为例来展示这个函数的强大。通常我们使用arcpy将Excel表转点要素是使用arcpy的游标插入,例如'菠萝仔'的这篇知乎文章-基于ArcGIS的python编程 10、根据Excel表格批量生成点数据,批量裁剪。当然也有人按照官网的例子使用NumPyArrayToFeatureClass,如'陌上桑la'-Arcpy神器之NumPyArrayToFeatureClass,但是还用得不够精简。
这里我是用到Pandas
库来处理数据,然后再转要素能够更快的达到效果。下面讲解实例:
我使用的数据为:
处理过程代码如下(注意表头和下面代码参数对应):
#coding=utf-8
import arcpy
import numpy as np
import pandas as pd
outPoint = r"C:\Users\mei\Desktop\sample.shp"
inExcel = r'C:\Users\mei\Desktop\sample.xls'
## Define a spatial reference for the output feature class
SR = arcpy.SpatialReference(4326)
## pandas read the Excel
data = pd.read_excel(inExcel,index_col='id')
## DataFrame to NumPy record array.
data_records = data.to_records()
## NumPy record array to FeatureClass
arcpy.da.NumPyArrayToFeatureClass(data_records, outPoint, ('lon','lat'), SR)
得到结果如下:
并且还附带字段:
大家也可以试着用一用NumPyArrayToFeatureClass,感觉很不错。
原文地址:https://www.cnblogs.com/zuoliping98/p/11804506.html
- Logistic 回归算法及Python实现
- MySQL主从不一致的修复过程(r10笔记第96天)
- ML中相似性度量和距离的计算&Python实现
- Oracle中的ROWID实现(r10笔记第95天)
- 100个Numpy练习【3】
- 100个Numpy练习【4】
- Golang语言中Path包用法
- 100个Numpy练习【5】
- Golang中container/list包中的坑
- 关于Golang语言数组索引的有趣现象
- 使用SQL来分析数据库参数(二)(r10笔记第82天)
- Golang不定参数
- [go语言]利用缓冲信道来实现网游帐号验证消息的分发和等待
- 转--Golang语言版 ssh口令破解工具
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法