遙感專欄:(一)常用的遙感資料處理python庫及環境搭建
常用的遙感資料處理python庫及環境搭建
一、GDAL
1.介紹
Geospatial Data Abstraction Library (GDAL)是使用C/C++語言編寫的用於讀寫空間資料的一套跨平臺開源庫。現有的大部分GIS或者遙感平臺,不論是商業軟體ArcGIS,ENVI還是開源軟體GRASS,QGIS,都使用了GDAL作為底層構建庫。
GDAL庫由OGR和GDAL專案合併而來,OGR主要用於空間要素向量向量資料的解析,GDAL主要用於空間柵格資料的讀寫。此外,空間參考及其投影轉換使用開源庫 PROJ.4進行。
目前,GDAL主要提供了三大類資料的支援:柵格資料,向量資料以及空間網路資料(Geographic Network Model)。
GDAL提供了C/C++藉口,並且通過SWIG提供了Python,Java,C#等的呼叫藉口。當我們在Python中呼叫GDAL的API函式時,其實底層執行的是C/C++編譯的二進位制檔案。
GDAL不但提供了API藉口方便開發人員自定義自己的功能,而且還提供了一系列實用工具(Command Line Tools)可以實現方便快速的空間資料處理。我們可以使用這些實用工具,結合Linux Shell指令碼或者Windows批處理指令碼進行大批量空間資料的批量處理。
2.柵格資料組織
GDAL中使用dataset表示一個柵格資料(使用抽象類GDALDataset表示),一個dataset包含了對於柵格資料的波段,空間參考以及後設資料等資訊。一張GeoTIFF遙感影像,一張DEM影像,或者一張土地利用圖,在GDAL中都是一個GDALDataset。
- 座標系統(使用OGC WKT格式表示的空間座標系統或者投影系統)
- 地理仿射變換(使用仿射變換表示圖上座標和地理座標的關係)
- GCPs(大地控制點記錄了圖上點及其大地座標的關係,通過多個大地控制點可以重建圖上座標和地理座標的關係)
- 後設資料(鍵值對的集合,用於記錄和影像相關的後設資料資訊)
- 柵格波段(使用GDALRasterBand類表示,真正用於儲存影像柵格值,一個柵格資料可以有多個波段)
- 顏色表(Color Table用於影像顯示
3.地理仿射變換
GDAL資料集有兩種方式表示柵格資料中像元位置(影像中某個點在影像中的行列號)和投影座標系(不是經緯度,是投影到二維平面的地理座標,二者可以通過地圖投影進行相互轉換)間的關係:仿射變換和GCP點。而大部分資料資料集都是通過仿射變換進行描述的。
仿射變換使用如下的公式表示柵格圖上座標和地理座標的關係:
XGeo = GeoTransform[0]+GeoTransform[1]*Xpixel+Ypixel*GeoTransform[2];
YGeo = GeoTransform[3]+GeoTransform[5]*Ypixel+Ypixel*GeoTransform[5];
其中,(XGeo,YGeo)表示對應於畫素座標(Xpixel,Ypixel)的實際地理座標。對一個上北下南的影像,GeoTransform[2]和GeoTransform[4]等於0,GeoTransform[1]是像元的寬度(在x方向上的解析度大小), GeoTransform[5]是像元的高度(在y方向上的解析度大小)。(GeoTransform[0],GeoTransform[3])座標對錶示左上角像元的實際地理座標。通過這個仿射變換,我們可以得到圖上所有像元對應的地理座標。
4.python庫環境搭建
windows環境下,在安裝GDAL、Opencv等依賴包時,需要提前安裝依賴包numpy。pip命令如下:
pip install numpy
然後,可使使用常規的pip命令進行安裝:
pip install gdal
或者使用conda命令進行安裝:
conda install gdal
說明:pip與conda的區別
(1)pip專門管理pyhton依賴包,其基於原始碼安裝,因此如果你無法編譯原始碼,那麼安裝將會很難受;
(2)conda可以允許你在conda環境中安裝任何語言的依賴包(c或python等),其從二進位制檔案安裝,這意味著有人完成了艱苦的編譯工作,因此安裝將很簡單。
(3)由於pip不能安裝和解析conda的包格式,因此不能互動使用conda和pip。
二、Opencv
1.介紹
眾所周知,OpenCV 是一個開源的計算機視覺庫。它由一系列 C 函式和少量 C++ 類構成,實現了影像處理和計算機視覺方面的很多通用演算法。
2.Opencv提供的功能
- 影像資料操作(記憶體分配與釋放,影像複製、設定和轉換)
- 影像/視訊的輸入輸出(支援檔案或攝像頭的輸入,影像/視訊檔案的輸出)
- 矩陣/向量資料操作及線性代數運算(矩陣乘積、矩陣方程求解、特徵值、奇異值分解)
- 支援多種動態資料結構(連結串列、佇列、資料集、樹、圖)
- 基本影像處理(去噪、邊緣檢測、角點檢測、取樣與插值、色彩變換、形態學處理、直方圖、影像金字塔結構)
- 結構分析(連通域/分支、輪廓處理、距離轉換、影像矩、模板匹配、霍夫變換、多項式逼近、曲線擬合、橢圓擬合、狄勞尼三角化)
- 攝像頭定標(尋找和跟蹤定標模式、引數定標、基本矩陣估計、單應矩陣估計、立體視覺匹配)
- 運動分析(光流、動作分割、目標跟蹤)
- 目標識別(特徵方法、HMM模型)
- 基本的GUI(顯示影像/視訊、鍵盤/滑鼠操作、滑動條)
- 影像標註(直線、曲線、多邊形、文字標註)
3.Opencv包含的模組
- cv – 核心函式庫
- OpenCV基本資料結構
- 動態資料結構
- 繪圖函式
- 陣列操作相關函式
- 輔助功能與系統函式和巨集
- 與OpenGL的互操作
- cvaux – 輔助函式庫
- cxcore – 資料結構與線性代數庫
- highgui – 高層GUI圖形使用者介面,包含媒體的輸入輸出、視訊捕捉、影像和視訊的編碼解碼、圖形互動介面的介面等
- ml – 機器學習函式庫
- legacy – 一些已經廢棄的程式碼庫、用來向下相容
- gpu – 運用GPU加速的計算機視覺模組
- flann – 高維的近似近鄰快速搜尋演算法庫
- 快速近似最近鄰搜尋
- 聚類
- features2d – 2D功能框架
- 特徵檢測和描述
- 特徵檢測器(Feature Detectors)通用介面
- 描述符提取器(Descriptor Extractors)通用介面
- 描述符匹配器(Descriptor Matchers)通用介面
- 通用描述符(Generic Descriptor)匹配器通用介面
- 關鍵點繪製函式和匹配功能繪製函式
- nonfree – 一些具有專利的演算法模組
- objdetect – 目標檢測模組
- ocl – 運用OpenGL加速的計算機視覺元件模組
- photo – 影像修復和影像去噪
- stiching – 影像拼接模組
- superres – 超解析度技術的相關功能模組
- ts – OpenCV測試相關程式碼
- video – 視訊穩定相關元件
- contrib – 新增的人臉識別、立體匹配、人工視網膜模型等技術
- calib3d – 用於相機校準和三維重建
- imgproc – 影像處理模組
- 線性和非線性的影像濾波
- 影像的幾何變換
- 其他(Miscellaneous)影像轉換
- 直方圖相關
- 結構分析和形狀描述
- 運動分析和物件跟蹤
- 特徵檢測
- 目標檢測等內容
4.Pyhton庫環境搭建
安裝指定版本,可使用如下pip命令:
pip install opencv-contrib-python==3.4.2.17
說明:上訴pip命令同時安裝了Opencv及其擴充套件模組(不穩定模組)。此外,安裝Opencv前仍要提前安裝numpy依賴包,具體方法參考gdal中介紹。
查詢Opencv現有版本的安裝pip命令的網站:點此
參考:
相關文章
- 遙感影像處理流程
- 幾種不同資料採集的概念:遙測、遙控、遙信、遙調、遙視、遙感
- arduino操作遙感UI
- Python批次繪製遙感影像資料的直方圖Python直方圖
- 【遙感遙測】【2016】灌溉玉米田間土壤水分變化的遙感定量研究
- Python遙感影像疊加分析:基於一景資料提取另一資料Python
- 遙感大資料智慧分析與應用大資料
- 遙感影像Trento原始資料集下載
- 環保遙感監測,需要插上一雙AI的翅膀AI
- ArcGIS批量裁剪遙感影像
- 遙感基礎學習
- 批次計算遙感影像NDVI:Python程式碼Python
- 當遙感影象檢測機智起來:全場景AI與遙感的頂峰邂逅AI
- 遙感技術在環境監測中的應用:揭秘地球變化的天眼
- Python用shp檔案裁剪多個遙感影像的方法Python
- Python核對遙感影像批次下載情況的方法Python
- Python忽略NoData計算多張遙感影像的像元平均值:whitebox庫Python
- 穀雨紀事:深度學習理解遙感影象 | PaddlePaddle與中科院遙感地球所聯手保護土地資源深度學習
- 2米精度的遙感影像能看到什麼?
- SPIE獨立出版。遙感徵稿中--2024年遙感與數字地球國際學術會議(RSDE 2024)
- Python的GDAL庫繪製多波段、長時序遙感影像時間曲線圖Python
- 遙感邂逅AI的浪漫故事,需要一枚“算力戒指”AI
- AI助力環保遙感監測,強大算力很關鍵AI
- 【Python&RS】基於GDAL遙感影像分幅裁剪(固定尺寸)Python
- ArcGIS遙感影像重取樣操作及不同演算法對比演算法
- Python實現snap:對齊多張遙感影像的空間範圍Python
- 自然資源部:2019年衛星遙感應用報告
- 國內首個遙感大資料院士工作站落戶鄭州大資料
- R語言求取大量遙感影像的平均值、標準差:raster庫R語言AST
- 基於R語言的raster包讀取遙感影像R語言AST
- 遙感智慧:來自天空的“海康威視”(附下載)
- 代入感+放置+社交,《一念逍遙》的三大成功法寶
- Python ArcPy批次計算多時相遙感影像的各項元平均值Python
- ENVI為遙感影像設定空間座標系的方法
- AI+雲原生,把衛星遙感虐的死去活來AI
- R語言將多景遙感影像拼接在一起的方法R語言
- Python依據遙感影像的分幅篩選出對應的柵格檔案Python
- HDF格式遙感影像批次轉為TIFF格式:ArcPy實現