一、背景描述

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格式文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

pythoncsv格式_python实现csv格式文件转为asc格式文件的方法相关推荐

  1. python 读取csv文件转成字符串,python实现csv格式文件转为asc格式文件的方法

    一.背景描述 csv格式文件是一种类似于excel的文件格式 asc格式文件是一种可以用text打开的文本文件 csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),ar ...

  2. Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件

    Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...

  3. ppt生成eps文件_如何将AI/EPS格式文件转为ppt格式

    平时见到很多AI或EPS文件都想直接拿来放到PPT上,对于很多图片来说,只需转PNG就可以导入到PPT了,但对于一些图表,在导入PPT的时候还想要编辑下,这个时候就要用到下面的将AI/EPS格式文件转 ...

  4. 批量将json文件转为jpg格式

    批量将json文件转为jpg格式 1.简介 labelme软件自带有将json文件转为jpg的代码,不过只限单张. 位于./cli/json_to_dataset.py. 2.批量生成代码 impor ...

  5. python3 将eps文件转为jpg格式

    文章目录 1. 按 2. 准备 3. 代码 3.1. 保存成eps格式 3.2. 将eps文件转为jpg格式 1. 按 用Turtle画的图无法直接保存成jpg格式的,只能先保存成eps,再将eps转 ...

  6. python 使用字节流bytes格式读取文件转为int格式,再转为0,1字符串格式

    python 使用字节流bytes格式读取文件转为int格式,再转为0,1字符串格式 with open('test.jpg', 'rb') as src:t = src.read(1) # 读进1B ...

  7. 批量将NC文件转为tif格式

    批量将多年的NC文件转为tif格式进行处理(来源:https://www.geek-share.com/detail/2763962738.html) 所参考和借鉴的文章的链接如下: https:// ...

  8. 利用Python将WEBVTT格式的视频字幕文件转为SRT格式

    1 WebVTT & SRT 格式 WebVTT字幕格式与SRT字幕格式主要区别在于时间格式的区分. 下面是一个WebVTT格式的字幕文件 WEBVTT1 00:00:20.000 --> ...

  9. 使用NetTopologySuite将shp文件转为GeoJson格式

    使用NetTopologySuite将shp文件转为GeoJson格式 需要引入的库(NetTopologySuite可从Nuget中下载): using NetTopologySuite.Featu ...

最新文章

  1. 一文讲懂什么是三层交换机、网关、DNS、子网掩码、MAC地址
  2. css 图片剪裁居中
  3. windows之如何刷新电脑DNS缓存
  4. java 入门程序_自学 Java 怎么入门?
  5. 黑客借“甲型流感”传毒 挂马疾病预防控制中心网站
  6. C#中double.tostring()的用法
  7. 石河子大学计算机类学什么,石河子大学有哪些专业好,2021年石河子大学各专业排名...
  8. Oracle 数据库简介
  9. The following IP can be used to access Google website
  10. MOSS提升权限方法
  11. 软件授权注册码_授权码授予
  12. VS2017逐步配置OpenCV教程
  13. 记录在Eclipse中连接JDBC数据库的功能,并且实现增删改查
  14. 静态类型语言、动态类型语言、强类型定义语言、弱类型定义语言、编译型语言、解释型语言...
  15. YOLOv5剪枝 | 模型剪枝理论篇
  16. 征信篇: 如何保护个人隐私,防止征信受损?
  17. mac动态壁纸:Backgrounds for Mac
  18. 十万 百万 级数据处理 以及可视化 画图
  19. 动态多光源 Light-Pre-Pass Lighting 实现
  20. 蓝牙+语音系列产品分类

热门文章

  1. String.length() 与 String.getBytes().length
  2. HTML小游戏15 —— 网页版3D反恐英雄(附完整源码)
  3. 内卷的国货彩妆下,完美日记还能“火”多久?
  4. linux网站权限恢复,RMAN异机恢复——备份集权限问题
  5. 做人温和一点,做事狠一点。
  6. 2021年度总结 -- 万粉博主的写作荣誉分享,写博客是一种心灵的修行
  7. # 飞书APP集成平台-数字化落地
  8. 国产32层堆栈3D闪存2019年量产 2020年赶超国际
  9. linux系统etc什么意思,请问linux下的etc是什么意思?
  10. .net framework 官方下载地址