Python-使用点列表从没有for循环的网格NetCDF中提取数据

on

以下示例使用东风的“ Unidata”样本netCDF数据集,可从此处下载(2.8 MB)

我有两个整数列表,分别与netCDF文件中网格数组xy索引相对应我想提取数据并将其保存到每个点组合(例如点:)的一维数组或列表中[(x[0],y[0]), (x[1],y[1]), (x[2],y[2]), ... , (x[n],y[n])]

我可以使用这种方法很容易地做到这一点...

from netCDF4 import Dataset

# grid point lists
lat = [20, 45, 56, 67, 88, 98, 115]
lon = [32, 38, 48, 58, 87, 92, 143]

# open netCDF file
nc_file = "./sresa1b_ncar_ccsm3-example.nc"
fh = Dataset(nc_file, mode='r')

# extract variable
point_list = zip(lat,lon)
ua_list = []
for i, j in point_list:
    ua_list.append(fh.variables['ua'][0,16,i,j])

print(ua_list)

哪个返回:

[59.29171, 17.413916, -4.4006901, -11.15424, -5.2684789, 2.1235929, -6.134573]

但是append(),在大型数据集上比较笨拙,因此我试图加快代码执行速度,因此我也不想使用for循环,而是希望将结果单行返回。我尝试使用此行这样做:

# extract variable
ua_array = fh.variables['ua'][0,16,lat,lon]
print(ua_array)

它返回所有可能的点组合,而不仅仅是我所追求的:

[[ 59.2917099   60.3418541   61.81352234  62.66215515  60.6419754 60.00745392  52.48550797]
[ 18.80122566  17.41391563  14.83201313  12.67425823  13.99616718 14.4371767   14.12419605]
[ -5.56457043  -5.20643377  -4.40069008  -3.25902319  -2.36573601 -2.25667071  -1.0884304 ]
[-11.66207981 -11.46785831 -11.35252953 -11.15423965 -11.35271263 -11.55139542 -11.68573093]
[ -1.15064895  -1.52471519  -2.12152767  -2.67548943  -5.26847887 -5.79328251  -6.16713762]
[ -1.95770085  -0.56232995   0.82722098   1.39629912   2.65125418 2.12359285  -6.47501516]
[ -9.76508904 -10.13490105 -10.76805496 -11.31607246 -11.93865585 -11.56440639  -6.13457298]]

如何对netCDF文件进行切片,以便在一行中获得与上述代码相同的结果?提前致谢。

迈克·米勒

首先使用0和进行普通索引16,然后使用lat进行高级索引lon

ua_array = fh.variables['ua'][0,16][lat,lon]
print(ua_array)

输出:

[ 59.2917099   17.41391563  -4.40069008 -11.15423965  -5.26847887
   2.12359285  -6.13457298]

顺便说一句,ua_array是一个NumPy数组。因此,调用它ua_list有点误导。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Python从没有循环的JSON对象中提取嵌套项

Python - 从没有正则表达式的段落中的引号中提取单词

从没有标题的数据框中获取列表-pandas python

从没有引号的列表中提取字典

Python - 从没有方括号的函数中打印数字列表

如何在 Python 中从没有 Pandas 的文件中获取数据?

Python。美汤。从没有属性的标签 (DIV) 中获取数据

使用jq从没有key的API中提取数据

使用索引和匹配从没有行标题的表中提取数据

如何使用python从没有标题的文本文件中选择列

从没有dict的对象访问python成员

如何使用带有 Python 的 Selenium Webdriver 从没有属性的工具提示中获取文本?

从没有capfile的数据包头中提取HTML有效负载

从没有临时变量的ifstream中提取?

SSIS - 从没有标题的存储过程中提取数据

从没有数组的功能链中提取数据

从没有公共字段的两个表中提取数据

如何从没有扩展名的路径中获取特定文件名python

在python中从没有文件类型的API端点保存图像

如何从没有值的python中删除重复项

python - 如何从没有任何元音的文本文件中过滤单词?

使用python从具有不同级别的嵌套列表和字典的json中提取数据

有没有办法从Python中的P / ACF图中提取点?

如何从没有逗号且键中没有值的字典中提取记录

使用R从没有空格或定界符的字符串中提取单词

Python使用xarray从NETCDF文件中提取多个纬度/经度

从字典python 3的列表中提取数据

从python中的列表中提取数据

如何从元素列表python中提取数据