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

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)進"衛星遙感大資料"微信群。