相关文章推荐
健壮的墨镜  ·  博士申请 | ...·  1 年前    · 
含蓄的火柴  ·  创建 TLS 客户端 ...·  1 年前    · 
淡定的跑步鞋  ·  right click vs ...·  1 年前    · 

一直以来,作为一个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, q3average
processes并行进程数
resume修复模式,只生成缺少的瓦片truefasle
srcnodata输入影像的nodata值
import gdal2tiles
if __name__ == '__main__':
    gdal2tiles.generate_tiles('test.tif', 'test/', np_processes=2, zoom='7-9')

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

生成结果的目录如下:
切片结果

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

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... 接续前面文章《》,本文介绍另外一种切片工具gdal2tiels。通常遥感影像数据非常大,要在webgis应用中使用遥感影像数据需要对其进行切片,提升用户体验,降低客户端性能要求。gdal2tiels.py切片工具可以实现栅格数据的切片。 切出来的瓦片y编号不对,折磨了1个星期,终于找到了解决办法,因为gdal2tiles默认采用的是tms标准,而google和mapbox采用的是另一套标准,y需要进行转化. gdal2tiles.py是一个gdal的扩展插件,运用gdal的数据接入口,将栅格图片切成小瓦片和元数据,遵循OSGeo TMS标准。让你自己的数据在openlayers和googlemap,方便你展示空间数据。 瓦片编号为... def qie(): #tif所在位置,存放位置(文件夹不在则自动创建,切片格式) gdal2tiles.generate_tiles('E:/job/hy/hy00.tif', 'E:/job/raw3/', np_processes=2,zoom='2-17') if __name__ == '__main__': qie() 错误显示需要用RB/RGBA格式的tif 下面我们使用Global Mapper再次对tif进行绘制修改 gdal2tilesgdalpython脚本gdal2tiles.py 用java重写 原来gdal2tiles.py支持gdal本身支持的栅格格式,我这边只支持GeoPDF(ArcGIS导出的),如果要支持其他格式,修改读取栅格逻辑部分。 这个版本的支持参考系统为wgs84和mercator,也可以忽略参考系统,单纯切片。通过-profile 参数来设置。 生wgs84切片: -profile geodetic E:\date\pdf\84.pdf E:\date\tiles 生成mercator切片: -profile mercator E:\date\pdf\mercator.pdf E:\date\tiles 生成不带参考系统的切片: -profile 引言:由于ctb生成数据有问题,只能尝试采用gdal2srtmtiles-demo.py来生成数据,有很多文档说明,但都不完整,配置不成功,算不上原创,收集整理大家的经验,验证可行后形成的详细配置过程,欢迎拍砖! 软件环境: win10(64位) 01-python-2.7.11.msi(32位) 02reg.py 03-PIL-1.1.7.win32-py2.7.exe 常见的矢量数据为shapefile,可以通过GDAL读取shp范围进行四叉树划分,构建某一层级瓦块。 以下为C#调用GDAL进行矢量四叉树切片算法: struct TileStructure 使用gdal生成COG需要用到gdaladdo.exe与gdal_translate.exe参考网站是wiki的COG简介与部分操作: https://trac.osgeo.org/gdal/wiki/CloudOptimizedGeoTIFF#NOTEgdaladdo.exe用来提前处理geotiff,生成概览层。这一步是生成COG的前提,因为COG内部得有概览层,而输入的geotiff不一定有。故在转换之前得有这一步。操作如下: 进入gdaladdo所在目录(C:\programs\gmt6\bin)。