前段时间需要对MOD021KM数据进行处理,试着用GDAL(封装了HDF库)读了下HDF4格式
GDALAllRegister();
CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");//中文路径
GDALDataset* fileDataset=(GDALDataset*) GDALOpen(inputPath,GA_ReadOnly);//打开HDF数据集
if (fileDataset == NULL)
{
exit(1);
}
char** sublist=GDALGetMetadata((GDALDatasetH) fileDataset,"SUBDATASETS");//获得数据的字符串,可以打印出来看看自己需要的数据在那
string subDataset1Name=sublist[0];//这里选择了02中1KM反射率数据集
subDataset1Name=subDataset1Name.substr(subDataset1Name.find_first_of("=")+1);
GDALDataset* subDataset=(GDALDataset*) GDALOpen(subDataset1Name.c_str(),GA_ReadOnly);//打开该数据
if (subDataset == NULL)
{
exit(1);
}
//×××××××就可以按一把的样式读取数据了××××××//
GDALClose(subDataset);
GDALClose(fileDataset);