根据时间从 NETCDF(.NC 文件)中提取数据
Extract data from NETCDF (.NC file) based on time
我目前正致力于从 .NC
文件中提取数据以创建一个 .cur
文件以便在 GNOME 中使用。我在 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 个时间数据,但我有成千上万的 [x][y]
和速度。
我的问题是如何根据时间变量提取速度?
import numpy as np
from netCDF4 import Dataset
volcgrp = Dataset('file_1.nc', 'r')
var = volcgrp.variables['water_v'][:]
print(var)
newList = var.tolist()
file = open('text.txt', 'w')
file.write('%s\n' % newList)
print("Done")
volcgrp.close()
这里的关键是读取它的三个维度中的每一个的 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) 将那些二维数组展平为一维,(4) 如果使用标准 file.write 技术则转换为字符串(例如可以避免使用 Pandas to_csv
) , (5) 在文本文件中将一维数组作为行写出。
我目前正致力于从 .NC
文件中提取数据以创建一个 .cur
文件以便在 GNOME 中使用。我在 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 个时间数据,但我有成千上万的 [x][y]
和速度。
我的问题是如何根据时间变量提取速度?
import numpy as np
from netCDF4 import Dataset
volcgrp = Dataset('file_1.nc', 'r')
var = volcgrp.variables['water_v'][:]
print(var)
newList = var.tolist()
file = open('text.txt', 'w')
file.write('%s\n' % newList)
print("Done")
volcgrp.close()
这里的关键是读取它的三个维度中的每一个的 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) 将那些二维数组展平为一维,(4) 如果使用标准 file.write 技术则转换为字符串(例如可以避免使用 Pandas to_csv
) , (5) 在文本文件中将一维数组作为行写出。