GDAL开发

GDAL开发

[email protected]

2015年2月6日

 

1  目的:利用gdal库操作影像数据

2 原理:使用统一的基类,根据不同的功能,扩展子类。

由Driver将各种格式转换为统一的操作接口,使用Dataset操作文件,使用RasterBand操作波段数据,使用DriverManager操作Driver。

3 方法

3.1 统一基类:GDALMajorObject

1)   自身描述:GetDescription(),数据集返回其名称,波段返回其描述。

2)   元数据键值对列表:GetMatadata()。键值对信息。字符串列表,最后字符串为NULL,不能释放。

示例:

DCAP_CREATE=YES

DCAP_CREATECOPY=YES

DCAP_VIRTUALIO=YES

DMD_CREATIONDATATYPES=ByteUInt16 Int16 UInt32 Int32 Float32 Float64 CInt16 CInt32 CFloat32 CFloat64

DMD_CREATIONOPTIONLIST=<CreationOptionList>   <Option name='COMPRESS'type='string-select'>      <Value>NONE</Value>      <Value>LZW</Value>      <Value>PACKBITS</Value>      <Value>JPEG</Value>      <Value>CCITTRLE</Value>      <Value>CCITTFAX3</Value>      <Value>CCITTFAX4</Value>       <Value>DEFLATE</Value>   </Option>   <Option name='PREDICTOR' type='int'description='Predictor Type'/>  <Option name='JPEG_QUALITY' type='int' description='JPEG quality1-100' default='75'/>   <Optionname='ZLEVEL' type='int' description='DEFLATE compression level 1-9'default='6'/>   <Optionname='NBITS' type='int' description='BITS for sub-byte files (1-7), sub-uint16(9-15), sub-uint32 (17-31)'/>  <Option name='INTERLEAVE' type='string-select'default='PIXEL'>      <Value>BAND</Value>      <Value>PIXEL</Value>  </Option>   <Optionname='TILED' type='boolean' description='Switch to tiled format'/>   <Option name='TFW' type='boolean'description='Write out world file'/>  <Option name='RPB' type='boolean' description='Write out .RPB (RPC)file'/>   <Option name='BLOCKXSIZE'type='int' description='Tile Width'/>  <Option name='BLOCKYSIZE' type='int' description='Tile/StripHeight'/>   <Optionname='PHOTOMETRIC' type='string-select'>      <Value>MINISBLACK</Value>       <Value>MINISWHITE</Value>       <Value>PALETTE</Value>       <Value>RGB</Value>       <Value>CMYK</Value>       <Value>YCBCR</Value>       <Value>CIELAB</Value>       <Value>ICCLAB</Value>       <Value>ITULAB</Value>   </Option>   <Option name='SPARSE_OK' type='boolean'description='Can newly created files have missing blocks?'default='FALSE'/>   <Optionname='ALPHA' type='string-select' description='Mark first extrasample as beingalpha'>      <Value>NON-PREMULTIPLIED</Value>      <Value>PREMULTIPLIED</Value>      <Value>UNSPECIFIED</Value>       <ValuealiasOf='NON-PREMULTIPLIED'>YES</Value>       <ValuealiasOf='UNSPECIFIED'>NO</Value>  </Option>   <Optionname='PROFILE' type='string-select' default='GDALGeoTIFF'>      <Value>GDALGeoTIFF</Value>       <Value>GeoTIFF</Value>       <Value>BASELINE</Value>   </Option>   <Option name='PIXELTYPE'type='string-select'>      <Value>DEFAULT</Value>      <Value>SIGNEDBYTE</Value>  </Option>   <Optionname='BIGTIFF' type='string-select' description='Force creation of BigTIFFfile'>    <Value>YES</Value>    <Value>NO</Value>    <Value>IF_NEEDED</Value>    <Value>IF_SAFER</Value>  </Option>   <Option name='ENDIANNESS'type='string-select' default='NATIVE' description='Force endianness of createdfile. For DEBUG purpose mostly'>      <Value>NATIVE</Value>      <Value>INVERTED</Value>      <Value>LITTLE</Value>      <Value>BIG</Value>  </Option>   <Optionname='COPY_SRC_OVERVIEWS' type='boolean' default='NO' description='Force copyof overviews of source dataset (CreateCopy())'/>   <Option name='SOURCE_ICC_PROFILE'type='string' description='ICC profile'/>  <Option name='SOURCE_PRIMARIES_RED' type='string'description='x,y,1.0 (xyY) red chromaticity'/>   <Option name='SOURCE_PRIMARIES_GREEN'type='string' description='x,y,1.0 (xyY) green chromaticity'/>   <Option name='SOURCE_PRIMARIES_BLUE'type='string' description='x,y,1.0 (xyY) blue chromaticity'/>   <Option name='SOURCE_WHITEPOINT'type='string' description='x,y,1.0 (xyY) whitepoint'/>   <Optionname='TIFFTAG_TRANSFERFUNCTION_RED' type='string' description='Transferfunction for red'/>   <Optionname='TIFFTAG_TRANSFERFUNCTION_GREEN' type='string' description='Transferfunction for green'/>   <Optionname='TIFFTAG_TRANSFERFUNCTION_BLUE' type='string' description='Transferfunction for blue'/>   <Optionname='TIFFTAG_TRANSFERRANGE_BLACK' type='string' description='Transfer rangefor black'/>   <Option name='TIFFTAG_TRANSFERRANGE_WHITE'type='string' description='Transfer range forwhite'/></CreationOptionList>

