具有空变量和 0 维对象数据帧的 xarray 和 netCDF 文件



我正在尝试使用xarray将一些 .nc 文件转换为pandas数据帧。

下面是其中一个 netCDF 文件:

ftp://l5ftl01.larc.nasa.gov/MISR/MIL2ASAE.003/2017.08.31/MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc

和代码:

import xarray as xr
ds = xr.open_dataset("MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc")
df = ds.to_dataframe()

和错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:UsersabreucbrAppDataLocalContinuumanaconda3envspy36libsite-packagesxarraycore
dataset.py", line 3088, in to_dataframe
return self._to_dataframe(self.dims)
File "C:UsersabreucbrAppDataLocalContinuumanaconda3envspy36libsite-packagesxarraycore
dataset.py", line 3078, in _to_dataframe
index = self.coords.to_index(ordered_dims)
File "C:UsersabreucbrAppDataLocalContinuumanaconda3envspy36libsite-packagesxarraycore
coordinates.py", line 80, in to_index
raise ValueError('no valid index for a 0-dimensional object')
ValueError: no valid index for a 0-dimensional object

例如,如果我检查ds变量,

ds.variables

我得到

Frozen(OrderedDict())

.nc文件有几个MB,所以它似乎不是"空的"。

这里有什么问题?

您的数据集似乎设置了组层次结构。Xarray 的open_dataset功能仅支持一次打开一个组。因此,您一次只需要打开一个组。像这样:

xr.open_dataset("MISR_AM1_AS_AEROSOL_P006_O094165_F13_0023.nc", group='4.4_KM_PRODUCTS')

一般来说,to_dataframe方法对数据集的效用有限,因为将 6 个维度折叠成一个索引将非常笨拙/效率低下。

您可以使用 netcdf4 数据集检查 nc 文件。这使您可以深入了解包括组在内的完整结构。

最新更新