一直以来,作为一个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
,记得勾选切片结果,运行效果如下图所示:
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进行绘制修改
gdal2tiles
将gdal中python脚本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)。