前言

一直以来,作为一个GIS开发者,都想自己去实现栅格切片和矢量切片。前面的博文中,已经介绍了如何实现矢量切片,刚刚进入GIS行业的人一般都是用GeoServer进行栅格切片,速度效率很低。这里介绍一下如何使用代码高效地进行栅格切片,主要是依赖 gdal2tiles 这个python库。

安装

我的电脑环境是

  • python3.9.5
  • GDAL3.3.0
    GDAL安装建议下载whl文件,然后安装, 下载地址

执行下面的安装命令 安装gdal2tiles

pip install gdal2tiles

切片代码

  • 常用参数

参数名

示意

示例

默认值

第一参数,输入影像文件

test.tif

第二参数,切片存储区位置

test/

zoom

切片等级区间

“2-5”、“2-”、“10”

tilesize

切片大小,单位像素

256

resampling

重采样方法

average, near, bilinear, cubic, cubicspline, lanczos, antialias, mode, max, min, med, q1, q3

average

processes

并行进程数

resume

修复模式,只生成缺少的瓦片

true

fasle

srcnodata

输入影像的nodata值

  • 代码
import gdal2tiles
if __name__ == '__main__':
    gdal2tiles.generate_tiles('test.tif', 'test/', np_processes=2, zoom='7-9')

测试数据

使用的是一个内乡县的tif文件

python调用gdal2tiles实现栅格影像TMS切片_gdal

生成结果

生成结果的目录如下:

python调用gdal2tiles实现栅格影像TMS切片_python_02

点击其中生成的利用leaflet的预览文件 leaflet.html ,记得勾选切片结果,运行效果如下图所示:

python调用gdal2tiles实现栅格影像TMS切片_gdal_03