gdal读取txt文件_GDAL读取HDF和GRB2

这段代码展示了如何使用GDAL库读取TXT文件,并转换为GTIFF格式。同时,它也提供了处理GRB2格式数据的方法,将其转换成TIFF图像。通过GDAL的RasterIO函数进行数据读写操作,实现了不同数据类型的块转换过程。
摘要由CSDN通过智能技术生成

nager() -&gt GetDriverByName("GTIFF");

GDALDataset * OPTemp;

OPTemp = podrive -&gtCreate(outFpath,X,Y,1,Band-&gtGetRasterDataType(),NULL);

GDALRasterBand * TPband ;

TPband = OPTemp -&gtGetRasterBand(1);

TPband -&gt RasterIO( GF_Write, 0,0,X,Y,bandvalue,X,Y,Band-&gtGetRasterDataType(),0,0);

GDALClose(OPTemp);

delete []bandvalue;

bandvalue = NULL;

GDALClose(OPTemp);

break;

}

case (GDT_UInt16):

{unsigned short* bandvalue = new unsigned short[X * Y];

Band -&gt RasterIO( GF_Read, 0,0,X,Y,bandvalue,X,Y,Band-&gtGetRasterDataType(),0,0);

GDALDriver * podrive;

podrive = GetGDALDriverManager() -&gt GetDriverByName("GTIFF");

GDALDataset * OPTemp;

OPTemp = podrive -&gtCreate(outFpath,X,Y,1,Band-&gtGetRasterDataType(),NULL);

GDALRasterBand * TPband ;

TPband = OPTemp -&gtGetRasterBand(1);

TPband -&gt RasterIO( GF_Write, 0,0,X,Y,bandvalue,X,Y,Band-&gtGetRasterDataType(),0,0);

GDALClose(OPTemp);

delete []bandvalue;

bandvalue = NULL;

break;

}

default:

{break;}

}

GDALClose((GDALDriver * )DataSet);

break;

}

}

GDALClose((GDALDriverH)pDataSet);

return 0;

}

gdal 读取grb2格式

const int blockSize = 200;

template &lttypename T&gt

void BlockImgConvertProcess( int lblockXSize,int lblockYSize, int blockSize,int bandIndex,

int j,int k,GDALRasterBand* poBand,GDALRasterBand* poBand_img)

{

T *ppdata = new T[lblockXSize * lblockYSize];

poBand-&gtRasterIO( GF_Read, j * blockSize, k * blockSize, lblockXSize, lblockYSize,

ppdata, lblockXSize, lblockYSize, poBand-&gtGetRasterDataType(),

0, 0 );

poBand_img -&gt RasterIO ( GF_Write, j * blockSize, k * blockSize, lblockXSize, lblockYSize,

ppdata,lblockXSize, lblockYSize, poBand_img-&gtGetRasterDataType(), 0, 0);

delete[] ppdata;

ppdata = NULL;

}

bool GRBToImg(const char* pchTifPath, const char* pchImgPath)

{

string strTifPath = pchTifPath;

string strTifExt = strTifPath.substr(strTifPath.rfind('.') + 1, strTifPath.length());

string strImgPath = pchImgPath;

string strImgExt = strImgPath.substr(strImgPath.rfind('.') + 1, strImgPath.length());

transform(strTifExt.begin(),strTifExt.end(),strTifExt.begin(), ::toupper);

transform(strImgExt.begin(),strImgExt.end(),strImgExt.begin(), ::toupper);

if(strTifExt != "GRB2" || strImgExt != "TIF")

return false;

GDALDataset *poDataset;

//打开图像

poDataset = (GDALDataset *)GDALOpen( pchTifPath, GA_ReadOnly );

if( poDataset == NULL )

{

return false;

}

//打开图像

//获取图像信息

double adfGeoTransform[6];

double *maomao = new double[6];

long lWidth = poDataset-&gtGetRasterXSize();

long lHeight = poDataset-&gtGetRasterYSize();

long lBandCount = poDataset-&gtGetRasterCount();

const char* chWkt = poDataset-&gtGetProjectionRef();

poDataset-&gtGetGeoTransform( adfGeoTransform );

//获取图像信息

vector&ltstring&gt bandscrip;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值