技术标签: python应用
学地信的经常会有这样的需求,即将csv格式的文件转换为shapefile格式加载到arcMap中进行显示与分析,arcMap本身提供了这样的功能,即
文件->添加数据->添加XY数据:选择文件路径,指定X字段(longitude)、Y字段(latitude)即可,默认坐标系为WGS84坐标系。
arcMap的这个功能非常方便,但因为我的数据量较大,有接近100万条数据,故通过代码进行格式转换效率更高点。
下面的代码参考如下链接:Using pyshp to convert .csv file to .shp?
需要用到pyshp模块、csv模块、codecs模块,pip install 安装即可。
下面贴上代码:
目前只能转换point类型数据
#-*-coding:utf-8-*-
import shapefile as shp
import csv
import codecs
import os
def trans_point(folder, fn, idlng, idlat, delimiter=','):
# create a point shapefile
output_shp = shp.Writer(shp.POINT)
# for every record there must be a corresponding geometry.
output_shp.autoBalance = 1
# create the field names and data type for each.you can omit fields here
# output_shp.field('id','N') # number
output_shp.field('longitude', 'F', 10, 8) # float
output_shp.field('latitude', 'F', 10, 8) # float
output_shp.field('locname','C',100) # string, max-length
# access the CSV file
with codecs.open(folder + fn, 'rb', 'utf-8') as csvfile:
reader = csv.reader(csvfile, delimiter=delimiter)
# skip the header
next(reader, None)
#loop through each of the rows and assign the attributes to variables
for row in reader:
# idx = row[0]
locname= row[1]
lng= float(row[idlng])
lat = float(row[idlat])
print lng, lat
# create the point geometry
output_shp.point(lng, lat)
# add attribute data
output_shp.record(lng, lat, locname)
output_shp.save(folder + "%s.shp"%fn.split('.')[0]) # save the Shapefile
if __name__ == '__main__':
folder = 'C:\Users\MaMQ\Desktop' + os.sep
fn = 'test.csv'
trans_point(folder, fn, 2, 3)
示例数据
id | locname | x | y |
---|---|---|---|
1 | Haryana, Haryana, India | 76.9806 | 29.6161 |
2 | Mumbai, Maharashtra, India | 72.8258 | 18.975 |
结果
文章浏览阅读1.3k次,点赞3次,收藏6次。根据IEEE的定义,以太网数据链路层分为2个子层:媒体访问控制子层(MAC层)和逻辑链路控制层(LLC层)。分为2个子层的原因是:数据链路层实际是与物理层直接相关的,针对不同的物理层需要有与之相配合的数据链路层,例如针对以太网、令牌环需要不同的数据链路层,而这时不符合分层原则的。为此,通过划分MAC层和LLC层,尽量提高链路层的独立性,便于技术实现。_车载以太网数据链路层测试
文章浏览阅读3.9k次。文章目录1..直方图阈值法2.自动阈值法3.分水岭分割法4.迭代法阈值分割法是一种基于区域的图像分割技术。图像阈值化分割因其简单实现、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。图像阈值化的目的是按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。这样的划分可以通过从灰度级出发选取一个或..._阈值分割
文章浏览阅读282次。前言:作为一个安卓开发的老鸟,一步步从eclipse到AS开发安卓app,再到NDK开发,不断的更新,不断的学习,现如今Google把安卓的第一开发语言换成了Kotlin,所以我们也要紧跟Google步伐,转战kotlin,接下来我会带领大家快速入门kotlin开发。1.1函数进阶(求圆和矩形的面积)val pi = 3.141592f //val表示对象是常量,不能更改//fun ..._kotlin toint()异常处理
文章浏览阅读2.6k次。将Windows Server 2016 打造成工作站(20161030更新)一、基础设置1.1、关闭自动弹窗:「开始菜单」 - 「服务器管理器」 - 「仪表板」(或 Win + R或CMD,「ServerManager」), 「管理」 - 「服务器管理器属性」,勾选「在登录时不自动启动服务器管理器」。1.2、设置CPU性能Win + R或CMD..._service2016 找不到 关机事件追踪
文章浏览阅读1.1k次,点赞11次,收藏15次。本文以自然梯度法的推导为脉络,贯穿黎曼空间、黎曼流形、黎曼度量、费舍尔信息矩阵、KL 散度和自然梯度法等概念。这是 TRPO 算法理论的重要基础_fisher信息矩阵
文章浏览阅读7.5k次。项目场景:点击切换浏览器壁纸的代码问题描述浏览器控制台报错Uncaught TypeError: Cannot set properties of undefined (setting ‘onclick’)at <body> <div class="bigbox"> <img src="../素材/箴言1副本.jpg" alt="" /> <img src="../素材/箴言2副本.jpg" alt="" />_uncaught typeerror: cannot set properties of undefined (setting 'onclick')
文章浏览阅读986次。转载自大佬:十一姐链接: js逆向补环境-调试工具vscode与nodejs使用之无环境联调1、Node.js是一个开源、跨平台的JavaScript运行环境,可以在服务器端运行JavaScript代码。它基于Chrome的JS-V8引擎,使得JavaScript的运行速度非常快,并且提供了一系列的模块,使得开发者可以方便地进行后端开发2、nodejs下载 ,下载node-v18.16.1-x64.msi,除安装路径可以修改,其它一路next即可3、然后双击下载好的msi程序包,然后一路next,只需_jsvm2
文章浏览阅读4.9k次。运行程序,在浏览器中打开:http://localhost:8080/h2-console/注意:JDBC URL:jdbc:h2:mem:testdb_h2数据库怎么看表
文章浏览阅读268次。PIC单片机C语言编程实例F877的外围功能模块第1章PIC16PIC16F1.1.2简单应用实例该例用于令与PORTD口相连的8个发光二极管前4个点亮,后4个熄灭。在调试程序前,应使与PORTD口相连的8位拔码开关拔向相应的位置。1例1.1.1PORTD输出#includemain(){TRISD=0X00;while(1);{PORTD=0XF0;}}/*向PORTD送数据,点亮LED(由实验..._pic c语言 实例
文章浏览阅读54次。og4j配置详解log4j详解 根据网络资料整理 >>>>1. 概述<<<< 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印...
文章浏览阅读677次。花生棒是一款专做内网穿透的硬件,能够解决移动设备没有公网IP无法直接访问的问题。配置成功可以实现移动设备 SSH连接、VNC实现对远程设备的直接桌面控制。主要解决无法安装向日葵等第三方软件的设备,比如基于ARM64内核的设备。本文是对官方教程的补充。_花生棒配置
文章浏览阅读1.9k次,点赞12次,收藏28次。SSM 版博客系统_个人博客系统