欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)csv格式文件轉(zhuǎn)為asc格式文件的方法

 更新時(shí)間:2018年03月23日 11:07:26   作者:隨風(fēng)而醒  
下面小編就為大家分享一篇python實(shí)現(xiàn)csv格式文件轉(zhuǎn)為asc格式文件的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、背景描述

csv格式文件是一種類似于excel的文件格式

asc格式文件是一種可以用text打開的文本文件

csv轉(zhuǎn)asc本來可以用arcgis順利完成,但由于csv數(shù)據(jù)量太大(744萬行),arcgis處理不了如此大的文本,所以需要通過寫代碼實(shí)現(xiàn)(注:不是用python調(diào)用arcgis工具)

二、格式說明

Csv格式:

asc圖片

說明:第一列為id,第二列是值,第三第四列為值所在的行列號;csv的數(shù)據(jù)共744萬行,直接打開無法全部加載

asc格式:

三、舉例

需要的是將csv對應(yīng)的某行某列的值prevalue,寫成asc格式的文件,檢驗(yàn)是否成功轉(zhuǎn)換的方式:將轉(zhuǎn)成的asc文件加載到arcmap中進(jìn)行查看,如上面的aspect.asc在arcmap中是下圖所示:

四、附件說明

附件中給出是一個(gè)用作示例的csv,以及上文提到的aspect.asc,用作參考

其實(shí)這個(gè)小程序的要求簡單來說就是把csv數(shù)據(jù)逐行讀取,然后對應(yīng)地寫成asc格式的文件,關(guān)鍵在于對asc文件格式的理解,希望在看了上述說明后,確定了解asc格式后再進(jìn)行下一步的操作。

注:在arcmap中,csv轉(zhuǎn)asc是這樣實(shí)現(xiàn)的:通過創(chuàng)建xy事件圖層,將csv轉(zhuǎn)shp(此時(shí)的csv中prevalue后面是xy坐標(biāo),這里我已經(jīng)將坐標(biāo)轉(zhuǎn)為行列號row、col了),隨后通過要素轉(zhuǎn)柵格工具,將shp轉(zhuǎn)為柵格,最后用柵格轉(zhuǎn)asc工具,將得到最終需要的asc

五、實(shí)現(xiàn)方式:

這里是按行依次讀取,所以需要通過excel操作將row所在列按順序依次排列

'''
Created on 2017-3-21
@author: soundslow
'''
#coding=utf-8 
#python默認(rèn)使用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這幾行是一樣的,因?yàn)閿?shù)據(jù)源是一致的
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)
 ''' 
  第一個(gè)for循環(huán)是為了提取出一個(gè)中間介質(zhì)row_num作為行數(shù)的表示,
  由于從表格中提取的數(shù)據(jù)(行號)并不是數(shù)字類型,
  不能直接使用(1 == f_rows[2]進(jìn)行判斷,所以直接使用自身的類型。)
  (補(bǔ)充:應(yīng)該是字符串類型)
 '''
 for i,f_rows_temp in enumerate(reader):
 if(i == 0):
  continue
 row_num = f_rows_temp[2]
 print(row_num)
 break
 #遍歷寫入數(shù)據(jù),遍歷行數(shù)(即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() #強(qiáng)制IO刷新,寫入文件數(shù)據(jù)
 print(f_rows[1]) #兩個(gè)打印是為了便于觀察數(shù)據(jù)運(yùn)行情況
 print(f_rows)
 fw.close()
 fr.close()

題解下載鏈接

以上這篇python實(shí)現(xiàn)csv格式文件轉(zhuǎn)為asc格式文件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python環(huán)境搭建以及Python與PyCharm安裝詳細(xì)圖文教程

    Python環(huán)境搭建以及Python與PyCharm安裝詳細(xì)圖文教程

    PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,這篇文章主要給大家介紹了關(guān)于Python環(huán)境搭建以及Python與PyCharm安裝的詳細(xì)圖文教程,需要的朋友可以參考下
    2024-03-03
  • python中求兩個(gè)向量的夾角方式

    python中求兩個(gè)向量的夾角方式

    這篇文章主要介紹了python中求兩個(gè)向量的夾角方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python HTTP下載文件并顯示下載進(jìn)度條功能的實(shí)現(xiàn)

    Python HTTP下載文件并顯示下載進(jìn)度條功能的實(shí)現(xiàn)

    這篇文章主要介紹了Python HTTP下載文件并顯示下載進(jìn)度條功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • python 工具類之Queue組件詳解用法

    python 工具類之Queue組件詳解用法

    隊(duì)列(queue)是一種先進(jìn)先出的(First In First Out)的線性表,簡稱FIFO。隊(duì)列允許在一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。允許插入的一端為隊(duì)尾,允許刪除的一端為隊(duì)頭。隊(duì)列不允許在中間部位進(jìn)行操作
    2021-10-10
  • Anaconda+Pycharm+Pytorch虛擬環(huán)境創(chuàng)建(各種包安裝保姆級教學(xué))

    Anaconda+Pycharm+Pytorch虛擬環(huán)境創(chuàng)建(各種包安裝保姆級教學(xué))

    相信很多時(shí)候大家都會(huì)用到虛擬環(huán)境,他具有可以讓你快速切換不同的python版本,本文主要介紹了Anaconda+Pycharm+Pytorch虛擬環(huán)境創(chuàng)建,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Linux重裝miniconda的方法步驟

    Linux重裝miniconda的方法步驟

    在Linux系統(tǒng)中,使用miniconda可以方便的進(jìn)行軟件的安裝和環(huán)境配置,本文就來介紹一下Linux重裝miniconda的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • python人工智能human?learn繪圖創(chuàng)建機(jī)器學(xué)習(xí)模型

    python人工智能human?learn繪圖創(chuàng)建機(jī)器學(xué)習(xí)模型

    這篇文章主要為大家介紹了python人工智能human?learn繪圖就可以創(chuàng)建機(jī)器學(xué)習(xí)模型的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • Python實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)為EPUB電子書文件

    Python實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)為EPUB電子書文件

    這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)為EPUB電子書文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-06-06
  • Python字符串split及rsplit方法原理詳解

    Python字符串split及rsplit方法原理詳解

    這篇文章主要介紹了Python字符串split及rsplit方法原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python中的os.path.join使用方法詳解

    python中的os.path.join使用方法詳解

    這篇文章主要介紹了python中的os.path.join使用方法詳解,os.path.join用于將多個(gè)路徑拼接為一個(gè)完整路徑,經(jīng)常使用,但沒了解過細(xì)節(jié),直到今天遇到一個(gè)令人疑惑的問題,最后發(fā)現(xiàn)是os.path.join的問題,借此機(jī)會(huì),記錄下os.path.join的用法,需要的朋友可以參考下
    2023-11-11

最新評論