如何用python合并多个有规则命名的nc文件

现有多个nc文件,命名除了年份不同外,其他皆相同。希望将多个的nc文件合并为一个。

其中,每个nc文件内包含如下内容,包含12个月均数据

因此,我们可以知道,合并两个nc文件,time应该=‘24’,合并三个,time=‘36’。以此类推,合并x年,time=x*12。

主要通过xarray实现合并功能,并写出合并后的nc文件:

#导入用到的库
import xarray as xr
import os
#首先,利用一个循环将需要合并的年份挑选出来。我这里选择1982-2012年的数据
file_xadv=[]
for year in range(1982,2013):
	fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.mon.161x720.nc')
    file_xadv.append(fn)

运行后可以得到所有完整路径的文件列表:

下面就是进行合并啦:

#合并nc文件,通过xarray打开nc文件,并得到所需变量的xarray.DataArray,之后利用xarray.concat()实现合并的功能
xadv_new=[]
for i in range(len(file_xadv)):
     xadv=xr.open_dataset(file_xadv[i])['xadv']
     xadv_new.append((xadv))
da=xr.concat(hadv_new,dim='time')

运行发现合并好啦:

xarray.concat()官方介绍如下:

xarray.concat

例外,官网也给出了其他的合并方式,大家可以按需所求:

1、有关沿单个维度组合数据集或数据数组的信息,使用 concatenate。

2、有关合并具有不同变量的数据集,使用 merge。

3、 有关合并具有不同索引或缺失值的数据集或数据数组的信息,使用 combine。

4、有关沿多个维度组合数据集或数据数组的信息,使用 combining.multi。

Combining data

附上完整实现代码:

import xarray as xr
import os

path1='E:\\BaiduNetdiskDownload\\MSE_budget\\xadv\\'
file_xadv=[]

for year in range(1982,2013):
     fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.mon.161x720.nc')
     file_xadv.append(fn)
hadv_new=[]
for i in range(len(file_xadv)):
     xadv=xr.open_dataset(file_xadv[i])['xadv']
     hadv_new.append((xadv))
da=xr.concat(hadv_new,dim='time')

da.to_netcdf('D:\\desktopppp\\sst_olr\\interp_nan\\xadv_interp.nc')#输出合并后的nc文件

好啦,今天的分析就到这里啦,感兴趣的小伙伴快去尝试一下吧~

到此这篇关于如何用python合并多个有规则命名的nc文件的文章就介绍到这了,更多相关python合并nc文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现合并同一个文件夹下所有txt文件的方法示例

    本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法.分享给大家供大家参考,具体如下: 一.需求分析 合并一个文件夹下所有txt文件 二.合并效果 三.python实现代码 # -*- coding:utf-8*- import sys reload(sys) sys.setdefaultencoding('utf-8') import os import os.path import time time1=time.time() ########################

  • Python批量合并有合并单元格的Excel文件详解

    合并单元格 合并单元格相信大家都会,比如下面这段简单的代码就可以实现: app='Word' word=win32.gencache.EnsureDispatch('%s.Application' % app) doc=word.Documents.Add() word.Visible=False #Title begin sel =word.Selection sel.Font.Name = u"微软雅黑" sel.Font.Size = 8 sel.Font.Bold = Fals

  • python实现两个文件合并功能

    本文将会分析一个文件合并的程序,并指出在合并文件过程中需要注意的问题. 下面是需要合并的文件示例: 分析思路: 要将两个文件合并,首先要将文件读到内存中,成为列表.再将列表分割,按照类别将数据分开存储,即姓名.电话.邮箱.通过遍历列表1,依次与列表2比较,如果二者有重合的人,那么直接利用 .join([ ])姓名电话邮箱合并到一行,保存到另外一个列表变量里面.二者不重合的人,说明只有列表1中才有,故将此人的邮箱信息用str('-–')代替. 经过这次遍历之后,列表1中所有的人和列表2中与列表1中

  • python将多个文本文件合并为一个文本的代码(便于搜索)

    但是,当一本书学过之后,对一般的技术和函数都有了印象,突然想要查找某个函数的实例代码时,却感到很困难,因为一本书的源代码目录很长,往往有几十甚至上百个源代码文件,想要找到自己想要的函数实例谈何容易? 所以这里就是要将所有源代码按照目录和文件名作为标签,全部合并到一处,这样便于快速的搜索.查找,不是,那么查找下一个--于是很快便可以找到自己想要的实例,非常方便.当然,分开的源代码文件依然很有用,同样可以保留.合并之后的源代码文件并不大,n*100KB而已,打开和搜索都是很快速的.大家可以将同一种编

  • python实现文本文件合并

    python合并文本文件示例代码. python实现两个文本合并 employee文件中记录了工号和姓名 cat employee.txt: 100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma bonus文件中记录工号和工资 cat bonus.txt: 100 $5,000 200 $500 300 $3,000 400 $1,250 要求把两个文件合并并输出如下, 处理结果: 400 ashok sharma $1,2

  • 如何用python合并多个有规则命名的nc文件

    现有多个nc文件,命名除了年份不同外,其他皆相同.希望将多个的nc文件合并为一个. 其中,每个nc文件内包含如下内容,包含12个月均数据 因此,我们可以知道,合并两个nc文件,time应该=‘24’,合并三个,time=‘36’.以此类推,合并x年,time=x*12. 主要通过xarray实现合并功能,并写出合并后的nc文件: #导入用到的库 import xarray as xr import os #首先,利用一个循环将需要合并的年份挑选出来.我这里选择1982-2012年的数据 file

  • 如何用Python合并lmdb文件

    由于Caffe使用的存储图像的数据库是lmdb,因此有时候需要对lmdb文件进行操作,本文主要讲解如何用Python合并lmdb文件.没有lmdb支持的,需要用pip命令安装. pip install lmdb 代码及注释如下: # coding=utf-8 # filename: merge_lmdb.py import lmdb # 将两个lmdb文件合并成一个新的lmdb def merge_lmdb(lmdb1, lmdb2, result_lmdb): print 'Merge sta

  • 如何用python合并多个excel文件

    安装模块 1.找到对应的模块  http://www.python-excel.org/ 2.用 pip install 安装 pip3 install xlrd pip3 install XlsxWriter 因为使用的是 python3,所以安装的时候采用 pip3. XlsxWriter 示例 先看看简单的演示: import xlsxwriter # 创建一个工作簿并添加一个工作表 workbook = xlsxwriter.Workbook("c.xlsx") workshe

  • Python 等分切分数据及规则命名的实例代码

    将一份一亿多条数据的csv文件等分为10份,代码如下所示: import pandas as pd data = pd.read_csv('C:\\Users\\PycharmProjects\\SplitData\\data\\UserBehavior.csv') # 路径则根据个人存放项目文件的习惯 num = 0 for i in range(1, 11): start = num num = num + int(data.shape[0] / 10) file = data.iloc[s

  • 如何用Python来搭建一个简单的推荐系统

    在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小组整理.它包含1,10和2亿个评级. Movielens还有一个网站,我们可以注册,撰写评论并获得电影推荐.接下来我们就开始实战演练. 在这篇文章中,我们会使用Movielens构建一个基于item的简易的推荐系统.在开始前,第一件事就是导入pandas和numPy. import pandas as pd import numpy a

  • 如何用python处理excel表格

    openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装. 读取Excel文件 需要导入相关函数 from openpyxl import load_workbook # 默认可读写,若有需要可以指定write_only和read_only为True wb = load_workbook('pythontab.xlsx') 默认打开的文件为可读写,若有需要可以指定参数read_only为True. 获取工作表--Sheet # 获得所有s

  • 详解分布式系统中如何用python实现Paxos

    一致性算法背景 1.Paxos一致性算法解决的问题:分布式系统中数据不能存在单个节点(主机)上,否则可能出现单点故障:多个节点(主机)需要保证具有相同的数据. 2.什么是一致性:一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的. 3.一致性模型分类:一般分为强一致性和弱一致性,强一致性保证系统改变提交以后立即改变集群的状态.常见模型包括:Paxos,Raft(muti-paxos),ZAB(muti-paxos): 弱一致性也叫最终一致性,系统不保证改变提交以后立即改

  • 一文教你如何用Python轻轻松松操作Excel,Word,CSV

    目录 Python操作Excel 常用工具 xlrd&xlwt&xlutils介绍 安装库 写入Excel 读取Excel 修改excel 格式转换操作 Python操作Word 安装python-docx 写入Word 读取Word文件 Python操作CSV 简介 基本使用 Python 操作 Excel 常用工具 数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件.因此用 Python 进行数据处理时,很容易会和 Excel 打起交道.得益于前人的

  • 利用python合并csv文件的方式实例

    目录 1.用concat方法合并csv 2.glob模块批量合并csv 补充:Python处理(加载.合并)多个csv文件 总结 1.用concat方法合并csv 将两个相同的csv文件进行数据合并,通过pandas的read_csv和to_csv来完成,即采用concat方法: #加载第三方库 import pandas as pd import numpy as np #读取文件 df1 = pd.read_csv("文件-1.csv") df2 = pd.read_csv(&qu

  • python合并RepeatMasker预测结果中染色体的overlap区域

    目录 前言 问题 思路 1. 预处理 2. 将pretreatment.txt作为输入文件, 3.去重+归并排序 4.开始比对,gap=50 5.将new_result.txt作为输出文件,生成结果 6. 完整代码 前言 RepeatMasker是一个通过已有数据库预测重复序列的软件,可以筛选DNA序列中的散在重复序列和低复杂序列,是重复序列注释的重要软件. 问题 我们想对RepeatMasker预测的结果文件进行重复序列的合并,也就是去除染色体之间的overlap区域同时将基因间距小于50个b

随机推荐