14.4. 栅格文件的基本处理¶
14.4.1. 修改投影系统¶
图像投影系统的修改(也称为“重投影”)可以使用 gdalwarp
命令完成。这种处理可能会产生严重的后果,
因为它涉及图像几何形状的修改,从而重新采样。根据选择的选项,图像大小、空间分辨率和像素值可能会受到影响。
QGIS处理步骤
1.重投影
目标是转换图像以适应Lambert 93(RGF93)投影系统。
在菜单栏中:
单击 Raster > Projections > Warp (Reproject)…
在扭曲窗口中:
设置如下:
输入文件: LC81990262017019LGN00_B2
输出文件: LC81990262017019LGN00_B2_L93_TEST.TIF
来源SRS: EPSG:32631
目标SRS: EPSG:2154
单击“OK”

2.结果分析
除了投影系统的变化外,图像的元数据(输入和输出)还有其他差异。经过转换,空间分辨率从30 m增加到30.00801077323341 m。 默认情况下,GDAL 计算的分辨率尽可能接近原始图像。这很有用,尤其是当从地理坐标系切换到投影坐标系时。 但是,它也可能在后续处理中造成问题。
3.重投影设置
这里的目标是在此时重新投影图像,以确定输入图像的空间分辨率(30 m)。
在菜单栏中:
在“Warp”窗口中单击 Raster > Projections > Warp (Reproject)… :
设置如下:
Input file: LC81990262017019LGN00_B2
Output file: LC81990262017019LGN00_B2_L93.TIF
Source SRS: EPSG:32631
Target SRS: EPSG:2154
单击编辑按钮|image6|,
在命令编辑字段中插入以下选项:-tr 30 30
单击“确定”
4.Landsat光谱波段处理
为其他Landsat光谱波段再现步骤3
按以下方式命名输出:
输入图像名称输出图像名称
输入图像名称
LC81990262017019LGN00_B3.TIF
LC81990262017019LGN00_B4.TIF
LC81990262017019LGN00_B5.TIF
输出图像名称
LC81990262017019LGN00_B3_L93.TIF
LC81990262017019LGN00_B4_L93.TIF
LC81990262017019LGN00_B5_L93.TIF
5.相应的GDAL 命令
上面使用的工具相当于在终端中启动以下命令:
>gdalwarp -s_srs EPSG:32631 -t_srs EPSG:2154 -of GTiff -tr 30
30LC81990262017019LGN00_B2.TIF
LC81990262017019LGN00_B2_L93.TIF
其中:
[-s_srs]:描述源空间引用,
[-t_srs]:描述目标空间参考,
[-of]:设置输出格式,
[-tr]:设置输出文件的分辨率(以s_srs为测量单位)。
一些有用的选项:
[-te xmin-ymin-xmax-ymax]:指定输出图像的空间范围,
[-ts width height]:设置输出文件大小(以像素为单位),
[-r]:设置要使用的重采样方法,
注意:修改像素值的方法不是近(最近邻)方法。
[-dstnodata]:不设置数据值,
[-cutline]:使用矢量数据剪切输出图像。
有关更多信息,请参阅以下网页: http://www.gdal.org/gdalwarp.html 。
表2.6.投影变换
14.4.2. 剪切图像¶
目标是根据空间范围或载体数据来剪切图像。根据选择的选项,GDalTools建议的工具使用不同的GDAL 命令。
QGIS处理步骤
1.打开图像
在QGIS中:
打开第2.2.4.1节中创建的图像LC81990262017019LGN00_B2_L93.TIF。
打开矢量文件 DEPARTEMENT.shp ,其中存储部门边界(多边形)
2.根据空间范围切割图像
目标是根据空间范围切割图像。Thisextend是由两个坐标定义的矩形:西北角(左上)和东南角(右下)。 如果此窗口与输入像素不对齐,则在最近邻居重新采样的情况下,输出图像将轻微移动(默认情况下)。
在菜单栏中:
单击 Raster > Extraction > Clipper…
在Clipper窗口中:
设置如下:
输入文件:LC81990262017019LGN00_B2_L93
输出文件: LC81990262017019LGN00_B2_L93_CLIP.TIF
剪裁模式:范围
- 范围坐标:
1: x = 630000 ; y = 6872000 (左上)
2: x = 647000 ; y = 6853000 (右下)
注意:也可以在QGIS地图画布中绘制范围。
单击“OK”
3.结果分析
与重新投影一样,Clipper命令可以更改输出空间分辨率。由于指定的空间延伸坐标并非全是30的倍数, 因此X上的输出分辨率为29.9824 m,Y上的输出分辨率为29.9685 m。-TR选项解决了这个问题。
4.相应的GDAL 命令
上面使用的工具相当于在终端中启动以下命令:
> gdal_translate -projwin 630000.0 6872000.0 647000.0 6853000.0
-of GTiff LC81990262017019LGN00_B2_L93.TIF
LC81990262017019LGN00_B2_L93_CLIP.TIF
其中:
[-projwin*ulx-uly-lrx-lry*]:指定范围坐标的左上角和右下角,
[-of]:设置输出格式。
一些有用的选项:
[-tr xres yres]:设置输出文件的分辨率,
[-r]:设置要使用的重新采样方法。
有关更多信息,请参阅以下网页: http://www.gdal.org/gdal_translate.html 。
5.根据载体文件剪切图像
目标是根据第75部(巴黎)的行政边界切割形象。与之前的切割不同,该工具使用gdalwarp命令。
在QGIS中:
选择巴黎部门对应的部门图层的多边形:
"NOM_DEPT" = 'PARIS' or
"CODE_DEPT" = '75'
将所选内容另存为 DEPARTMENT_PARIS.shp 。

