python实现csv格式文件转为asc格式文件的方法


Posted in Python onMarch 23, 2018

一、背景描述

csv格式文件是一种类似于excel的文件格式

asc格式文件是一种可以用text打开的文本文件

csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),arcgis处理不了如此大的文本,所以需要通过写代码实现(注:不是用python调用arcgis工具)

二、格式说明

Csv格式:

python实现csv格式文件转为asc格式文件的方法

asc图片

说明:第一列为id,第二列是值,第三第四列为值所在的行列号;csv的数据共744万行,直接打开无法全部加载

asc格式:

python实现csv格式文件转为asc格式文件的方法

三、举例

需要的是将csv对应的某行某列的值prevalue,写成asc格式的文件,检验是否成功转换的方式:将转成的asc文件加载到arcmap中进行查看,如上面的aspect.asc在arcmap中是下图所示:

python实现csv格式文件转为asc格式文件的方法

四、附件说明

附件中给出是一个用作示例的csv,以及上文提到的aspect.asc,用作参考

其实这个小程序的要求简单来说就是把csv数据逐行读取,然后对应地写成asc格式的文件,关键在于对asc文件格式的理解,希望在看了上述说明后,确定了解asc格式后再进行下一步的操作。

注:在arcmap中,csv转asc是这样实现的:通过创建xy事件图层,将csv转shp(此时的csv中prevalue后面是xy坐标,这里我已经将坐标转为行列号row、col了),随后通过要素转栅格工具,将shp转为栅格,最后用栅格转asc工具,将得到最终需要的asc

五、实现方式:

这里是按行依次读取,所以需要通过excel操作将row所在列按顺序依次排列

'''
Created on 2017-3-21
@author: soundslow
'''
#coding=utf-8 
#python默认使用ASKII码保存文件,所以在文件开头需要声明保存编码的格式(例:#coding=utf-8)
import sys
from sys import argv
import csv
argc = '1.asc'
script ,filename = argc,argv
fw = open(argc, 'w')
# string为:从ncols到NODATA_value这几行是一样的,因为数据源是一致的
string = ("ncols  4800\nnrows  1550\nxllcorner 284687.500000\nyllcorner 2412912.500000\ncellsize 25.000000\nNODATA_value -9999.000000\n")
fw.write(string)
fr = open(argc, 'r')
with open('result_50_1.csv') as f:
 reader = csv.reader(f)
 ''' 
  第一个for循环是为了提取出一个中间介质row_num作为行数的表示,
  由于从表格中提取的数据(行号)并不是数字类型,
  不能直接使用(1 == f_rows[2]进行判断,所以直接使用自身的类型。)
  (补充:应该是字符串类型)
 '''
 for i,f_rows_temp in enumerate(reader):
 if(i == 0):
  continue
 row_num = f_rows_temp[2]
 print(row_num)
 break
 #遍历写入数据,遍历行数(即csv文件第三列f_rows[2]) 
 for i,f_rows in enumerate(reader):
 if(i == 0):
  continue
 if(f_rows[2] != row_num): # 判断是否换行
  fw.write('\n')
  row_num = f_rows[2]
 fw.write(f_rows[1])
 fw.write(' ')
 sys.stdout.flush() #强制IO刷新,写入文件数据
 print(f_rows[1]) #两个打印是为了便于观察数据运行情况
 print(f_rows)
 fw.close()
 fr.close()

题解下载链接

以上这篇python实现csv格式文件转为asc格式文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用小技巧总结
Jun 01 Python
python函数形参用法实例分析
Aug 04 Python
Python实现简单字典树的方法
Apr 29 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
python 梯度法求解函数极值的实例
Jul 10 Python
pytorch索引查找 index_select的例子
Aug 18 Python
Python中logging日志库实例详解
Feb 19 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
pytorch 实现变分自动编码器的操作
May 24 Python
python字典快速保存于读取的方法
Mar 23 #Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 #Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 #Python
Python自定义线程类简单示例
Mar 23 #Python
python如何实现内容写在图片上
Mar 23 #Python
Python实现的自定义多线程多进程类示例
Mar 23 #Python
python爬取各类文档方法归类汇总
Mar 22 #Python
You might like
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
python连接oracle数据库实例
2014/10/17 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
pandas删除指定行详解
2019/04/04 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
若干个Java基础面试题
2015/05/19 面试题
优秀员工自荐书
2013/12/19 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
专业见习报告范文
2014/11/03 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
公司员工辞职信范文
2015/05/12 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL