ArcMap:表格中XY点数据生成矢量文件(手动&代码两种方法)

您所在的位置:网站首页 表格中怎么输入经纬度 ArcMap:表格中XY点数据生成矢量文件(手动&代码两种方法)

ArcMap:表格中XY点数据生成矢量文件(手动&代码两种方法)

2024-07-04 05:42:49| 来源: 网络整理| 查看: 265

注:此处的表格请使用.csv格式,.xlsx和.xls格式不保证能成功。完整代码直接拉到最下。

手动方法

先来看看我们即将用到的csv文件:

一共五项数据,其中最核心的属性是x、y坐标,其余的都是次要属性,plotid是编号,value1、value2是随机生成的数值。

第一步:打开arcmap,首先不要直接从add data中添加csv文件,选择Add XY Data:

点击以后会弹出这么个框:

至此我们算是达到了阶段性的胜利:让点显示在arcmap里面了!

但是此时我们注意到,我们得到的并不是点的矢量文件,而是一个这样的东西:

所以第二步:我们右键这个events,选择Export Data导出:

这就转成了矢量文件:

 查看一下属性没问题就成功了。

代码方法

上述手动操作都是针对数据量小情况的操作,如果涉及到批量处理,比如有几百上千个点文件要转矢量,就需要用到代码。

我们直接使用Arcmap自带python:

第一步首先进行一些前期设置,比如导入功能模块、设置输入输出路径:

# -*- coding: utf-8 -*- # 首先检查python中是否有以下模块 import csv import arcpy import os import arcgisscripting # 设置路径 input = "E:\\points.csv" # 待处理csv文件 outputname = "point.shp" # 待输出shapefile文件 outputpath = "E:\\" # 待输出shapefile文件 output = outputpath+'\\'+outputname # 待输出shapefile文件完整路径

第二步我们创建一个点状矢量文件:

# 创建处理对象 gp = arcgisscripting.create() gp.OverWriteOutput = True ## 允许overwrite # 创建矢量点文件 gp.CreateFeatureclass(outputpath,outputname,"Point")

第三步,创建属性字段,俗称表头,就是下面这个东西:

其中,FID是系统自动加上的编号不必理会,Shape*是一个叫几何令牌的东西,可以访问特定几何信息,在点状要素中,这个几何信息指的是坐标xy,剩下的几个字段就跟csv的表头一模一样了。

下面是在shapefile里创建属性字段代码:

# 创建属性字段 gp.AddField(output, "plotid", "LONG") gp.AddField(output, "x", "DOUBLE") gp.AddField(output, "y", "DOUBLE") gp.AddField(output, "value1", "DOUBLE") gp.AddField(output, "value2", "DOUBLE")

AddField函数的三个参数分别是:shapefile路径、字段名称(自己随便命名,可以和csv中统一,也可以不统一)、字段数据类型(有LONG、DOUBLE、TXT等类型,注意没有float)

表头创建好了,那么第四步就是向表里添加数据了:

# 添加数据 cur = gp.InsertCursor(output) pnt = gp.CreateObject("Point") ## 打开csv文件 f = open(input,'r') data = csv.reader(f,delimiter=',') next(data) # 跳过表头 ## 读入数据 for line in data: # 获取csv每行中的五个数据,依次赋予变量plotid、x、y、value1、value2 plotid = int(line[0]) x = float(line[1]) y = float(line[2]) value1 = float(line[3]) value2 = float(line[4]) # 将以上四个变量写入shapefile相应字段 feat = cur.NewRow() pnt.x = x pnt.y = y feat.shape = pnt feat.x = pnt.x feat.y = pnt.y feat.plotid = plotid feat.value1 = value1 feat.value2 = value2 cur.InsertRow(feat) del cur f.close()

运行以后就大功告成了。

最后附上完整代码:

# -*- coding: utf-8 -*- """ @author: 国宝级退堂鼓手 """ # 首先检查python中是否有以下模块 import csv import arcpy import os import arcgisscripting # 设置路径 input = "E:\\points.csv" # 待处理csv文件 outputname = "point.shp" # 待输出shapefile文件 outputpath = "E:" # 待输出shapefile文件 output = outputpath+'\\'+outputname # 待输出shapefile文件完整路径 # 创建处理对象 gp = arcgisscripting.create() gp.OverWriteOutput = True ## 允许overwrite # 创建矢量点文件 gp.CreateFeatureclass(outputpath,outputname,"Point") # 创建属性字段 gp.AddField(output, "plotid", "LONG") gp.AddField(output, "x", "DOUBLE") gp.AddField(output, "y", "DOUBLE") gp.AddField(output, "value1", "DOUBLE") gp.AddField(output, "value2", "DOUBLE") # 添加数据 cur = gp.InsertCursor(output) pnt = gp.CreateObject("Point") ## 打开csv文件 f = open(input,'r') data = csv.reader(f,delimiter=',') next(data) # 跳过表头 ## 读入数据 for line in data: # 获取csv每行中的五个数据,依次赋予变量plotid、x、y、value1、value2 plotid = int(line[0]) x = float(line[1]) y = float(line[2]) value1 = float(line[3]) value2 = float(line[4]) # 将以上四个变量写入shapefile相应字段 feat = cur.NewRow() pnt.x = x pnt.y = y feat.shape = pnt feat.x = pnt.x feat.y = pnt.y feat.plotid = plotid feat.value1 = value1 feat.value2 = value2 cur.InsertRow(feat) del cur f.close()



【本文地址】

公司简介

联系我们

今日新闻


点击排行

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

推荐新闻


图片新闻

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

专题文章

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