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

问题描述 投票:0回答:2

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

这是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:\Users\abreucbr\AppData\Local\Continuum\anaconda3\envs\py36\lib\site-packages\xarray\core\
dataset.py", line 3088, in to_dataframe
    return self._to_dataframe(self.dims)
  File "C:\Users\abreucbr\AppData\Local\Continuum\anaconda3\envs\py36\lib\site-packages\xarray\core\
dataset.py", line 3078, in _to_dataframe
    index = self.coords.to_index(ordered_dims)
  File "C:\Users\abreucbr\AppData\Local\Continuum\anaconda3\envs\py36\lib\site-packages\xarray\core\
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,所以它似乎不是“空”。

这有什么问题?

python pandas netcdf python-xarray
2个回答
1
投票

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

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

一般来说,to_dataframe方法对数据集的效用有限,因为将6个维度折叠到单个索引中将会非常笨重/低效。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.