python - 使用pyhdf时找不到字段

标签 python hdf pyhdf

我目前正在与 HDF 合作文件(版本 4),我使用 pyhdf模块(http://hdfeos.org/software/pyhdf.php)。

当我使用 nctoolbox 在 MATLAB 中打开 HDF 文件之一时,我得到以下变量:

>> a = ncgeodataset('2011365222309_30199_CS_2B-CLDCLASS_GRANULE_P_R04_E05.hdf')

a = 

  ncgeodataset with properties:

     location: '2011365222309_30199_CS_2B-CLDCLASS_GRANULE_P_R04_E05.hdf'
       netcdf: [1x1 ucar.nc2.dataset.NetcdfDataset]
    variables: {16x1 cell}

>> a.variables

ans = 

    'StructMetadata.0'
    '2B-CLDCLASS/Geolocation Fields/Profile_time'
    '2B-CLDCLASS/Geolocation Fields/UTC_start'
    '2B-CLDCLASS/Geolocation Fields/TAI_start'
    '2B-CLDCLASS/Geolocation Fields/Height'
    '2B-CLDCLASS/Geolocation Fields/Range_to_intercept'
    '2B-CLDCLASS/Geolocation Fields/DEM_elevation'
    '2B-CLDCLASS/Geolocation Fields/Vertical_binsize'
    '2B-CLDCLASS/Geolocation Fields/Pitch_offset'
    '2B-CLDCLASS/Geolocation Fields/Roll_offset'
    '2B-CLDCLASS/Geolocation Fields/Latitude'
    '2B-CLDCLASS/Geolocation Fields/Longitude'
    '2B-CLDCLASS/Data Fields/Data_quality'
    '2B-CLDCLASS/Data Fields/Data_status'
    '2B-CLDCLASS/Data Fields/Data_targetID'
    '2B-CLDCLASS/Data Fields/cloud_scenario'

使用 python 和 pyhdf我只看到 2 个变量:

>>> d = SD('2011365222309_30199_CS_2B-CLDCLASS_GRANULE_P_R04_E05.hdf')
>>> d.datasets()
{
  'cloud_scenario': (('nray:2B-CLDCLASS', 'nbin:2B-CLDCLASS'), (20434, 125), 22, 1), 
          'Height': (('nray:2B-CLDCLASS', 'nbin:2B-CLDCLASS'), (20434, 125), 22, 0)
}

如果有人能帮我弄清楚这里发生了什么。

最佳答案

您正在使用 pyhdf.SD 打开 hdf 文件,该文件仅允许您查看科学数据集 (SDS)。似乎丢失的字段是 Vdata 字段,而不是 SDS,因此您必须使用 pyhdf.HDF 和 pyhdf.VS 单独访问它们。

类似于:

from pyhdf.HDF import *
from pyhdf.VS import *

open_file_for_reading_vdata = HDF("your_input_file.hdf", HC.READ).vstart()
vdata = open_file_for_reading_vdata.vdatainfo()
print vdata

有关更多详细信息,请尝试此链接:http://pysclint.sourceforge.net/pyhdf/documentation.html

关于python - 使用pyhdf时找不到字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31003968/

相关文章:

python - 在 OrderedDict 中如何按特定属性排序?

python - OSX SL 上是否预安装了 PyObjC?

java - NetCDF 4.5 Java NetCDF 文件版本 4 的问题 + HDF 的旧代码不起作用

python - 如何在 python 中合并两个或三个 3D 数组?

python - Pandas stack() 如果列具有特定值

python - 如何解读 GridSearch 的最佳得分?

python - 打开损坏的 PyTables HDF5 文件

c - 可以从 C 或 Fortran 中读取 .Rdata 文件格式吗?

python - HDF + Pandas : how can I use a where mask with multindex?

python - 读取/打开 modis aqua .hdf 文件并在 gdal 和 matplotlib 中显示/绘制输出