在菜单栏中:
单击 Raster > Extraction > Clipper…
在Clipper窗口中:
设置如下:
输入文件: LC81990262017019LGN00_B2_L93
输出文件: LC81990262017019LGN00_B2_L93_CLIP_PARIS.TIF
剪裁模式:遮罩层
遮罩层: DEPARTMENT_PARIS
选中选项将目标数据集的范围裁剪到剪切线的范围
选中“保持输入光栅的分辨率”选项
单击“OK”
6.结果分析
输出图像根据矢量层范围进行裁剪。多边形外部的所有像素都被指定为0值。空间分辨率保持在30 m。
7.相应的GDAL 命令
上面使用的工具“Clipper”相当于在终端中启动以下命令:
> gdalwarp -cutline DEPARTMENT_PARIS.shp -crop_to_cutline -tr
30.0 30.0 -of GTiff LC81990262017019LGN00_B2_L93.TIF
LC81990262017019LGN00_B2_L93_CLIP_PARIS.TIF
其中:
[-tr]:设置输出文件的分辨率,
[-of]:设置输出格式,
[cutline]:允许使用矢量文件中的混合剪切线,
[-crop_to_cutline]:将目标数据集的范围裁剪到剪切线的范围
有关更多信息,请参阅以下网页: http://www.gdal.org/gdalwarp.html 。
表2.7.图像裁剪
14.4.3. 栅格数据合并¶
栅格数据合并对应于 gdal_merge.pycommander
的执行。术语合并是指具有不同目标的两种应用程序:一方面,
将条带堆叠在同一文件中(层堆叠),另一方面,创建相邻图像的拼接。
光谱波段堆叠¶
QGIS处理步骤
1.打开图像
在QGIS中:
打开以下图像:
LC81990262017019LGN00_B2_L93.TIF
LC81990262017019LGN00_B3_L93.TIF
LC81990262017019LGN00_B4_L93.TIF
LC81990262017019LGN00_B5_L93.TIF
2.带堆叠目标是将图像堆叠在单个文件中。
在菜单栏中:
单击 Raster > Miscellaneous > Merge…
在合并窗口中:
设置如下:
输入文件:选择QGIS中显示的图像 注意:通过依次选择波段B2至B5,输出文件将组织如下: 波段1:蓝色(B2),波段2:绿色(B3),波段3:红色(B4),波段4:近红外(B5)
输出文件:LC81990262017019LGN00_MS_L93.TIF
选中选项将每个输入文件放置到一个单独的标注栏中
单击“OK”
3.结果分析
结果是一个具有四个光谱带的GeoTIFF文件。这种类型的多频段文件对于在QGIS中显示彩色构图很有用。它也是某些处理的先决条件。
4.相应的GDAL 命令
上面使用的工具相当于在终端中启动以下命令:
> gdal_merge.bat -separate -of GTiff -o
LC81990262017019LGN00_MS_L93.TIF
LC81990262017019LGN00_B2_L93.TIF
LC81990262017019LGN00_B3_L93.TIF
LC81990262017019LGN00_B4_L93.TIF
LC81990262017019LGN00_B5_L93.TIF
其中:
[-of]:设置输出格式,
[-separate]:将每个输入文件放在一个单独的带中,
[-o]:设置输出文件的名称。
一些有用的选项:
[-ps pixelsize_x pixelsize_y]: 设置输出文件的分辨率,
[-ul_lr ulx uly lrx lry]: 指定输出图像的空间范围。
注意: gdal_merge
工具输入具有相同坐标系的图像。然而,这些图像可能具有不同的空间范围和分辨率。
有关更多信息,请参阅以下网页: http://www.gdal.org/gdal_merge.html 。
表2.8.创建多频段栅格文件
14.4.4. 图像拼接¶
QGIS处理步骤
1.打开图片
在QGIS中:
打开以下图像:
LC81990262017019LGN00_B2_L93_CLIP.TIF
LC81990262017019LGN00_B2_L93_CLIP_PARIS.TIF
显示器上的两个图像相邻,但略有重叠。
2.图像拼接
目标是生成两个输入图像的拼接。
在菜单栏中:
单击 Raster > Miscellaneous > Merge…
在合并窗口中:
设置如下:
输入文件:选择步骤1中打开的两个图像。
输出文件: LC81990262017019LGN00_MOSA.TIF
选中“无数据值”选项,然后输入值0
单击“OK”
3.结果分析
结果是两个输入图像的拼接。考虑无数据值使我们能够使值等于0的像素“透明”。输出处的空间分辨率取决于 gdal_merge
命令
输入中指示的第一图像。如果此图像为LC 81990262017019LGN00_B2_L93_CLIP.TIF,则输出像素的尺寸在X方向
将为29.9824 m,在Y方向将为29.9685 m。相反,它们在X和Y上的长度为30 m。

