osg gdal加载tif数据文件
时间: 2023-08-02 07:10:33 浏览: 127
osgEarth数据组织.zip_osg_osg 组织_osgearth_osgearth数据
加载tif数据文件可以使用开源的gdal库,以下是使用C++代码示例:
```c++
#include "gdal_priv.h"
GDALDataset *poDataset;
GDALAllRegister();
poDataset = (GDALDataset *) GDALOpen("your_tif_file.tif", GA_ReadOnly);
if (poDataset == NULL) {
printf("File not found or could not be opened.\n");
exit(1);
}
// 读取数据
int nXSize = poDataset->GetRasterXSize();
int nYSize = poDataset->GetRasterYSize();
int nBands = poDataset->GetRasterCount();
GDALRasterBand *poBand;
double adfGeoTransform[6];
if (poDataset->GetGeoTransform(adfGeoTransform) == CE_None) {
printf("Origin = (%.6f,%.6f)\n", adfGeoTransform[0], adfGeoTransform[3]);
printf("Pixel Size = (%.6f,%.6f)\n", adfGeoTransform[1], adfGeoTransform[5]);
}
for (int i = 1; i <= nBands; i++) {
poBand = poDataset->GetRasterBand(i);
int nBlockXSize, nBlockYSize;
poBand->GetBlockSize(&nBlockXSize, &nBlockYSize);
printf("Band %d Block=%dx%d Type=%s, ColorInterp=%s\n", i, nBlockXSize, nBlockYSize,
GDALGetDataTypeName(poBand->GetRasterDataType()),
GDALGetColorInterpretationName(poBand->GetColorInterpretation()));
}
// 关闭数据集
GDALClose(poDataset);
```
以上代码使用GDAL库打开指定的tif文件,并读取数据集和基础信息。您需要将代码中的"your_tif_file.tif"替换为实际的tif文件路径。
阅读全文