我目前正致力于从.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]
答案 0 :(得分:1)
这里的关键是在water_u
和water_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_u
和water_v
那时,(3)将这些2D数组展平为1D,(4)如果使用标准的file.write技术转换为字符串(例如,可以避免使用Pandas to_csv
),以及(5)写出1D数组作为文本文件中的行。