matlab 如何在xarray.DataArray中创建数据变量?

xu3bshqb  于 2023-02-09  发布在  Matlab
关注(0)|答案(1)|浏览(197)

如何在xarray.DataArray中分配数据或创建“数据变量”,或者在保存DataArray时在nc文件中创建数据变量?在创建xarray.DataArray时,它只是将数据存储为数组,而不是像nc文件那样存储为“数据变量”。下一步,我想将DataArray另存为nc文件,将数组存储为适当的“数据变量”和名称。

import numpy as np
import xarray as xr

T_data = np.random.random((100,10))
pressure = np.arange(0,100,1)
longitude = np.arange(350,360,1)

T_DataArray = xr.DataArray(data=T_data, coords={'p':pressure, 'lon':longitude}, dims=['p','lon'])

T_DataArray.to_netcdf(path='C:/my/path/file.nc')

Output: T_DataArray
(Here具体来说,我想继续将此nc文件加载到MATLAB,但无法访问作为数据变量存储的数据,ncread(file,???)不起作用...)
我如何创建一个“适当的”NC文件,包括一个数据变量在这里?谢谢!

ql3eal8s

ql3eal8s1#

NetCDF文件可以包含多个命名变量,因此您可能需要为变量指定一个有用的名称:

T_DataArray = xr.DataArray(
    data=T_data,
    coords={'p':pressure, 'lon':longitude},
    dims=['p','lon'],
    name='temperature'
)
T_DataArray.to_netcdf(path='./file.nc')

这将生成一个netCDF文件,如下所示:

$ ncdump -h file.nc
netcdf file {
dimensions:
    p = 100 ;
    lon = 10 ;
variables:
    int64 p(p) ;
    int64 lon(lon) ;
    double temperature(p, lon) ;
        temperature:_FillValue = NaN ;
}

在matlab中,您需要引用文件(file.nc)和变量("temperature")。

相关问题