爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4180|回复: 1

[程序设计] 使用Python将txt文件转为nc文件

[复制链接]

新浪微博达人勋

发表于 2019-11-18 16:54:19 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
使用Python将txt文件转为nc文件
这段时间要批量使用nc文件,这里提供一个我自己编写的txt转nc文件的程序
首先载入所需库
import netCDF4 as nc            
from netCDF4 import Dataset
import pandas as pd
import os
from pandas import DataFrame as df
import numpy as np
输入txt文件位置和nc文件输出位置
filepath = "~/txt/"
#nc文件位置
filenames = os.listdir(filepath)
#批量读取文件名
file_path = '~/nc/'
#nc文件输出位置
#下面进入批量处理
for file_name in filenames:
   
    nc_pro =Dataset(file_path+file_nc+'.nc', 'w', format = 'NETCDF4')
#使用Dataset创建nc文件
nc_pro.createDimension('al',None)
   nc_pro.createDimension('temp',None)
   nc_pro.createDimension('RH',None)
   nc_pro.createDimension('pha',None)
    #命名nc文件变量,None,为自由维度
    al =nc_pro.createVariable('al',np.float64,('al'))
    temp =nc_pro.createVariable('temp',np.float64,('temp'))
    rh =nc_pro.createVariable('RH',np.float64,('RH'))
    pha =nc_pro.createVariable('pha',np.float64,('pha'))
    #设置nc文件中变量类型,这里使用的是float64
   
    al.units = 'm'
    rh.units = '%'
    temp.units ='K'
    pha.units ='pha'
    #定义变量单位
   
  data =pd.read_csv(filepath+file_name)
   #使用panda中的read_csv读取txt文件
  data_df =data['height\tPha\ttemp\tRH'].str.split('\t',expand = True)
#由于我读取的txt文件只输入到了一个columns,所以我使用这个语句进行了分列
    nc_df =df(data_df.values, columns=['al','pha','temp','RH'])
    #将分列后的dataframe文件columns重新命名
    nc_pro['al'][:] =nc_df['al'].values
    nc_pro['rh'][:] =nc_df['RH'].values
    nc_pro['pha'][:] =nc_df['pha'].values
    nc_pro['temp'][:] =nc_df['temp'].values
    #将数值输入到nc文件中
nc_pro.close()
#为避免内存的占用,写完一个关闭一个

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-4-3 13:16:34 | 显示全部楼层
厉害 顶顶顶
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表