
GDAL
文章平均质量分 86
GDAL
场主不吃鍋巴
这个作者很懒,什么都没留下…
展开
-
GDAL WKT 学习 理解 使用
WKT表达几何类型、坐标信息、参考系统、投影定义字符串的起始表示格式通常是由类型关键字和一对方括号构成的,可以方便地被计算机程序解析和生成,也可以方便地被人类读写和理解。原创 2023-04-05 22:06:52 · 994 阅读 · 0 评论 -
GDAL C++ API 学习之路 (2)Dataset篇 代码示例 翻译 自学
其中,前两个参数(左上角的 X 坐标和图像的水平分辨率)用于计算像素的地理坐标的 X 坐标值,后两个参数(左上角的 Y 坐标和图像的垂直分辨率)用于计算像素的地理坐标的 Y 坐标值,中间两个参数(X 方向上的旋转角度和 Y 方向上的旋转角度)通常为 0,表示图像没有旋转。返回: CE_None成功时,或者CE_Failure无法获取转换 默认变换为 (0,1,0,0,0,1),即使返回CE_Failure错误(例如不支持转换为投影坐标的格式),也应返回默认变换。原创 2023-04-01 22:33:31 · 741 阅读 · 0 评论 -
GDAL C++ API 学习之路 (1)Dataset篇 代码示例 翻译 自学
在数据处理中,我们通常需要在内存中进行数据的计算和处理,因此需要知道当前数据集占用的内存大小,以便预估程序运行的内存需求,避免程序因内存不足而崩溃或运行缓慢。如果您的应用程序需要同时打开并读取或写入多个数据集,则每个数据集都应该使用GDALOpenShared()打开,以避免竞争条件或进程崩溃,但如果您可以确保每个数据集只被一个应用程序或线程访问,那么GDALOpen()是一个合适的选择。如果之前已经有线程打开了这个数据集,则它会返回一个指向相同数据集的指针,避免重复打开数据集而浪费资源。原创 2023-04-01 17:05:59 · 1941 阅读 · 0 评论 -
GDAL C++ API 学习之路 (1)Driver篇 代码示例 翻译 自学
当使用GDAL库进行栅格数据集的处理和操作时,需要使用驱动程序(不同的栅格数据格式、数据库、遥感数据源等都需要不同的驱动程序)。在使用GDAL之前,需要通过GDALDriver函数将库中现有的驱动程序注册到当前进程中,这样才能在打开栅格数据集时使用这些驱动程序。原创 2023-03-25 15:30:43 · 1597 阅读 · 0 评论 -
GDAL C++ API 学习之路 (5) Spatial Reference System篇 OGRSpatialReference类
OGRSpatialReference 是 GDAL/OGR 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。它提供了一系列功能,允许用户定义、查询、解析和转换地理空间数据的坐标系统和投影信息constchar从各种文本格式设置空间参考-- 尝试从中推断出 SRS 的文本定义。返回: 成功时OGRERR_NONE,或者如果无法识别名称、定义已损坏或无法成功查找 EPSG 值,则为错误代码SetTOWGS84。原创 2023-08-02 19:14:30 · 845 阅读 · 0 评论 -
GDAL C++ API 学习之路 (4) Spatial Reference System篇 OGRSpatialReference类
OGRSpatialReference 是 GDAL/OGR 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。它提供了一系列功能,允许用户定义、查询、解析和转换地理空间数据的坐标系统和投影信息。原创 2023-08-02 18:28:12 · 704 阅读 · 0 评论 -
GDAL C++ API 学习之路 (3) Spatial Reference System篇 OGRSpatialReference类
OGRSpatialReference 是 GDAL/OGR 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。它提供了一系列功能,允许用户定义、查询、解析和转换地理空间数据的坐标系统和投影信息。原创 2023-08-02 18:02:07 · 1087 阅读 · 0 评论 -
GDAL C++ API 学习之路 (2) Spatial Reference System篇 OGRSpatialReference类
OGRSpatialReference 是 GDAL/OGR 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。它提供了一系列功能,允许用户定义、查询、解析和转换地理空间数据的坐标系统和投影信息。原创 2023-08-02 17:07:45 · 936 阅读 · 0 评论 -
GDAL C++ API 学习之路 (1) Spatial Reference System篇 OGRSpatialReference类
在 GIS (地理信息系统) 中,SRS 是非常重要的概念,因为它定义了地理空间数据的几何特性和位置。是 GDAL/OGR 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。,则导出的 WKT 字符串将在一行中,不换行,否则使用多行格式,默认是使用多行格式。,则导出的 WKT 字符串将尽量使用简化的不规则椭球体描述,默认是不使用简化的描述。有关参数列表,请参阅。-- 指向变量的指针,其中将返回 UTM 和美国国家平面投影系统的区域。原创 2023-08-02 16:47:23 · 980 阅读 · 0 评论 -
GDAL C++ API 学习之路 (3) GDALRasterBand篇 代码示例 翻译 自学
GDALRasterBand是GDAL中用于表示栅格数据集中一个波段的类。栅格数据集通常由多个波段组成,每个波段包含了特定的数据信息,例如高程、红、绿、蓝色等,用于表示影像的不同特征。提供了许多功能来访问和操作波段的像素数据以及相关信息。它是GDAL C++ API中处理栅格数据的核心类之一,为栅格数据处理和分析提供了强大的功能和灵活性。virtualFill用常量值填充此波段-- 填充值的实数分量-- 填充值的虚部,默认为零返回:CE_Failure如果写入失败,否则CE_None。原创 2023-08-02 15:55:12 · 668 阅读 · 0 评论 -
GDAL C++ API 学习之路 (2) GDALRasterBand篇 代码示例 翻译 自学
- 如果为 TRUE,则将分配和初始化块,但实际上不会从源读取。-- 指向布尔值的指针,用于指示返回值是否为紧最小值。-- 指向布尔值的指针,用于指示返回值是否为紧最小值。-- 指向布尔值的指针,用于指示返回值是否有意义。-- 水平块偏移量,零表示最左边的块,1 表示下一个块,依此类推。-- 垂直块偏移量,零表示最上面的块,1 表示下一个块,依此类推。-- 水平块偏移量,零表示最左边的块,1 表示下一个块,依此类推。-- 垂直块偏移量,零表示最上面的块,1 表示下一个块,依此类推。原创 2023-08-02 12:49:03 · 579 阅读 · 0 评论 -
GDAL C++ API 学习之路 (1) GDALRasterBand篇 代码示例 翻译 自学
红、绿和蓝波段可能具有不同的像素数据类型,例如红波段可能是8位无符号整数(GDT_Byte),绿波段可能是16位无符号整数(GDT_UInt16),蓝波段可能是32位浮点数(GDT_Float32)。)具有不同的像素数据类型。-- 用于计算有效像素数的水平块偏移量,零表示最左边的块,1 表示下一个块,依此类推。-- 垂直块偏移量,零表示最左边的块,1 表示下一个块,依此类推。-- 水平块偏移量,零表示最左边的块,1 表示下一个块,依此类推。-- 垂直块偏移量,零表示最左边的块,1 表示下一个块,依此类推。原创 2023-08-02 11:57:57 · 914 阅读 · 0 评论 -
GDAL C++ API 学习之路 (7) Dataset篇 代码示例 翻译 自学
通过将这些更新操作组织在一个事务中,可以确保这些操作要么全部执行成功,要么全部回滚(撤销),从而保持数据的一致性。如果在事务执行过程中出现错误或意外情况,可以选择回滚事务,以撤销之前的更新操作,从而避免数据的损坏或不一致。-- 用于新图层的坐标系,如果没有可用的坐标系,则为 NULL。事务的使用还可以提高数据更新的效率。当数据量较大时,将多个更新操作组织在一个事务中,可以减少多次打开和关闭数据集的开销,从而提高数据更新的效率。-- 如果事务机制的模拟(可能很慢)是可接受的,则可以设置为 TRUE。原创 2023-08-01 14:43:56 · 473 阅读 · 0 评论 -
GDAL C++ API 学习之路 (6) Dataset篇 代码示例 翻译 自学
virtual从此数据集中获取下一个可用要素-- 指向 OGRLayer* 变量的指针,用于接收对象所属的层或 NULL。尽管特征不是 NULL,但 *ppoBelongingLayer 的输出可能是 NULL。-- 指向双精度变量的指针,用于接收进度百分比(在 [0,1] 范围内)或 NULL。返回时,如果无法确定进度,则指向值可能为负数。-- 用于报告进度的进度回调(对于可能持续时间较长的) 调用)并提供取消可能性或 NULL。-- 提供给 pfnProgress 或 NULL 的用户数据。原创 2023-08-01 14:24:23 · 446 阅读 · 0 评论 -
GDAL OGR C++ API 学习之路 OGRCodedFieldDomain篇
OGRCodedFieldDomain是OGRFieldDomain的一个子类,表示一个具有预定义代码的字段域,它包含了一些可接受的值列表,只有列表中的值才能被设置为字段的值。它通常用于表示分类数据或代码表。原创 2023-05-01 15:46:31 · 132 阅读 · 0 评论 -
GDAL OGR C++ API 学习之路 ORGFieldDomain篇 代码示例
OGRFieldDomain是对OGRField的一种约束和限制。OGRFieldDomain对象可以指定一个枚举类型、最小值和最大值、一个范围、或一个字符串列表等,这些限制OGRFeature的某个字段的值必须符合的规则。这些规则可以保证数据的一致性和合法性:(代码、值)元组的枚举列表:范围约束(最小值、最大值):一个 glob 表达式。原创 2023-05-01 15:27:25 · 151 阅读 · 0 评论 -
GDAL C++ API 学习之路 (5) Dataset篇 代码示例 翻译 自学
constconstint*, int,constint*,, void*,此方法与 C 函数相同构建栅格概览– 控制所应用的下采样方法– 要构建的概览数,或 0 以清理概览。– 要构建的概览抽取因子列表,如果 nOverviews == 0,则为 NULL。中构建概览的波段数。如果此值为 0,则为所有波段构建。― 乐队编号列表。– 用于调用以报告进度或 NULL 的函数。– 要传递给进度函数的应用程序数据。– (GDAL >= 3.6) NULL 终止的选项列表作为键=值对,或 NULL。原创 2023-04-15 17:21:40 · 801 阅读 · 0 评论 -
GDAL CplStringList 学习 理解 使用
CPLStringList是一个基于C++的字符串列表类,它可以用于存储任意数量的字符串,并支持添加、插入、删除、排序等常见操作。该类由GDAL提供,用于在GDAL中管理字符串列表,例如GDAL数据集的元数据、选项等。原创 2023-04-10 19:36:47 · 207 阅读 · 0 评论 -
GDAL C++ API 学习之路 (4) Dataset篇 代码示例 翻译 自学
virtualCPLErrAdviseRead告知驱动程序即将到来的读取请求– 要访问的波段区域左上角的像素偏移。从左侧开始将为零。– 要访问的频段区域左上角的线偏移量。从顶部开始,这将是零。– 要访问的波段区域的宽度(以像素为单位)。– 要以行为单位访问的波段区域的高度。– 要读取所需区域或从中写入所需区域的缓冲区图像的宽度。– 要读取所需区域或从中写入所需区域的缓冲区图像的高度。– pData 数据缓冲区中像素值的类型。像素值将根据需要自动转换为数据类型。– 正在读取或写入的频段数。原创 2023-04-09 20:10:16 · 665 阅读 · 0 评论 -
GDAL C++ API 学习之路 (3) Dataset篇 代码示例 翻译 自学
WKT是一个由标准词汇和标点符号组成的结构化文本字符串,它包含一个空间参考系统的定义,通常是由坐标系统、椭球体和基准面组成。一个可以更准确地定义控制点的坐标系,适用于需要更精确地地理定位的场景 ,一个只提供了一个字符串表示的坐标系,缺少了更多的细节信息。的是第一个元素的指针,而不是整个数组的指针,因此可以通过对指针进行递增操作来访问数组中的其他元素。我输出了空的一行,那应该就是这张USGS的tif图没有控制点,自然没有GCP的输出投影。两个函数的功能是一样的,只是参数的类型不同。原创 2023-04-05 14:12:55 · 504 阅读 · 0 评论 -
GDAL GDALDataset的空间参考方法 对比分析
如果数据集没有GCP信息,则使用获取其空间参考信息;如果数据集有GCP信息,则可以使用获取基准GCP的描述,但无法获取完整的空间参考系统的描述。原创 2023-04-04 14:41:20 · 644 阅读 · 0 评论 -
GDAL C++ API 学习之路 大纲 持续更新
虽然 OGRRangeFieldDomain 和 OGRCodedFieldDomain 都可以用于定义范围,但它们的应用场景略有不同。使用 OGRRangeFieldDomain 可以定义范围字段,例如日期范围或时间范围等;而使用 OGRCodedFieldDomain 可以定义编码字段的范围和格式,例如 SQL 编码的日期字段或 UTF-8 编码的字符串字段等。原创 2023-04-02 19:38:01 · 1143 阅读 · 1 评论 -
GDAL 地理变换参数 计算像素地理坐标
其中,前两个参数(左上角的 X 坐标和图像的水平分辨率)用于计算像素的地理坐标的 X 坐标值,后两个参数(左上角的 Y 坐标和图像的垂直分辨率)用于计算像素的地理坐标的 Y 坐标值,中间两个参数(X 方向上的旋转角度和 Y 方向上的旋转角度)通常为 0,表示图像没有旋转。原创 2023-04-01 18:50:24 · 1258 阅读 · 0 评论 -
GDAL ERROR 1: TIFFScanlineSize64:Computed scanline size is zero
请检查影像数据是否损坏或者不完整,可以尝试重新下载或者使用其他数据进行测试。请确保影像数据不为空,并且影像数据中有有效的像素值。请检查文件是否真正是一个TIFF。设置为了GDT_Unknow。原创 2023-04-01 14:03:06 · 340 阅读 · 0 评论 -
GDAL GDALOpen与Open 返回值 强制转换
这里的(GDALDataset*)是将GDALOpen函数的返回值(void*)转换为GDALDataset类型的指针。GDALOpen返回一个泛型指针(void*),因此需要使用强制类型转换将其转换为GDALDataset指针,以便可以直接使用GDALDataset的各种函数获取图像数据信息。(GDALDataset*)是必要的吗。原创 2023-04-01 14:00:04 · 812 阅读 · 2 评论 -
GDAL GetRasterXSize和GetXSize 使用分析
开头和都是用于获取栅格数据集的宽度(即列数),那什么时候使用哪一个函数,并且使用细节有哪些呢当然获得行数Y也是同理。原创 2023-04-01 13:53:36 · 906 阅读 · 0 评论 -
GDAL C++中GDALDatasetH 使用分析
首先我们先了解一下什么是GDALDatasetHGDALDriverH是GDAL Driver的句柄,是一个指向GDALDriver结构体的指针句柄(Handle)是一种引用对象的方法,相当于一个代理或代号来指代一个对象,以便于在程序之间传递引用。句柄通常是一个整数值,可以是指向实际对象的指针。句柄的使用可以隐藏指针的操作细节,防止非法操作并提高系统安全性,例如通过指针操作句柄可以避免指针越界和空指针引用等问题。同时,使用句柄可以避免对象复制和移动的问题。原创 2023-03-27 20:18:28 · 539 阅读 · 0 评论 -
GDAL C函数和C++的类方法 使用分析
在C++中,可以通过调用GDAL的C++封装类或者直接调用C函数来实现创建新的栅格数据集。而GetDriverCount则是封装在与之对应的类中,通过实例化类,调用对象的方法来实现对应功能 类似的还有GDALDataset的Create、GDALDataset的Open。GDAL的C++ API中建议使用对象的方式来操作数据。在使用GDAL/OGR时,您可以混合使用C和C++代码。这种使用对象模式的方式可以提高代码的可读性,并且更符合C++语言的面向对象设计思想。原创 2023-03-27 12:48:05 · 430 阅读 · 0 评论