前言
一直以来,作为一个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文件
生成结果
生成结果的目录如下:
点击其中生成的利用leaflet的预览文件leaflet.html
,记得勾选切片结果,运行效果如下图所示: