python 多维数组合并_将多个NetCDF文件合并到timeseries多维数组python中

本文档介绍如何使用Python从多个NetCDF文件中提取数据并合并成一个多维时间序列数组。作者面临的问题是将不同位置的数据整合进一个矩阵,其中行代表位置,列代表时间序列的降水数据。他们已经可以读取单个位置的所有文件并将数据添加到数组中,但现在需要扩展这个过程以处理多个位置。代码示例中展示了如何遍历文件和位置,但目前只将数据追加到单一数组中,而不是组织成所需格式。
摘要由CSDN通过智能技术生成

我正在使用来自多个netcdf文件的数据(在我的计算机上的一个文件夹中)。每个文件保存整个美国5年的数据。位置是基于x和y坐标的索引引用的。我正在尝试为多个位置(网格单元)创建一个时间序列,将5年周期编译为20年周期(这将组合4个文件)。现在我可以从一个位置的所有文件中提取数据,并使用numpy append将其编译成一个数组。但是,我想提取多个位置的数据,将其放入一个矩阵中,其中行是位置,列包含时间序列降水数据。我想我必须创建一个列表或字典,但我不确定如何在循环中将数据分配给列表/字典。

我是python和netCDF新手,如果这是一个简单的解决方案,请原谅我。我一直在用这段代码作为指南,但还没有找到如何格式化它以满足我的需要:Python Reading Multiple NetCDF Rainfall files of variable size

这是我的代码:import glob

from netCDF4 import dataset

import numpy as np

# Define x & y index for grid cell of interest

# Pittsburgh is 37,89

yindex = 37 #first number

xindex = 89 #second number

# Path

path = '/Users/LMC/Research Data/NARCCAP/'

folder = 'MM5I_ccsm/'

## load data file names

all_files = glob.glob(path + folder+'*.nc')

all_files.sort()

## initialize np arrays of timeperiods and locations

yindexlist = [yindex,'38','39'] # y indices for all grid cells of interest

xindexlist = [xindex,xindex,xindex] # x indices for all grid cells of interest

ngridcell = len(yindexlist)

ntimestep = 58400 # This is for 4 files of 14600 timesteps

## Initialize np array

timeseries_per_gridcell = np.empty(0)

## START LOOP FOR FILE IMPORT

for timestep, datafile in enumerate(all_files):

fh = Dataset(datafile,mode='r')

days = fh.variables['time'][:]

lons = fh.variables['lon'][:]

lats = fh.variables['lat'][:]

precip = fh.variables['pr'][:]

for i in range(1):

timeseries_per_gridcell = np.append(timeseries_per_gridcell,precip[:,yindexlist[i],xindexlist[i]]*10800)

fh.close()

print timeseries_per_gridcell

我把3个文件放在dropbox上,这样你就可以访问它们,但我只能发布2个链接。这些是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值