最近需要用VC 来模拟(创建)出一个固定格式的HDF 数据。本文是我已经做完实验以后重新整理写出来的,我希望写得尽可能详细,这样可以方便自己今后查阅,同时有愿意学习的读者也容易理解。 HDF5 是用于存储科学数据的文件格式。关于HDF5 的有点,网上《HDF5.0 使用简介》里面有详细介绍。个人认为,HDF 最大的优点是能够容纳下不同类型的数据,尤其是对于遥感数据而言尤为合适,我们可以把图像数据以及和图像数据相关的元数据一起都装到同一个文件里,我认为这就是HDF 格式最大的好处。 实验环境简介 实验环境我用的是VC6.0,HDF 版本库用的是“HDF5-1.6.10”。首先建立一个基于MFC的对话框程序,工程名称为“CreateHDF5”。对话框界面如下: 在上述界面中,点击“HDF5 输出路径”后弹出“另存为”对话框,我们可以选择生成的HDF5 文件名称已经保存路径。设置好路径后点击“生成”按钮,会生成我们想要的HDF5文件。 为了保持文章的完整性,简要叙述相关控件及函数: 1、编辑框控件ID 为IDC_EDIT_OUTPUT,为其关联 CString 变量 m_outPutHDF5 2、按钮“HDF5 输出路径”ID 为IDC_BTN_HDF5OUTPUT,相对应的函数为 void CCreateHDF5Dlg::OnBtnHdf5output() { // TODO: Add your control notification handler code here CFileDialog dlg(FALSE, "*.*", NULL, OFN_HIDEREADONLY, "HDF5图象 文件(*.h5)|*.h5||", NULL); if (dlg.DoModal() == IDOK) { m_outPutHDF5=dlg.GetPathName(); } GetDlgItem(IDC_EDIT_OUTPUT)->SetWindowText(m_outPutHDF5); } 3、“生成”按钮 ID 为IDC_BTN_CREATEHDF5,相应函数为: void CCreateHDF5Dlg::OnBtnCreatehdf5() { // TODO: Add your control notification handler code here } 接下来的主要工作是在OnBtnCreatehdf5()添加代码,生成我们想要的格式的HDF5 文件。以上就是实验环境,接下来才是重点,一起分析如何创建HDF5 文件。 创建H DF5 文件 创建H DF5 文件 用C++创建一个空的HDF5 文件步骤如下: 1、 指定创建的文件名,以及存取特性。 2、 创建文件。 3、 关闭文件。 创建文件的C 语言代码为: file_id=HDF5create(filename,access_mode,create_id,access_id); status=H5Fclose(file_id); 第一句file_id 我的理解就是新创建的HDF5 文件的句柄-身份标识。access_mode 就是存取特性, access_mode 说明 H5F_A...