gpt4 book ai didi

c++ - GDALOpen 在 GEOTiff 文件上返回 null

转载 作者:行者123 更新时间:2023-11-28 04:07:46 25 4
gpt4 key购买 nike

我正在尝试使用 gdal library 打开 GEOTiff 图像。我的代码:

GDALDatasetH hSrcDS = GDALOpen("/home/gamma/srtm_55_01.tif", GA_ReadOnly);
if (hSrcDS == nullptr)
printf("failure");
else
printf("success");

这是输出:

ERROR 4: `/home/gamma/srtm_55_01.tif' not recognized as a supported file format.
failure

我也尝试过使用相对路径,但它也不起作用。

文件 “/home/gamma/srtm_55_01.tif” 存在并且是从 here 下载的(srtm_55_01)。

我想也许我毕竟犯了一个错误。我看着 sources gdal_contour那里的代码完全相同。

此外,我尝试在我的文件上使用 gdal_contour - 一切都成功了。

gamma@gamma:~$ gdalinfo --version
GDAL 2.2.3, released 2017/11/20

最佳答案

尝试按照以下顺序打开光栅文件

  /* register all known GDAL drivers.
* attempt to suppress GDAL warnings.
*/

GDALAllRegister();
CPLPushErrorHandler(CPLQuietErrorHandler);
/* -------------------------------------------------------------------- */
/* Open source raster file. */
/* -------------------------------------------------------------------- */
GDALDatasetH hSrcDS = GDALOpen(pszSrcFilename, GA_ReadOnly);
if( hSrcDS == nullptr )
exit( 2 );

GDALRasterBandH hBand = GDALGetRasterBand( hSrcDS, nBandIn );
if( hBand == nullptr )
{
CPLError( CE_Failure, CPLE_AppDefined,
"Band %d does not exist on dataset.",
nBandIn );
exit(2);
}

if( !bNoDataSet && !bIgnoreNoData )
dfNoData = GDALGetRasterNoDataValue( hBand, &bNoDataSet );

关于c++ - GDALOpen 在 GEOTiff 文件上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com