1 gdal_merge.py: 合并(Merge)/镶嵌(Mosaic)工具。要求图像必须是相同坐标系统、具有相同的波段数;可以不同分辨率,可以有重叠区域(后加入图像覆盖先加入的图像)。

注意:只能使用nearest重采样方法。

gdal_merge.py [-o out_filename] [-of out_format] [-co NAME=VALUE]*
              [-ps pixelsize_x pixelsize_y] [-tap] [-separate] [-v] [-pct]
              [-ul_lr ulx uly lrx lry] [-n nodata_value] [-init "value [value...]"]
              [-ot datatype] [-createonly] input_files

参考:http://www.gdal.org/gdal_merge.html

http://osdir.com/ml/gdal-development-gis-osgeo/2006-03/msg00087.html

使用时需要python、gdal(python库)支持,设置方法:

set OSGEO4W_ROOT=D:\Program Files (x86)\QGIS Chugiak

set PATH=%OSGEO4W_ROOT%\bin;%PATH%

SET PYTHONHOME=%OSGEO4W_ROOT%\apps\Python27

2 应用

2.1 图像合并(Merge)/镶嵌(Mosaic)

目的:将多个图像合并为一幅图像。

原理:读入源图像(多个),复制(如果分辨率不一致,需要进行重采样)源图像到目标图像的相应位置。

方法:gdal_merge.py

-n 源图像中无值时赋此值。

-a_nodata 同-n(>1.9)。

-co 参数。格式:key=value。COMPRESS=JPEG:使用JPEG压缩方式。JPEG_QUALITY=75。JPEG压缩率。

-of 输出格式。默认为GTiff(GeoTiff)。

-o 输出图像。默认(out.tif)。

示例:

gdal_merge.bat -n 0 -a_nodata 0 -coCOMPRESS=JPEG -co JPEG_QUALITY=75 -of GTiff -o D:/qgis-ppt/mosaic/merge4.tifD:/qgis-ppt/mosaic/J1.tif D:/qgis-ppt/mosaic/J2.tif D:/qgis-ppt/mosaic/J3.tifD:/qgis-ppt/mosaic/J4.tif

2.2 保持输入图像波段不变,

目的:将多个图像合并为一幅图像,并保持在目标图像中保留原始图像的所有波段。

原理:读入源图像(多个),复制(如果分辨率不一致,需要进行重采样)源图像到目标图像的相应位置。

方法:gdal_merge.py

-separate 将为每个输入图像的通道保留在目标图像的单独通道中。

示例:

gdal_merge.bat -separate -of GTiff -oD:/qgis-ppt/mosaic/merge4-layerstack.tif D:/qgis-ppt/mosaic/J1.tifD:/qgis-ppt/mosaic/J2.tif D:/qgis-ppt/mosaic/J3.tif D:/qgis-ppt/mosaic/J4.tif

可以看到结果中,源图像的3个通道都被依次加入到目标图像中。

2.3 保存PCT信息

目的:将多个图像合并为一幅图像,并保存PCT颜色表。

原理:读入源图像(多个),复制(如果分辨率不一致,需要进行重采样)源图像到目标图像的相应位置,将PCT信息保存在Tiff等输出文件的文件头。

方法:gdal_merge.py

-pct 读入第一幅图像的PCT信息,并写入输出文件(假设所有输入文件使用相同的PCT)。

示例:

gdal_merge.bat -pct -of GTiff -oD:/qgis-ppt/mosaic/merge4-pct.tif D:/qgis-ppt/mosaic/J1.tifD:/qgis-ppt/mosaic/J2.tif D:/qgis-ppt/mosaic/J3.tif D:/qgis-ppt/mosaic/J4.tif

打开图像的16进制格式,可以看到,PCT文件比无PCT的文件,多了PCT文件头信息,其它部分都一样。

2.4 输出指定部分数据(将结果进行裁剪)

目的:将多个图像合并为一幅图像,输出指定范围数据。

原理:读入源图像(多个),复制(如果分辨率不一致,需要进行重采样)源图像到目标图像的相应位置,将结果数据进行范围裁剪。

方法:gdal_merge.py

-ul_lr upperleft_lowerright,左上角到右下角范围。默认使用全部范围。

示例:

gdal_merge.bat -ul_lr 114.01 39.99 114.03 39.97 -ofGTiff -o D:/qgis-ppt/mosaic/merge4-ul_lr.tif D:/qgis-ppt/mosaic/J1.tifD:/qgis-ppt/mosaic/merge4.tif

