关于GDAL打开hfa大文件的问题
2011-01-06 22:02
239 查看
今天在使用GDAL打开大的img文件的时候,(这里所谓的大文件指的是img文件太大,会将数据文件存放到ige格式raw文件中)。在讲img文件和ige文件重命名后,使用GDAL打开文件后,只能读取到文件信息,不能读取图像的数据文件。仔细查看GDAL源代码发现,在img文件中记录了对应的ige文件的名称,重命名后img文件中的记录ige文件名还是原来的,找不到ige文件,所以就打不开了。但是在使用Erdas和ArcGIS打开该文件时,会正常打开,于是查看GDAL代码,修改部分代码,能够使GDAL正常打开。
修改的代码位置如下,gdal源代码目录/frmts/hfa/hfaband.cpp中 367行处的代码修改为下面的:
希望对大家有用!
修改的代码位置如下,gdal源代码目录/frmts/hfa/hfaband.cpp中 367行处的代码修改为下面的:
/* -------------------------------------------------------------------- */ /* Open raw data file. */ /* -------------------------------------------------------------------- */ const char *pszRawFilename = poDMS->GetStringField( "fileName.string" ); const char *pszFullFilename; pszFullFilename = CPLFormFilename( psInfo->pszPath, pszRawFilename, NULL ); if( psInfo->eAccess == HFA_ReadOnly ) fpExternal = VSIFOpenL( pszFullFilename, "rb" ); else fpExternal = VSIFOpenL( pszFullFilename, "r+b" ); if( fpExternal == NULL ) { CPLString strFileName = psInfo->pszFilename; strFileName = strFileName.substr(strFileName.find_last_of('.')+1) + "ige"; pszFullFilename = CPLFormFilename( psInfo->pszPath, strFileName.c_str(), NULL ); if( psInfo->eAccess == HFA_ReadOnly ) fpExternal = VSIFOpenL( pszFullFilename, "rb" ); else fpExternal = VSIFOpenL( pszFullFilename, "r+b" ); if( fpExternal == NULL ) { CPLError( CE_Failure, CPLE_OpenFailed, "Unable to open external data file:/n%s/n", pszFullFilename ); return CE_Failure; } psInfo->pszIGEFilename = const_cast<char*>(strFileName.c_str()); }
希望对大家有用!
相关文章推荐
- 关于GDAL打开hfa大文件的问题
- 关于GDAL打开hfa大文件的问题[转]
- 关于vc++6.0“打开文件“功能问题的解决方法
- 在VC空项目里添加自定义的预编译头(或关于:无法打开预编译头文件:“Debug/xxx.pch”: No such file or directory的问题的解决)
- 关于使用IE6下载文件时提示windows无法打开的问题
- 关于C++中open打开文件函数的诡异的问题
- 关于Dreamweaver打开后以前创建的站点在文件选项卡消失的问题
- [cocos2dx]COCOS2D-X 关于 fatal error C1083: 无法打开包括文件:“CCStdC.h” 的问题
- COCOS2D-X 关于 fatal error C1083: 无法打开包括文件:“CCStdC.h” 的问题(同时避免copy文件夹和库)
- 关于exe文件无法打开的问题
- 关于php打开word文件的问题
- 关于各种文件用Editplus的方式打开出现“向程序发送命令时出现问题”的解决方法
- RHEL修改最大文件打开数,关于epoll socket Too many open files问题的解决
- 关于VS2010(MFC应用程序)打开头文件崩溃的问题以及解决方法
- 关于GDAL180中文路径不能打开的问题分析与解决
- 关于CSV文件 Excel打开乱码问题的解决方案
- 关于vc6.0出现的“打开文件崩溃”以及“导入工程崩溃”的问题
- 关于用excel打开一个utf-8格式的csv文件的问题
- 关于创建Excel表格问题(保存至指定文件/弹出直接打开还是下载,并可以选择保存路径的对话框)
- 关于windows远程设置问题如下: 1.首先运行sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 【文件不一定在etc/mysql/my.cnf】 在打开文件后