使用Python将txt文件转为nc文件

使用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()
	#为避免内存的占用,写完一个关闭一个

  • 1
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值