2.5 输出指定分辨率数据

目的:将多个图像合并为一幅图像,并输出指定分辨率数据。

原理:读入源图像(多个),进行重采样,将结果得到到目标图像的相应位置。

方法:gdal_merge.py

-ps xpixelsize ypixelsize,xy两个方向的输出分辨率。默认使用第一幅图像的分辨率。注意Y的方向。

示例:

gdal_merge.bat -of GTiff -ps 2.14577e-05-2.14577e-05 -o D:/qgis-ppt/mosaic/merge4-res.tif D:/qgis-ppt/mosaic/J1.tifD:/qgis-ppt/mosaic/J2.tif D:/qgis-ppt/mosaic/J3.tif D:/qgis-ppt/mosaic/J4.tif

gdal_merge.py的更多相关文章

  1. 部分GDAL工具功能简介

    主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. ...

  2. gdalwarp:变形工具

    1 gdalwarp:变形工具.包括投影.拼接.及相关的变形功能.此工具功能强大,但效率不高,使用时注意 gdalwarp [--help-general] [--formats]     [-s_s ...

  3. Gazebo機器人仿真學習探索筆記(五)環境模型

    環境模型構建可以通過向其中添加模型實現,待之後補充,比較有趣的是建築物模型, 可以編輯多層樓層和房間,加入樓梯,窗戶和牆壁等,具體可以參考附錄,等有空再補充. 起伏地形環境構建可以參考之前內容:在Ga ...

  4. 在Gazebo中使用DEM構建起伏地形環境

    所需資料下載地址: 1. https://bitbucket.org/osrf/gazebo_tutorials/raw/default/dem/files/ 数字高程模型(致謝谷歌翻譯)概述数字高程 ...

  5. MS4W安装教程

    简介 欢迎使用MS4W,这是由Gateway Geomatics开发的快速简便的安装程序,用于为Windows及其附带应用程序(如Geomoose.MapBender.Openlayers等)设置Ma ...

  6. python调用py中rar的路径问题。

    1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...

  7. Python导入其他文件中的.py文件 即模块

    import sys sys.path.append("路径") import .py文件

  8. import renumber.py in pymol

    cp renumber.py /usr/local/lib/python2.7/dist-packages/pymol import renumber or run /path/to/renumber ...

  9. python gettitle.py

    #!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...

随机推荐

  1. ado.net数据库操作(1)

    这些都是网上搜索到的,我把他放在自己的博客里,作为笔记 1.1创建数据库连接(sqlserver) <%@ Import Namespace="System.Data" %& ...

  2. 技术路线 vs 技术管理路线

    最近因为要给刚毕业的学生做一次演讲,所以就职业发展这类话题先以写博客的形式做一些思考,希望届时能给同学们带来质量更高的内容.我在<驾驭你的"职场布朗运动">一文中谈了2 ...

  3. 《第一行代码》学习笔记13-UI(2)

    1.EditText:程序和用户进行交互的重要控件,允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理. 2.Android控件使用的一般规律:给控件定义一个id->指定下控件的宽 ...

  4. Java 日期与字符串的转换

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...

  5. idea导入项目出错

    在idea导如项目后,总是会报错,每个类都会报错.解决的办法是: 1. 2.添加本地jdk 3.添加项目中的lib包

  6. VC防止程序被多次运行 互斥体方法

    BOOL CXXXApp::InitInstance() //函数内添加代码 HANDLE hMutex=CreateMutex(NULL,TRUE,"test"); // 用于检 ...

  7. C#之获取本地IP地址

    最近协助一个项目解决了一个获取IP地址的问题,手机客户端与WebService进行通讯,然后WebService通过TCP通讯把指令传递到另一台PC机上.在测试的过程中,总是会出现WebService ...

  8. 最短路径floy算法———模板

    #include<cstdio>int n,i[1000][1000];int main(){ scanf("%d",&n); for (int a=1;a&l ...

  9. 表单同时有中文字段和文件上传,加上enctype="multipart/form-data"后导致的中文乱码问题

    因为一个表单需要同时上传字段和文件,所以加上enctype="multipart/form-data",但是上传后的中文字段变成了乱码. 把enctype="multip ...

  10. CSU 1119 Collecting Coins

    bfs+dfs 很复杂的搜索题. 因为数据很小,rock最多只有5个,coin最多只有10个,移动rock最多4^5=1024种状态: 思路: 每次先把当前状态能拿到的coin拿走,并将地图当前位置设 ...