GDAL常用API说明
整理遥感影像处理中所需要GDAL的API
发布于 2021518|更新于 202192|遵循 CC BY-NC-SA 4.0 许可
  1. void GDALAllRegister(void)

    注册所有已知的GDAL驱动器(Driver)。在程序开头使用即可。

  2. GDALDriver *GetDriverByName(const char*)

    通过名字搜索得到对应的Driver

    通常会这样使用来创建一个GTiffDriver

    cpp
    复制代码
    1GDALDriver* poDriver = GetGDALDriverManager()->GetDriverByName("GTiff");
  3. GDALDatasetH GDALOpen(const char *pszFilename, GDALAccess eAccess)

    通过某种读写模式(实验中通常是只读GA_ReadOnly)打开一个图片,并将数据以GDALDataset类存储。

    cpp
    复制代码
    1GDALDataset* data = (GDALDataset*)GDALOpen(filePath, GA_ReadOnly);
  4. GDALRasterBand *GetRasterBand(int)

    实验中,通常用作从Dataset中获取对应条带数的数据,以GDALRasterBand类存储。

    cpp
    复制代码
    1GDALRasterBand* band = data->GetRasterBand(1);
  5. int GetRasterXSize()/int GetRasterYSize()

    获取该栅格图像的X/Y像素数

    cpp
    复制代码
    1int xSize = band->GetRasterXSize(); 2int ySize = band->GetRasterYSize();
  6. CPLErr RasterIO(GDALRWFlag, int, int, int, int, void*, int, int, GDALDataType, int, int*, GSpacing, GSpacing, GSpacing, GDALRasterIOExtraArg *psExtraArg)

    用于对对应条带数据进行IO操作,可读可写。

    读:

    cpp
    复制代码
    1band->RasterIO(GF_Read, 0, 0, 1, 1, data, 1, 1, GDT_Float64, 0, 0); 2//(0,0):偏移量 3//(1,1):数据的大小 4//data: 数据存储地址 5//(1,1):数组的大小 6//GDT_Float64:数据格式

    写:

    cpp
    复制代码
    1band->RasterIO(GF_Write, 0, 0, 1, 1, data, 1, 1, GDT_Float64, 0, 0);
  7. void GDALClose(GDALDatasetH)

    用于程序结束时,关闭打开的图像。

Comments