首页 > 解决方案 > 将 DataArray 转换为 numpy 数组

问题描述

我有一个要转换为 numpy 数组的 DataArray。作为参考,它是一个包含(时间、纬度、经度)的三维网格数据集。我曾尝试使用 xarray.DataArray.values(),但收到错误:TypeError: 'property' object is not callable。

我想将它转换为一个 numpy 数组,因为我正在使用一个利用重塑功能的函数并且不能与 DataArray 一起正常工作。我尝试使用 np.array() 将其简单地转换为 numpy 数组,但它将每个值转换为 NaN。

datatlt=xr.open_dataset("/nfs/home11/staff/lzhou/Public/Satellite_data/RSS_Tb_Anom_Maps_ch_TLT_V4_0.nc", decode_times=False)

tlt=datatlt['brightness_temperature'].sel(months=slice(121,492))
tlt2=np.ma.masked_invalid(tlt)

tlt2=xr.DataArray.values(tlt2)

标签: pythonnumpypython-xarray

解决方案


DataArray.values是一个属性。属性不可调用。相反,您只需访问 numpy 数组,就好像它是 DataArray 的属性一样。

tlt2 = tlt.values

如果你想要一个掩码数组,你需要调用该to_masked_array方法

tlt2 = tlt.to_masked_array()

推荐阅读