提示:这只是我的个人的学习心得

文章目录

  • 前言——GDAL的安装
  • 一、gdaladdo.exe的介绍与使用
  • 二、gdal_translate.exe的介绍与使用
  • 三、gdal2tiles的介绍与使用

前言——GDAL的安装

关于gdal的下载,建议搜索并下载GMT6这个软件包,在bin文件下有gdal所有程序,且较新。

使用gdal生成COG需要用到gdaladdo.exe与gdal_translate.exe

参考网站是wiki的COG简介与部分操作:
https://trac.osgeo.org/gdal/wiki/CloudOptimizedGeoTIFF#NOTE


一、gdaladdo.exe的介绍与使用

gdaladdo.exe 作用是在文件内部生成影像金字塔(概览层),来提高文件浏览和打开速度。我们用它来提前处理geotiff,生成概览层。这一步是生成COG的前提,因为COG内部得有概览层,而输入的geotiff不一定有。故在转换之前得有这一步。

操作如下:
进入gdaladdo所在目录(C:\programs\gmt6\bin)。使用cmd命令调用gdaladdo.exe。
公式如下:

gdaladdo [-r {nearest,average,gauss,cubic,cubicspline,lanczos,average_mp,average_magphase,mode}]
[-ro] [-clean] filename levels

参数介绍:可参考详细gdaladdo用法说明(建金字塔),这里只做一些关键部分

参数名 示意
-r (默认值为最近邻元法nearest),还可以设置成平均值法average,高斯gauss,三次内插法cubic等。
-ro 以只读模式打开数据集,以生成外部概览(尤其是GeoTIFF数据集)。
-clean 删除所有概览层。
filename 输入文件名。
levels 要建立略缩图的层号的列表。选择一个缩放水平如 n,则表示略缩图缩放程度是源图像每个维上分辨率的1/n。可以设置多个缩略图,如2 4 8 123 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的介绍与使用

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的介绍与使用

gdal2tiles是gdal提供一个python库。该库可以将输入tif切片换成成标准TMS瓦片(参考博客:TMS瓦片的定义)。

由于是python库,我们在python中使用。
参考博客:
1、python调用gdal2tiles实现栅格影像TMS切片
2、python gdal2tiles 包
使用方法如下:

import time
from osgeo import gdal
import gdal2tilesif __name__ == '__main__':start = time.process_time()options = {'tilesize': 256, 'zoom': (9, 12)}  # 'np_processes': 2gdal2tiles.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),运行效果如下图所示:

【学习记录】如何使用gdal生成COG+标准TMS切片相关推荐

  1. 使用python GDAL生成COG(Cloud Optimized GeoTIFF)

    参考资料: https://trac.osgeo.org/gdal/wiki/CloudOptimizedGeoTIFF#HowtogenerateitwithGDAL https://gdal.or ...

  2. OpenFoam学习记录2-网格的生成

    1 网格的约束 1.1 点 1)点的列表中不能有重复的点,不能包含不位于这个面上的点: 2)点的命名顺序遵循右手定则,大拇指方向为法向量的方向,四只手指的顺序为点的编号顺序: 1.2 面 1)面的中心 ...

  3. Python学习记录——英文名修改成标准格式

    Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...

  4. Matlab学习记录-矩阵的生成

    Matlab学习记录-矩阵的生成 matlab中生成矩阵有两种方式: 1.中括号加分号. 中括号表示矩阵,分号表示分行:每一行之间的元素可以用逗号分开也可以用空格分开: 例如 a=[1 2 3; 4 ...

  5. GAN学习记录(五)——循环生成对抗网络CycleGan

    循环生成对抗网络CycleGan实现风格迁移 dataset https://people.eecs.berkeley.edu/~taesung_park/CycleGAN/datasets/vang ...

  6. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  7. Python学习记录day3

    2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...

  8. gradle exclude_Gradle学习记录020 java工程的测试 part1

    详细学习如何用Gradle测试java工程.第二部分.该学习记录基于Gradle官方网站资料.本篇参考链接如下: https://docs.gradle.org/current/userguide/j ...

  9. latex 三线表_LaTeX学习记录(3):使用图表

    学习记录(3):使用图表 每次跟朋友安利 的时候我都会讲这么一个故事: ❝ 当时设计天琴一号加速度计的控制器参数,出于数字控制参数切换的便利性,疯狂设计了十几套参数.然而写报告的时候傻了:老板要求每套 ...

最新文章

  1. 做转录组测序前需要知道的那些事
  2. iOS 富文本类库RTLabel
  3. 加密货币与智能合约的隐私 (一): 区块链上的隐私
  4. CSS 小结笔记之清除浮动
  5. canvas 判断哪个元素被点击_监听 Canvas 内部元素点击事件的三种方法
  6. Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
  7. erp系统是什么转型
  8. python编程入门 pdf-PYTHON游戏编程入门 PDF 下载
  9. vue从创建到完整的饿了么(7)点击事件与页面跳转
  10. 搭建eova开发环境
  11. 3.SPSS Modeler数据基本分析笔记
  12. 逆向工程是什么意思(逆向工程是抄袭技术吗)
  13. 智能驾驶汽车之自动泊车发展阶段
  14. vue2、vue3中自定义v-model的使用和区别
  15. cad注释比例和打印比例不一样_CAD注释性比例该如何设置?看完你就懂了
  16. 中国最年轻的亿万富翁_我和一个亿万富翁一起吃饭。 他给我的建议是无价的。
  17. Revit二开,通过拾取获取面对象
  18. win 10 使用本地代理自动配置pac
  19. 在阿里待了 365 天,毕业啦
  20. 让集成的Intel82845g支持1440x900

热门文章

  1. android开发按钮形状改变,改变button按钮的形状
  2. 安装vs2010后打开提示需要升级安装Service Pack 1
  3. 关于vue中mp3音频的下载
  4. 浅谈JAVA中的死锁以及解决方案
  5. 十月工作总结:勿忘初心,继续前行
  6. 抖音多年以后用计算机,那是一个阳光明媚的早上,我做出了在多年以后都会后悔的决定。我要去拔智齿。我去了医院 - 糗事百科...
  7. 程序员的机器学习入门笔记(九):人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
  8. 变频器LED显示灯闪烁_长海力士乐变频器维修
  9. Java实现自己的数据库(MeSQL)
  10. 基于javaweb+mysql的兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)