Python - netCDF 文件上基于标准的选择

标签 python netcdf python-xarray

我有一个 netCDF 文件 test.nc,其中包含以下变量:

  • 时间
  • 纬度
  • Lai_500m
  • FparLai_QC

所有变量(timelatlon 除外)的形状均为 1523、120、120。

现在我只想选择FparLai_QC中已标记为高质量的数据以及Lai_500m<20的数据。

为了做到这一点,我尝试过:

os.chdir(inbasedir)
data = xr.open_dataset('MCD15A3H.006_500m_aid0001.nc')
qc_data = data.loc[(dict(var='Lai_500m') < 20) &
                  (dict(var='FparLai_QC') == 0) ]

和:

os.chdir(inbasedir)
data = xr.open_dataset('MCD15A3H.006_500m_aid0001.nc')
qc_data = data.loc[(data['Lai_500m'] < 20) &
                  (data['FparLai_QC'] == 0) ]

他们都返回了相同的错误:

TypeError: can only lookup dictionaries from Dataset.loc

有人知道如何实现我的数据选择吗?

最佳答案

Xarray 的 where method适合这种操作:

qc_data = data.where((data['Lai_500m'] < 20) & (data['FparLai_QC'] == 0))

如果您想删除仅与条件的 False 值相对应的坐标标签,您可能还会发现 drop 关键字很有用。

关于Python - netCDF 文件上基于标准的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54868221/

相关文章:

python - 使用 python NetCDF 写入 Mysql 时出错

python-3.x - 提取几何(形状)内的数据

python - 如何将字典中包含的多维数组存储在 python xarray 中?

python - 在多年的数据中获取 SON、DJF、MAM 变量的 95 个百分点

python - 在 Python+OpenCV 中,如何测试 cv.CaptureFromFile 返回值是否失败?

python - Maya Python 如何利用 for 循环中的多个收集点制作一条曲线

python - 无法识别的错误类型 : __array__( )

python - 如何在 python 中从 vrt 文件创建栅格时间序列

python - 将一个类的特征组合到另一个类的最合适的方法?

python - 没有名为 PIL 的模块