一、背景描述
csv格式文件是一种类似于excel的文件格式
asc格式文件是一种可以用text打开的文本文件
csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),arcgis处理不了如此大的文本,所以需要通过写代码实现(注:不是用python调用arcgis工具)
二、格式说明
Csv格式:
asc图片
说明:第一列为id,第二列是值,第三第四列为值所在的行列号;csv的数据共744万行,直接打开无法全部加载
asc格式:
三、举例
需要的是将csv对应的某行某列的值prevalue,写成asc格式的文件,检验是否成功转换的方式:将转成的asc文件加载到arcmap中进行查看,如上面的aspect.asc在arcmap中是下图所示:
四、附件说明
附件中给出是一个用作示例的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格式文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 外媒称PS5pro违背承诺:《蜘蛛侠2》根本没法4K60帧
- 令晴 Lynn《The Make》[320K/MP3][44.47MB]
- 令晴 Lynn《The Make》[Hi-Res][24bit 48kHz][FLAC/分轨][295.42MB]
- 雷婷《移情别恋HQⅡ》头版限量编号[低速原抓WAV+CUE][1G]
- FUNDAMENTAL.1989-感觉号渡轮【SONY】【WAV+CUE】
- 上山安娜.1986-上山安娜【EMI百代】【WAV+CUE】
- 张真.1993-失恋十四行【上华】【WAV+CUE】
- 钟明秋《爱有天意HQCD》[低速原抓WAV+CUE]
- 孙云岗唢呐《金声玉振[HIFI珍藏版]》[低速原抓WAV+CUE]
- 谭艳精讯TEST-CD试音39号》2CD[DTS-WAV]
- 姚璎格《发烧女中音》DSD版[低速原抓WAV+CUE][1G]
- 张玮伽《微风细雨DSD》发烧大碟[WAV+CUE][1.1G]
- 群星《2024好听新歌14》十倍音质 U盘音乐 [WAV分轨][966M]
- s14全球总决赛T1战队队员都有谁 LOLs14全球总决赛T1战队介绍
- 英雄联盟faker身价有10亿吗 英雄联盟faker身价介绍一览