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中私有函数调用方法解密
Apr 29 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
django缓存配置的几种方法详解
Jul 16 Python
Django model反向关联名称的方法
Dec 15 Python
pymysql 开启调试模式的实现
Sep 24 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
Python数据正态性检验实现过程
Apr 18 Python
使用python创建生成动态链接库dll的方法
May 09 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
手把手教你怎么用Python实现zip文件密码的破解
May 27 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单例模式实现(对象只被创建一次)
2012/12/05 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
一个JQuery操作Table的代码分享
2012/03/30 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
Ajax基础知识详解
2017/02/17 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
vue实现记事本功能
2019/06/26 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
python实现百度关键词排名查询
2014/03/30 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
python 公共方法汇总解析
2019/09/16 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
党员教师工作决心书
2014/03/13 职场文书
主题班会演讲稿
2014/05/22 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