GDAL教程
文章平均质量分 64
主要介绍Python包GDAL入门教程、学习笔记等内容
地信小学生
欢迎大家关注我的公众号:地信小学生,分享GIS开发入门、GIS制图教程、Python(GDAL与Arcpy)等内容
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python包 GDAL 基础教程
我在原始内容基础上,结合实际操作后做了一些改动,所以笔记删减或修改了一部分内容。如下图所示,教程许可表明该网站教程可以用于任何非商业盈利活动。教程代码参考:https://gis.stackexchange.com/questions/255537/merging-hillshade-dem-data-into-color-relief-single-geotiff-with-qgis-and-gdal。原创 2025-01-17 13:53:56 · 1269 阅读 · 0 评论 -
GDAL/OGR:使用虚拟图层 .vrt
与GDAL类似,OGR也支持虚拟文件格式(VRT)。OGR虚拟驱动程序功能更强大,可用于实时数据转换。使用基于XML的格式文件,可以将多个数据层合并成一个虚拟层.vrt。VRT文件还用于配置将表格数据读取为空间数据格式。翻译 2025-01-15 12:56:43 · 164 阅读 · 0 评论 -
GDAL:视域分析
在下面的案例中,我们可以利用伦敦1m DSM数据集,从某个位置进行可见性分析。我们采用为任务1创建的合并DSM,并生成一个视域。数据集的CRS是EPSG:27700,因此我们需要在该CRS中获取观察点位置坐标。命令可以使用高程栅格进行视域分析,这对于包括城市规划和电信在内的许多应用来说是非常有用的分析。这个命令的输出是X和Y坐标533063.782746057 和181324.168273046和0,我们将它们四舍五入,并在。最终结果图中,可见区域被赋值为255,不可见区域赋值为0。翻译 2025-01-15 12:55:44 · 150 阅读 · 0 评论 -
GDAL:使用二进制栅格掩膜、栅格转矢量
该命令指出,只要B栅格的值为1,输出就应该是来自A的像素值,否则应该是-32768。假设我们有一个包含像素值0和1的binary.tif。上面这样的布尔表达式的结果将是一个像素值为1和0的光栅。当我们将 NoData 设置为0时,条件匹配的值为1的像素只有1个,再可以使用 gdal _ polygonize.py 将其转换为矢量shp文件。gdal_polygonize.py支持栅格转矢量,假设我们从之前案例中,合并切片部分的合并栅格中提取最高高程的坐标。来创建一个栅格,使用的条件是只匹配具有该值的像素。翻译 2025-01-15 12:54:57 · 81 阅读 · 0 评论 -
GDAL:使用二进制栅格掩膜、栅格转矢量
该命令指出,只要B栅格的值为1,输出就应该是来自A的像素值,否则应该是-32768。假设我们有一个包含像素值0和1的binary.tif。上面这样的布尔表达式的结果将是一个像素值为1和0的光栅。当我们将 NoData 设置为0时,条件匹配的值为1的像素只有1个,再可以使用 gdal _ polygonize.py 将其转换为矢量shp文件。gdal_polygonize.py支持栅格转矢量,假设我们从之前案例中,合并切片部分的合并栅格中提取最高高程的坐标。来创建一个栅格,使用的条件是只匹配具有该值的像素。翻译 2025-01-15 12:54:03 · 128 阅读 · 0 评论 -
GDAL:栅格值提取
的工具,它可以在一对或多对坐标上从栅格中进行点查找。结合GDAL通过虚拟文件系统从云数据集传输数据的功能,可以高效地从查找像素值,而无需将整个栅格加载到内存中。例如,我们在Google云存储桶上有一个大的(8GB)单波段云优化GeoTiff (COG)文件。这个文件是2021年VIIRS夜间灯光的全球镶嵌图,像素值是辐射值。此外,还可以使用坐标点文件来查找多个点的值。假设我们有一个文本文件,名为 ordinates.txt,具有以下2个坐标。选项,因此输出是结构化的,可以用于后期处理。翻译 2025-01-15 12:52:35 · 58 阅读 · 0 评论 -
GDAL:栅格值提取
的工具,它可以在一对或多对坐标上从栅格中进行点查找。结合GDAL通过虚拟文件系统从云数据集传输数据的功能,可以高效地从查找像素值,而无需将整个栅格加载到内存中。例如,我们在Google云存储桶上有一个大的(8GB)单波段云优化GeoTiff (COG)文件。这个文件是2021年VIIRS夜间灯光的全球镶嵌图,像素值是辐射值。此外,还可以使用坐标点文件来查找多个点的值。假设我们有一个文本文件,名为 ordinates.txt,具有以下2个坐标。选项,因此输出是结构化的,可以用于后期处理。翻译 2025-01-13 09:52:37 · 96 阅读 · 0 评论 -
GDAL:镶嵌不同分辨率数据、删除 JPEG 压缩伪影
可以指定一个值来删除可能不完全为0的边缘像素。它向内扫描图像,直到找到这些接近黑色的像素值并屏蔽它们。假设我们有一个没有alpha波段的JPEG压缩图像的马赛克,我们想设置一个掩码。如果我们简单地将0设置为节点数据值,最终会出现边缘伪影,以及马赛克中的许多暗像素(建筑阴影/水等)被掩盖。当想要镶嵌不同的图块或屏蔽黑色像素时,这会导致问题。还是使用处理航空图像部分的示例,我们可以创建一个虚拟光栅并指定。如果有一些想要合并的图块,但有些图块的分辨率不同,可以使用。来设置边缘像素,其中值0-5被视为无数据。翻译 2025-01-12 13:36:49 · 170 阅读 · 0 评论 -
GDAL:提取栅格投影信息 .wld
假设我们有一个名为tile_1_1.tif,以及来自训练数据集中无投影的tile_1_1_annotated.png。我们希望使用GeoTIFF文件的投影和范围对这个PNG文件进行地理参考。tile_1_1.tfw和tile_1_1.prj包含了我们对PNG图块进行地理参考所需的所有信息,我们将PNG转换为GeoTIFF文件,并指定原始图块的投影。命令提取投影信息,此命令以各种支持的格式打印投影信息,将输出保存到扩展名为.prj的文件中。但很多时候,只有原始的GeoTIFF文件和生成的PNG图块。翻译 2025-01-11 09:23:23 · 102 阅读 · 0 评论 -
GDAL:拆分影像数据集为影像切片
文件,该文件将存储每个图块的地理参考信息。只要图块与该文件存在于同一目录中,GDAL就会自动将地理参考信息应用于JPEG切片。这样就可以使用JPG切片进行推理,并将。如果你想训练一个深度学习模型,通常需要JPEG或PNG图块,可以将这些文件批量转换为JPEG格式。文件与输出一起使用,以自动对结果进行地理参考和拼接。像素的切片,重叠为重叠到10个像素。首先,我们创建一个目录tiles,在其中写入输出图块;在处理大的镶嵌的数据集时,最好将其切割为小的切片,有助于开展并行处理等,GDAL附带了一个脚本。翻译 2025-01-08 13:57:40 · 317 阅读 · 0 评论 -
GDAL:KML文件处理
还可能希望从KML文件中提取数据,或将其转换为GIS中使用的其他格式。GDAL KML驱动程序可以读写KML文件,并提供许多选项使转换兼容。这是因为KML格式要求图层中有一个名为Name的字段,用作每个地标的标注。GDAL CSV驱动程序能够支持提取要素的几何,并将图层从转换为CSV文件,其中包含从几何图形中提取的X、Y和Z列。该图层有一个名为的字段,我们可以将其用作名称字段。驱动程序的情况下编译的,则最好使用它而不是 KML 驱动程序。要从这个 KML 文件中提取图层,我们可以使用。选择输入字段的子集。翻译 2025-01-07 23:52:38 · 319 阅读 · 0 评论 -
GDAL:创建彩色山体阴影效果
伽马校正的公式是输出像素值 = 输入像素值^(1/Gamma),其中Gamma是伽马值。伽马值小于1会使图像变暗,增加对比度;伽马值大于1会使图像变亮,降低对比度。和叠加计算,以组合2个光栅。这里的"Gamma"变换通常是指图像的伽马校正,这是一种非线性操作,用于调整图像的亮度和对比度。翻译 2025-01-06 13:53:52 · 94 阅读 · 0 评论 -
GDAL:使用gdaldem color-relief命令渲染影像色彩
命令将调色板应用于任何一个图像,以创建渲染图像。我们创建了一个文件ntl_colormap.txt,其中包含映射到RGB颜色的像素强度值。最后将彩色GeoTIFF转换为PNG,需要指定空值255以设置NoData值的透明度。键用于为NoData值指定颜色。翻译 2025-01-05 16:54:14 · 128 阅读 · 0 评论 -
GDAL:创建等值线
此外,还可以创建多边形轮廓。多边形等值线在某些应用中很有用,例如水文学,例如:想得出等雨量线之间区域的平均降雨深度。可以指定-p选项来创建多边形轮廓,可以提供选项。使用默认承诺书运行命令会生成矢量图层等值线,但它们没有任何属性。如果要标记等高线,并希望使用 elevation 值作为属性。来指定属性名称,这些名称将存储每个多边形的最小和最大值。以下命令为输入的merged.tif DEM创建等高线.shp文件。这一部分使用的merged.tif也位于数据包的srtm文件夹。指定等值线之间的间隔。翻译 2025-01-04 10:16:05 · 146 阅读 · 0 评论 -
GDAL:验证COG
如果要检查给定的GeoTIFF文件是否是有效的云优化GeoTIFF(COG),有几种方法。插件增加了对COG创建和验证的支持。的命令行实用程序,用于在命令行上执行各种栅格操作。此外,也适用于云托管的文件。Rasterio提供了一个名为。(2)使用Python。翻译 2025-01-03 14:10:54 · 151 阅读 · 0 评论 -
GDAL:提取与统计图像元数据
是一个强大的命令行工具,用于处理JSON格式的数据,可以查询、过滤、修改和处理 JSON 数据,使得在命令行环境下处理 JSON 变得非常方便。参数运行gdalinfo命令,该参数将信息作为json字符串返回,允许我们以编程方式访问信息并对其进行解析。我们需要一种方法来解析JSON并提取我们感兴趣的字段。这里我们使用流行的JSON处理工具。,然后在C盘等新建一个文件夹放置jq.exe,并将该路径添加进系统环境变量中。然后,我们可以使用下面的jq查询提取所需的数据。选项,我们可以获得JSON格式的命令输出。翻译 2025-01-02 12:26:25 · 136 阅读 · 0 评论 -
GDAL:检查支持的格式和功能
QGIS分发的GDAL版本也支持非开放格式,如MrSID,可以使用QGIS附带的GDAL发行版中的命令。下面是一个如何设置正确的路径和环境变量以使用它的示例,这里具体的路径要结合安装的位置进行修改,我的QGIS安装路径为:C:\Program Files\QGIS 3.34.11。此外,这里的qgis-ltr表示QGIS的长期运行版本,如果使用的不是长期运行版本就要修改一下。此外,QGIS提供了GDAL的可视化界面,位于工具箱中,我们也可以直接使用GDAL的可视化界面操作,而不是使用GDAL命令。翻译 2025-01-01 08:09:45 · 155 阅读 · 0 评论 -
GDAL:自动调度任务、内存配置、多线程处理
Cron是Linux系统中的一个守护进程,它根据crontab文件中设置的时间表来执行任务。Crontab文件包含了一系列的定时任务,每个任务都有一个特定的时间表。假设已经创建了一个脚本来执行一些GDAL/OGR命令,并将其放置在/usr/local/bin/batch.py中,这里有一个示例crontab条目,每天早上6点执行它。:此选项允许GDAL命令使用更大的RAM(512 MB)读取/写入数据,从而有助于加快大多数GDAL命令的速度。GDAL有几个配置选项,可以调整以帮助更快的处理。翻译 2024-12-31 13:21:05 · 287 阅读 · 0 评论 -
GDAL 批量运行命令
除了在Powershell中单次运行,还可以使用Python在循环中运行GDAL/OGR命令。例如,如果我们想将目录中所有文件的图像格式从JPEG2000转换为GeoTiff,我们想对每个图像运行如下命令。但是,如果想在数百个输入文件上运行命令,那将需要大量的手动操作。如果你的系统有多核CPU,在多个线程上并行运行这样的命令可以比串行运行命令提高性能。在Anaconda Prompt中,从gdal tools目录运行以下命令,对naip/目录中包含的所有图块启动批处理。翻译 2024-12-30 18:43:13 · 93 阅读 · 0 评论 -
GDAL/OGR:地理处理和空间查询
提供的空间 SQL 函数,这样就可以使用OGR进行空间查询,使用SQLite方言时的一个主要区别是必须显式指定几何列。下面的例子中,从一个地理数据包(GeoPackage)文件中选择地铁站点,并为每个站点创建一个500米半径的缓冲区,然后将结果保存到同一个GeoPackage文件中的新图层。OGR工具不仅支持SQL查询,还支持SQLite 方言(在软件开发中,SQL 方言(dialect)指的是不同数据库系统中,SQL 语言的特定变体),使用 SQLite 方言的主要优点是可以使用。翻译 2024-12-29 19:09:42 · 166 阅读 · 0 评论 -
GDRL / OGR:合并矢量文件
OGR提供的另外经常使用的程序是agrmerge.py,可以将多个矢量图层进行合并。案例:在earthquakes文件夹中有多个GEOJSON文件,将文件进行合并。,可以向输出层添加一个新字段,其中包含贡献该特定记录的输入文件的名称。如下所示,可以将原文件名称作为时间,添加到合并后的文件属性表中。结果是一个包含12层的地理包,每个源文件对应一层。对于大多数应用程序,最好将源文件组合到一个层中。选项指定合并层的名称。由于GeoPackage数据集已经存在,我们需要指定。来表示我们想要一个单层作为输出。翻译 2024-12-26 23:27:27 · 180 阅读 · 0 评论 -
GDAL:矢量数据提取-转换-加载(ETL)过程
不仅可以再输入数据源执行SQL语句,进行筛选、转换、汇总等,还可以进行属性类型的转换,例如从字段转为整数。我们可以使用ogrinfo命令检查数据,使用-al参数打印所有行,再加上-so则仅仅打印CSV文件的信息汇总。之前的命令识别了CSV文件的特征总数为15493个等。OGR支持SQL查询,选择要素子集可以使用-where完成,通过-where指定一个属性值来筛选结果,例如筛选中国的城市。,-f命令指定输出的文件格式,但是新版本的GDAL可以直接根据输出文件的后缀名推断文件类型,所以可以省略。翻译 2024-12-25 23:18:00 · 163 阅读 · 0 评论 -
GDAL:地理配准教程
以数据包名为1870_southern_india.jpg的地图为例,这个地图具有经纬网,我们可以在QGIS等软件打开,找到处于经纬网交叉点处的像素的行列号,手动统计经纬度信息。假设地图的CRS是基于Everest 1830基准的地理CRS,我们选择EPSG:4042作为目标CRS。如果已知创建这些图像时使用的边界框坐标和CRS,可以使用。在下载的数据包中包含图像文件earth_at_night.jpg,这是一张在夜间拍摄的地球的精美渲染图像。),我们可以使用-a_srs指定坐标系,使用。翻译 2024-12-25 13:35:43 · 243 阅读 · 0 评论 -
GDAL:处理WMS数据
如果要将WMS图层用作现场数据采集的参考地图,或在带宽较低的系统上使用该图层,则可以从WMS图层创建raster。QGIS 将这些 XML 文件识别为有效的图层,使用户可以轻松地将它们拖放到他们的查看器来访问 WMS 服务,而无需任何配置。原作者提供的URL因为网站迁移已经失效,并且NASA要截至26年迁移完成,所以我随意更换了另一个WMS URL,是全球陆地冰数据。这里要主义的是,有的WMS图层需要登陆账号密码才能够访问,下载也有限制,所以要根据具体情况再调整。来指定离线栅格所需的输出分辨率。翻译 2024-12-24 10:09:51 · 161 阅读 · 0 评论 -
GDAL:处理Landsat8影像数据
参数应用直方图拉伸增加对比度,由于大多数像素具有介于 0 和 0.3 之间的值,我们可以选择0是最小值、0.3是最大值,并应用对比度拉伸以使其从 0 变为 255,生成的图像将是一个 8 位彩色图像,其中输入像素值将线性缩放为目标值。合并后的图像和栅格直方图如下所示,可以看到影像整体较灰暗,对比度较低,这是因为QGIS默认使用最大最小值进行对比度拉伸,效果并不好。参数进行非线性拉伸,例如指数拉伸,选择介于 0 和 1 之间的指数值将增强低强度值,产生更亮的图像。首先进行波段的RGB合成,这里需要使用。翻译 2024-12-23 14:29:57 · 340 阅读 · 0 评论 -
GDAL:处理无人机影像数据
创建的tif文件加载到QGIS需要较长的事件,并且移动等也很慢,这是因为其分辨率很高,常用的办法时创建影像金字塔等,加快渲染过程。此外,下面的代码使用了决定路径-write_absolute_path,这对于确保索引文件能够正确引用原始数据文件非常重要,特别是在索引文件和数据文件不在同一个目录下时。说简单点就是缺值的地方是黑的,有值的地方就是实际的颜色。有时候处理大量影像时,需要创建shp索引文件,空间索引可以加快空间查询的速度,使得在大量数据中快速定位特定区域的数据变得更加高效。在这里,我们可以使用。翻译 2024-12-20 11:16:38 · 143 阅读 · 0 评论 -
GDAL:DEM数据分析
用来处理DEM数据,主要是包括山体阴影(Hillshade)、坡度(slope)、坡向(aspect)、色彩浮雕(Color-relief)、地形耐用指数Terrain Ruggedness Index (TRI)、地形位指数Topographic Position Index (TPI)、地表粗糙度Roughness。但是需要注意,DEM的经纬度和高程应该都是一样的单位,如果DEM的坐标系是地理坐标,那么就需要使用。DEM高程还可以使用不同的颜色进行渲染,直接将渲染信息固定到tif中,翻译 2024-12-19 11:25:50 · 273 阅读 · 0 评论 -
GDAL:栅格数据基本处理
此外,GDAL还可以处理COG数据,COG数据是Cloud-Optimized GeoTIFF ,云优化的GeoTIFF与常规 GeoTIFF图像类似,但不是下载整个图像在本地,而是可以访问图像的某些部分,这些TIF托管传输到 QGIS 等客户端的云服务器上。栅格数据基本处理包括查看栅格信息、创建虚拟栅格、栅格数据压缩、Nodata处理、云优化等。选项将数据压缩为块,而不是逐行压缩,压缩效果更好,使用如下代码,将数据压缩到40MB左右。选项,数据压缩会更好,并且海拔数据存在空间的相关性。翻译 2024-12-19 11:19:38 · 197 阅读 · 0 评论 -
GDAL常用命令介绍与CMD部分常用指令
这些命令看似简单,但其背后牵扯了大量的参数选项,但实际中往往仅仅使用常用的几个参数、选项。此外,PS和CMD还有一些其他的区别,例如PowerShell使用反引号换行,CMD使用。并且我们实际使用的PowerShell,与CMD有一定区别,例如PowerShell运行cmd代码添加。在实际最经常使用的是cd命令,但是这个命令只支持从一个驱动器内更改路径,例如C盘切换到E盘,就需要使用。前缀,但是加上后往往也不会影响代码的正常运行的,关于代码中的。在实际使用中,有的地方使用的。前缀,有的地方添加的。原创 2024-12-16 11:21:38 · 1046 阅读 · 0 评论 -
Win系统如何通过Conda安装GDAL,GDAL相关教程推荐
,这个驱动程序是一个基于OpenJPEG库的JPEG2000读写器的实现,它可以读取JPEG2000压缩的NITF文件。这个教程相对较老,原作者没有进行很多更新,所以我们在实际运行时出现的结果或者使用的代码可能会与原英文教程不同。等错误,实在不行时,再使用whl文件进行安装,whl文件是编译好的python程序,不需要本地电脑C程序进行编译。同时也推荐安装QGIS进行GDAL分析结果的查看等,在之前我们也分享了QGIS的安装教程与入门教程等,并且QGIS也提供了GDAL的可视化窗口。原创 2024-12-16 11:13:30 · 1115 阅读 · 0 评论 -
血的教训,Miniconda不要随意调用别的软件创建的conda环境,Miniconda错误调用ArcGIS Pro conda创建的conda.exe、conda.bat、python等,解决不掉
我在之前的学习中需要使用GDAL,为了省事我直接通过Miniconda调用了ArcGIS Pro克隆的Python环境,使用了ArcGIS Pro自带的GDAL。在后来跑机器学习,又下载了Anaconda,但是后来用完就卸载了(PS:Miniconda和Anaconda两个软件的下载链接都在一个网页,只是Miniconda更加轻量化,但是少了很多必须的依赖包)。原创 2024-11-24 17:17:40 · 988 阅读 · 0 评论 -
安装GDAL包提示:Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“:
下载后使用whl文件进行安装,先cd到shl文件所在的路径,再使用代码:pip install GDAL-3.4.3-cp39-cp39-win_amd64.whl。最后尝试使用whl文件安装,首先要找到whl文件,现在很难找,最后找到了一个链接,是python3.8-3.11版本的下载链接,欢迎大家关注我的公众号。因此尝试安装工具:Microsoft C++ Build Tools。但是安装C++的要好几G,所以再尝试使用下载的压缩文件安装。先cd到解压后文件所在位置,再使用代码。原创 2024-07-05 08:50:06 · 705 阅读 · 0 评论
分享