DMD_EXTENSION=tif

DMD_HELPTOPIC=frmt_gtiff.html

DMD_LONGNAME=GeoTIFF

DMD_MIMETYPE=image/tiff

DMD_SUBDATASETS=YES

3)   元数据域列表:GetMetadataDomainList()。需要释放。应该使用CPLStringList()进行自动管理,不要直接使用char **。

示例:参见:数据集:GDALDataset示例。

3.2 数据

目标:模拟影像数据。

原理:一个数据集代表一个影像,包含坐标系统、文件信息,由波段数据组成。

方法:

3.2.1 数据集:GDALDataset

表示单一影像文件。

3.2.1.1  数据集操作

1)   所有打开的数据集:GetOpenDatasets()。

2)   打开数据集:GDALOpen()。由于影像是文件,打开之后一定要关闭。不能使用delete释放。

3)   关闭数据集:GDALClose()。

3.2.1.2  文件信息:GetDriver(),GetFileList(),GetInternalHandle()。

1)   数据操作:RasterIO(),FlushCache()。

CPLErr GDALDataset::RasterIO

(

GDALRWFlag 

eRWF

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 你可以在 GDAL 的官方网站上下载 GDAL 开发手册。GDAL 的官方网站是 http://www.gdal.org 。在这个网站上,你可以找到 GDAL 的最新版本和相关文档。要下载 GDAL 开发手册,你需要找到网站上的文档部分或者手册部分。一旦你进入文档部分,你可以浏览不同的文档和手册选项,并选择下载 GDAL 开发手册的适当版本。下载的手册往往是一个压缩文件,通常以 PDF 或 HTML 的格式提供。你可以选择下载并解压缩这个文件,然后在本地使用。请注意,GDAL 开发手册提供了关于 GDAL 库的详细说明和用法指南,非常适合需要进行 GDAL 开发开发者使用。 ### 回答2: 你可以从GDAL的官方网站上下载GDAL开发手册。GDAL的官方网站是https://gdal.org/。在该网站上,你可以找到GDAL的最新版本和相关文档。在下载页面上,你可以找到GDAL开发手册的链接,并选择相应的版本进行下载。GDAL开发手册提供了详细的文档和指南,帮助开发者使用GDAL进行空间数据处理和分析。它包含了关于GDAL库的详细说明,并提供了实际示例来帮助开发者理解和使用GDAL的功能。无论是初学者还是有经验的开发者,GDAL开发手册都是一个非常有用的参考资源。 ### 回答3: 您可以在 GDAL(Geospatial Data Abstraction Library)的官方网站上下载 GDAL 开发手册。GDAL 的官方网站是:https://gdal.org/ 。 在网站的首页上,您可以找到一个名为 "Documentation"(文档)的链接。点击这个链接,您会被带到一个新的页面,上面列出了多种文档选项。其中,您可以找到名为 "GDAL API Tutorial and Reference Manual"(GDAL API 教程和参考手册)的选项。点击这个选项,您将会找到 GDAL开发手册。 GDAL开发手册是一个非常详细和全面的文档,提供了关于 GDAL API 的使用说明和示例代码。您可以通过阅读这个手册来学习如何使用 GDAL 来读取、处理和写入地理空间数据。 希望这个回答对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗里曼的小伙伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值