天天看點

GDAL空間資料處理100講[02]:用GDAL切圖/裁剪(GeoTiff格式)

GDAL空間資料處理100講[02]:用GDAL切圖/裁剪(GeoTiff格式)

作者:胡佳輝 2018年11月14日

概述

前面給大家介紹了怎麼把GDAL的環境搭建起來,就有朋友迫不及待地問各種開發問題。後續将陸續給大家分享,這一期先介紹怎麼用GDAL切圖/裁剪(clip),這裡采用的是根據指定的矩形框按像素切,其他方式還有根據shp輪廓切等。

前置條件:本文基于Ubuntu16桌面版環境,參見:GDAL空間資料處理100講[01]:GDAL的Python開發環境搭建

GeoTiff栅格圖像基礎知識

要對Tif檔案切圖,對栅格圖像的了解很有必要。GeoTiff是很常見的一種遙感影像資料格式,它是一種栅格資料,這種資料是以像素點矩陣的形式存儲的。TIF檔案中的空間資訊包括投影資訊和仿射變換資訊。其中,仿射變換(經緯度等)的資訊分别為:左上角的坐标(經度和次元)、東西和南北方向的像素分辨率(也就是每個像素點的經緯度偏移量)以及圖像的旋轉系數(正北方向時為零)。這樣,每個像素點的坐标就可以通過它與左上角的偏移量和每個像素的分辨率值計算出來。

切圖産生的新圖的投影資訊是不變的,但仿射資訊會發生變化,因為左上角的原點可能跟原圖不一樣了。是以,需要重新計算仿射資訊并設定(投影資訊也需要設定,但不需要重新計算)。

GDAL切圖的關鍵步驟

[1] Tif檔案的讀取;

[2] 根據Tif檔案中的波段數量,讀取相應的波段(Band)。有些Tif可能隻包含一個波段,但更常見的包含RGB或者RGBN,分别代表Red、Green、Blue和Near Infrared(近紅外)。本文的tif樣例檔案為RGB檔案,共三個通道;

[3] 确定要裁剪的圖的起始點和矩形框的大小,并讀取相應的資料;

[4] 擷取建立檔案的驅動并建立裁剪後的新目标檔案;

[5] 計算新圖的仿射資訊,并設定投影和仿射資訊;

[6] 将提取出來的資料寫入新檔案并重新整理緩存到磁盤;

[7] 釋放檔案句柄資源;

其他可選處理可能包括計算統計資訊以及建構影像金字塔等。

切圖源碼

參見github連結:https://github.com/dennishucd/gdal100/blob/master/02/gdal_clip.py

說明:本源碼中的樣例影像源自哨兵二号成都興隆湖的影像.

本文原發于"衛星遙感大資料"公衆号,歡迎關注!如有興趣,歡迎加入"衛星遙感大資料"QQ群(877631590)或者加我微信(cddennishu)進"衛星遙感大資料"微信群。