收藏 分享(赏)

影像数据格式访问开源包GDAL.ppt

上传人:scg750829 文档编号:6325692 上传时间:2019-04-07 格式:PPT 页数:16 大小:214.50KB
下载 相关 举报
影像数据格式访问开源包GDAL.ppt_第1页
第1页 / 共16页
影像数据格式访问开源包GDAL.ppt_第2页
第2页 / 共16页
影像数据格式访问开源包GDAL.ppt_第3页
第3页 / 共16页
影像数据格式访问开源包GDAL.ppt_第4页
第4页 / 共16页
影像数据格式访问开源包GDAL.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、GDAL,GDAL简介,官网:http:/www.gdal.org/ GDAL是一个开源的栅格空间数据和影像数据的读写、转换器。 目前支持100多种栅格格式(http:/www.gdal.org/formats_list.html) C/C+版,GDAL数据模型,核心数据 Dataset(数据集) Raster Band(波段) Metadata(元数据) 坐标系统 Coordinate System(坐标系统) Affine GeoTransform (仿射变换) GCP(地面控制点) Color Table(颜色表) Overviews(金字塔层),让格式得到支持,编译时打开格式开关 有些

2、是默认的编译的,有些是需修改后重新编译的 参看http:/www.gdal.org/formats_list.html 程序中 获取格式的Driver 注册格式的Driver,注册所有格式,注册所有格式 GDALAllRegister(); 注意: 必须在编译时打开格式开关。 通常在程序中调用其他GDAL函数之前,必须首先调用此函数 反动作 GDALDestroyDriverManager();,打开数据集,GDALOpen GDALDatasetH GDALOpen (const char *pszFilename, GDALAccess eAccess) GDALAccess: GA_Re

3、adOnly :只读 GA_Update :读写 可自动识别数据格式。 成功返回句柄,失败返回NULL。 GDALClose关闭数据集,获取基本信息,GDALGetRasterXSize 获取列数 GDALGetRasterYSize 获取行数 GDALGetRasterCount 获取波段数 GDALGetGeoTransform 获取仿射变换参数 GDALGetGCPs 获取控制点,获取波段,GDALGetRasterBandH GDALRasterBandH GDALGetRasterBand ( GDALDatasetH hDS, int nBandId) nBandId:从1起算 成

4、功返回波段句柄,失败返回NULL,获取波段基本信息,GDALGetRasterBandXSize GDALGetRasterBandYSize GDALGetRasterDataType GDALGetRasterColorTable GDALGetDefaultRAT,按块(block)读写栅格数据,按block读写可以获得很高的性能 GDALGetBlockSize:获取一个标准block的大小(横向和纵向像素数) ReadBlock:读一个block WriteBlock:写一个block 计算block数目:GDALGetBlockSize(hBand, ,GDALReadBlock

5、( GDALRasterBandH hBand, int nXOff, int nYOff, void * pData ) 必须预先分配足够的内存给pData。CPLErr GDALWriteBlock ( GDALRasterBandH hBand, int nXOff, int nYOff, void * pData ),读写任意区域栅格数据,CPLErr GDALRasterIO ( GDALRasterBandH hBand, GDALRWFlag eRWFlag, int nXOff, int nYOff, int nXSize, int nYSize, void * pData,

6、int nBufXSize, int nBufYSize, GDALDataType eBufType, int nPixelSpace, int nLineSpace ) 注意:性能可能不高。如果是读数据,必须分配足够的内存给pData。本函数会自动根据eBufType进行类型转换。,像素坐标和地理坐标仿射转换,获取转换系数:double a6;GDALGetGeoTransform( hDataset, a );转换函数 void World2Pixel(double a6, double x, double y, int* r, int* c) *r = (int)(a4*x - a1*

7、y - a4*a0 + a1*a3)/(a4*a2 - a1*a5);*c = (int)(a5*x - a2*y - a5*a0 + a2*a3)/(a5*a1 - a2*a4); void Pixel2World(double a6, int r, int c, double* x, double* y) *x = a0 + a1 * c + a2 * r;*y = a3 + a4 * c + a5 * r; ,获取栅格总范围,将(0,0)和(XSize, YSize)传递给Pixel2World函数即可得到对角坐标。,获取格式驱动,GDALDriverH GDALGetDriverByN

8、ame (const char * pszName) pszName可从源代码或http:/www.gdal.org/formats_list.html的Code项获得。,创建新的栅格文件,GDALDatasetH GDALCreate ( GDALDriverH hDriver, const char * pszFilename, int nXSize, int nYSize, int nBands, GDALDataType eBandType, char * papszOptions ) 若成功返回数据集句柄,失败则返回NULL。 papszOptions与具体的格式有关,在很多情况下可为NULL。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医学治疗 > 医学影像

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报