LC81990262017019LGN 00_B2_L93_CLIP.TIF
LC81990262017019LGN 00_B2_L93_CLIP_PARIS.TIF

LC81990262017019L GN00_MOSA.TIF
4.对应GDAL 命令上面使用的工具相当于在终端中启动以下命令:
> gdal_merge -n 0 -a_nodata 0 -of GTiff -o
LC81990262017019LGN00_MOSA.tif
LC81990262017019LGN00_B2_L93_CLIP.TIF
LC81990262017019LGN00_B2_L93_CLIP_PARIS.TIF
其中:
[-of]:设置输出格式,
[-o]:设置输出文件的名称,
[-n]:设置合并时忽略像素的值,
[-a_nodata]:将指定的nodata值分配给输出文件。
注意:所有输入图像必须具有匹配数量的频段。
有关更多信息,请参阅以下网页: http://www.gdal.org/gdal_merge.html 。
表2.9.创建图像拼接
14.4.5. 减轻你的工作!使用虚拟栅格数据(VRT)¶
GdalTools扩展包中的合并工具使用的 gdal_merge
命令有时会生成大型栅格文件。GDAL通过创建虚拟数据集或VRT提供了
另一种策略。该格式允许通过应用算法(投影的变化、空间分辨率等)来组装异类网格数据在飞行中,
以便它们彼此连贯。由于VRT是GDAL 解释的ML文件,因此在存储方面非常轻便。
QGIS处理步骤
1.打开图像进行堆叠
在QGIS中:
仅打开以下图像:
LC81990262017019LGN00_B2_L93.TIF
LC81990262017019LGN00_B3_L93.TIF
LC81990262017019LGN00_B4_L93.TIF
LC81990262017019LGN00_B5_L93.TIF
2.波段堆叠
目标是将图像堆叠在单个VRT文件中。
在菜单栏中:
点击 Raster > Miscellaneous > Build Virtual Rasterl (Catalog)…
在“Virtual Raster”窗口中:
选中“Use visible raster layers for input”选项
注意:处理输出处的波段顺序遵循QGIS层面板中呈现的显示顺序。按照频段号的递减顺序组织Landsat 8文件。
设置如下:
输出文件: LC81990262017019LGN00_MS_L93.VRT
选中“分离”选项
单击“OK”
3.打开拼接图像
在QGIS中:
删除所有数据
仅打开以下图像:
LC81990262017019LGN00_B2_L93_CLIP.TIF
LC81990262017019LGN00_B2_L93_CLIP_PARIS.TIF
4.图像拼接
目标是将输入图像镶嵌在单个VRT文件中。
在菜单栏中:
单击 Raster > Miscellaneous > Build Virtual Rasterl (Catalog)…
在“Build Virtual Raster”窗口中:
选中“Use visible raster layers for input”选项
设置如下:
输出文件: LC81990262017019LGN00_MOSA.VRT
选中“源无数据”选项,然后输入值0
单击“OK”
5.结果分析
以VRT格式创建的文件在显示屏上给出的结果与使用 gdal_merge
命令获得的结果相同(请参阅2.2.4.3部分)。
但是,创建策略有所不同。构建虚拟栅格并不是生成新图像文件,而是简单地复制输入数据的一个扩展到。
事实上,结果的数据量很小,如下表所示:

VRT文件是一个构造如下的HTML:

根元素VRTDataset对应于输出码的描述。它的rasterXSize和rasterYSize属性以像素形式表达其大小。 它包括与投影系统(SRS)、仿射变换(GeoTransform)、每个频段的特征(VRTRasterBand)等相关的几个子元素。
有关更多信息,请在以下网页上介绍VRT格式: http://www.gdal.org/gdal_vrttut.html 。
6.相应的GDAL 命令
上面使用的工具相当于在终端中启动以下命令:
对于波段堆叠:
gdalbuildvrt -separate LC81990262017019LGN00_MS_L93.VRT
LC81990262017019LGN00_B2_L93.TIF
LC81990262017019LGN00_B3_L93.TIF
LC81990262017019LGN00_B4_L93.TIF
LC81990262017019LGN00_B5_L93.TIF
gdalbuildvrt -srcnodata 0 LC81990262017019LGN00_MOSA.VRT
LC81990262017019LGN00_B2_L93_CLIP.TIF
LC81990262017019LGN00_B2_L93_CLIP_PARIS.TIF
其中:
[-separate]: 将每个输入文件放在一个单独的波段中,
[-srcnodata]: 设置合并时被忽略像素的值。
一些有用的选项:
[-resolution] 或 [-tr xres yres]:设置输出文件的分辨率,
[-te xmin ymin xmax ymax]:指定输出图像的空间范围,
[-r]:设置要使用的重新采样方法。
有关更多信息,请参阅以下网页: http://www.gdal.org/gdalbuildvrt.html 。
表2.10. VRT格式的使用