参数介绍:可参考详细gdaladdo用法说明(建金字塔),这里只做一些关键部分
参数名 | 示意 |
---|
-r | (默认值为最近邻元法nearest),还可以设置成平均值法average,高斯gauss,三次内插法cubic等。 |
-ro | 以只读模式打开数据集,以生成外部概览(尤其是GeoTIFF数据集)。 |
-clean | 删除所有概览层。 |
filename | 输入文件名。 |
levels | 要建立略缩图的层号的列表。选择一个缩放水平如 n,则表示略缩图缩放程度是源图像每个维上分辨率的1/n。可以设置多个缩略图,如2 4 8 12 或 3 6 9 12 17 |
如果文件在所选缩放水平上已经存在略缩图,那么那个缩放程度将被重新计算并覆盖写入。 | |
举个例子:
按照上面操作打开cmd命令行后,输入 gdaladdo.exe -r average simple.tif 2 4 8 16 32 (代表以平均值法average,生成zoom级:2 4 8 16 32的内部概览层)
这里说明一下,无论你 input.tif 内部有没有瓦片组织,或者瓦片组织的宽度或高度是多少,都不影响后续使用 gdal_translate.exe 生成COG。因为 gdal_translate.exe 只借用了 Levels 的数值,会根据 新的TileSize 重新生成金字塔
gdal_translate.exe用来生成COG,使用方法为命令行输入:gdal_translate.exe input.tif output.tif
其中涉及到参数如下所示:
参数名 | 示意 |
---|
-co TILED=YES | 生成瓦片 |
-co COMPRESS=DEFLATE/LZW/JPEG/PACKBITS | 使用DEFLATE/LZW/JPEG/PACKBITS方法压缩(请注意,虽然 DEFLATE 比 LZW 更有效,但可能会导致与某些软件包的兼容性问题) |
-co COPY_SRC_OVERVIEWS=YES | 从原数据中拷贝概览(需要先进行gdaladdo.exe) |
-co BLOCKXSIZE=512/256 -co BLOCKYSIZE=512/256 --config GDAL_TIFF_BLOCKSIZE 512/256 | 生成512x512或者256x256的瓦片 |
使用时可将上述参数搭配组合使用。如下例子所示:
gdal_translate.exe simple.tif simple_COG_256.tif -co TILED=YES -co BLOCKXSIZE=256 -co BLOCKYSIZE=256 --config GDAL_TIFF_BLOCKSIZE 256 -co COMPRESS=DEFLATE -co COPY_SRC_OVERVIEWS=YES
gdal_translate.exe的功能十分强大,还可以生成其他格式的文件,参考链接
gdal2tiles是gdal提供一个python库。该库可以将输入tif切片换成成标准TMS瓦片(参考博客:TMS瓦片的定义)。
由于是python库,我们在python中使用。
参考博客:
1、python调用gdal2tiles实现栅格影像TMS切片
2、python gdal2tiles 包
使用方法如下:
import time
from osgeo import gdal
import gdal2tiles
if __name__ == '__main__':
start = time.process_time()
options = {'tilesize': 256, 'zoom': (9, 12)}
gdal2tiles.generate_tiles('D:/code/testdata/TMS/simple.tif', 'D:/code/testdata/TMS/TMS_Overview/', **options)
end = time.process_time()
print('Running time: %s Seconds' % (end - start))
options是其参数设置项,详见1、python调用gdal2tiles实现栅格影像TMS切片
最终结果如下:
点击其中生成的利用leaflet的预览文件 leaflet.html ,记得勾选切片结果(Layer),运行效果如下图所示:
接续前面文章《》,本文介绍另外一种切片工具gdal2tiels。通常遥感影像数据非常大,要在webgis应用中使用遥感影像数据需要对其进行切片,提升用户体验,降低客户端性能要求。gdal2tiels.py切片工具可以实现对栅格数据的切片。
这样速度更快:因为最高级的瓦片只能利用gdal从原始tif中获取,其速度受tif尺寸影响很大,且从tif上取得级别越低,单次所取范围越大,速度也越慢.举个实际的例子,从原始tif上获取某位置17级的瓦片的时间将远远大于从原始tif获取4张对应位置的18级瓦片,并将其合成的时间.高分辨率的tif影像数据量高达上百GB,如果直接对其进行切片操作会比较费时,可以先将其分割成多个tif,每个tif分别执行切片操作,最后将瓦片合并到一个文件夹供前端调用。图中的白色实际为透明色,原因是该等级下数据范围只占那么大。
1、感谢以下博客博主以及相关答主的分享:
(1)https://www.cnblogs.com/defineconst/p/5927473.html
(2)https://jingyan.baidu.com/article/647f0115b7b08d7f2148a8db.html
(3)https://blog.csdn.net/a748448660/article/details/811930...
切出来的瓦片y编号不对,折磨了1个星期,终于找到了解决办法,因为gdal2tiles默认采用的是tms标准,而google和mapbox采用的是另一套标准,y需要进行转化.
gdal2tiles.py是一个gdal的扩展插件,运用gdal的数据接入口,将栅格图片切成小瓦片和元数据,遵循OSGeo TMS标准。让你自己的数据在openlayers和googlemap,方便你展示空间数据。
瓦片编号为...
作为WebGIS开发者,绝大部分人都接触过GeoServer,自己都调用过用GeoServer发布的WMS、WTMS、TMS服务。但是GeoServer毕竟是基于java开发的,性能还是有点慢的,切片时服务能进入假死状态。很多时候,我都在想能不能自己开发一个切片服务,提升一下效率。
最近,使用Python+Flask+GDAL开发了一个切片服务,通过MapBox调用时,完美展示出来。虽然是动态切片,但是效率一点也不慢。
目录前言数据准备开发环境GDAL切片实现切片服务逻辑服务测试注意
I’m here showing how you can use GDAL2Tiles to generate map tiles of Tom Patterson’sNatural Earth II. This is a beautiful raster map that portrays the world environment in an idealised manner with li...
一直以来,作为一个GIS开发者,都想自己去实现栅格切片和矢量切片。前面的博文中,已经介绍了如何实现矢量切片,刚刚进入GIS行业的人一般都是用GeoServer进行栅格切片,速度效率很低。这里介绍一下如何使用代码高效地进行栅格切片,主要是依赖gdal2tiles这个python库。
我的电脑环境是
python3.9.5
GDAL3.3.0
执行下面的安装命令 安装gdal2tiles
pip install gdal2tiles
切片代码
GIS数据处理-栅格切片工具
常见的切片工具
MapTiler:把 GDAL2Tiles 工具做了个图形化界面,使用更方便。暂时只支持栅格图片,如TIFF/GeoTIFF, MrSID, ECW, JPEG2000, JPEG, PNG等。支持在Google Maps, Openlayers等上使用。
Google Maps Image Cutter:顾名思义,基本上来说专门为Google Maps 提供Overlay的,切图完毕后,有个直接用Google Maps的界面展示。
MapCruncher:主要