我目前正在与 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/