根据时间从NETCDF(.NC文件)中提取数据

时间:2016-10-31 21:25:14

标签: python variables extract netcdf

我目前正致力于从.NC文件中提取数据,以便在GNOME中创建.cur文件。我在python中这样做

我提取了以下变量。

water_u(time, y, x)
water_v(time, y, x)
x(x): 
y(y): 
time(time): time
SEP(time, y, x)

cur文件应包含以下内容:

[x][y][velocity x][velocity y]

这应该发生在每个时间变量存在。在这种情况下,我提取了10个时间数据,但我有成千上万的{{​​1}}和速度。

我的问题是如何根据时间变量提取速度?

[x][y]

1 个答案:

答案 0 :(得分:1)

这里的关键是在water_uwater_v中读取其三个维度中的每个维度,然后您可以在其时间维度上访问这些变量。

import netCDF4

ncfile = netCDF4.Dataset('file_1.nc', 'r') 
time = ncfile.variables['time'][:]  #1D
water_u = ncfile.variables['water_u'][:,:,:] #3D (time x lat x lon)
water_v = ncfile.variables['water_v'][:,:,:]

首次在此文件中访问每个网格点的数据:

water_u_first = water_u[0,:,:]

要将此3D数据存储到评论中描述的文本文件中,您需要(1)循环time,(2)访问water_uwater_v那时,(3)将这些2D数组展平为1D,(4)如果使用标准的file.write技术转换为字符串(例如,可以避免使用Pandas to_csv),以及(5)写出1D数组作为文本文件中的行。

相关问题