亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Rasterio讀取柵格數據的實例講解

發布時間:2020-09-25 00:49:40 來源:腳本之家 閱讀:207 作者:TheOneGIS 欄目:開發技術

Rasterio簡介

有沒有覺得用GDAL的Python綁定書寫的代碼很不Pythonic,強迫癥的你可能有些忍受不了。不過,沒關系,MapBox旗下的開源庫Rasterio幫我們解決了這個痛點。

Rasterio是基于GDAL庫二次封裝的更加符合Python風格的主要用于空間柵格數據處理的Python庫。

Rasterio中柵格數據模型基本和GDAL類似,需要注意的是:

在Rasterio 1.0以后,對于GeoTransform的表示棄用了GDAL風格的放射變換,而使用了Python放射變換的第三方庫affine庫的風格。

對于放射變換

affine.Affine(a, b, c,
    d, e, f)

GDAL中對應的參數順序是:(c, a, b, f, d, e)

采用新的放射變換模型的好處是,如果你需要計算某個行列號的地理坐標,直接使用行列號跟給放射變換對象相乘即可,完全符合數學上矩陣乘法的操作,更加直觀和方便。

柵格數據讀取代碼示例

下面的示例程序中演示了如何讀取一個GeoTIFF文件并獲取相關信息,需要注意的是:

1、rasterio使用rasterio.open()函數打開一個柵格文件

2、rasterio使用read()函數可以將數據集轉為numpy.ndarray,該函數如果不帶參數,將把數據的所有波段做轉換(第一維是波段數),如果指定波段,則只取得指定波段對應的數據(波段索引從1開始)

3、數據的很多元信息都是以數據集的屬性進行表示的

import rasterio

with rasterio.open('example.tif') as ds:
 print('該柵格數據的基本數據集信息(這些信息都是以數據集屬性的形式表示的):')
 print(f'數據格式:{ds.driver}')
 print(f'波段數目:{ds.count}')
 print(f'影像寬度:{ds.width}')
 print(f'影像高度:{ds.height}')
 print(f'地理范圍:{ds.bounds}')
 print(f'反射變換參數(六參數模型):\n {ds.transform}')
 print(f'投影定義:{ds.crs}')
 # 獲取第一個波段數據,跟GDAL一樣索引從1開始
 # 直接獲得numpy.ndarray類型的二維數組表示,如果read()函數不加參數,則得到所有波段(第一個維度是波段)
 band1 = ds.read(1)
 print(f'第一波段的最大值:{band1.max()}')
 print(f'第一波段的最小值:{band1.min()}')
 print(f'第一波段的平均值:{band1.mean()}')
 # 根據地理坐標得到行列號
 x, y = (ds.bounds.left + 300, ds.bounds.top - 300) # 距離左上角東300米,南300米的投影坐標
 row, col = ds.index(x, y) # 對應的行列號
 print(f'(投影坐標{x}, {y})對應的行列號是({row}, {col})')
 # 根據行列號得到地理坐標
 x, y = ds.xy(row, col) # 中心點的坐標
 print(f'行列號({row}, {col})對應的中心投影坐標是({x}, {y})')
 # 那么如何得到對應點左上角的信息
 x, y = (row, col) * ds.transform
 print(f'行列號({row}, {col})對應的左上角投影坐標是({x}, {y})')

輸出如下:

該柵格數據的基本數據集信息(這些信息都是以數據集屬性的形式表示的):
數據格式:GTiff
波段數目:3
影像寬度:4800
影像高度:4800
地理范圍:BoundingBox(left=725385.0, bottom=2648415.0, right=869385.0, top=2792415.0)
反射變換參數(六參數模型):
 | 30.00, 0.00, 725385.00|
| 0.00,-30.00, 2792415.00|
| 0.00, 0.00, 1.00|
投影定義:CRS({'init': 'epsg:32649'})
第一波段的最大值:5459
第一波段的最小值:-313
第一波段的平均值:489.80300625
(投影坐標725685.0, 2792115.0)對應的行列號是(10, 10)
行列號(10, 10)對應的中心投影坐標是(725700.0, 2792100.0)
行列號(10, 10)對應的左上角投影坐標是(725685.0, 2792115.0)

以上這篇使用Rasterio讀取柵格數據的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

加查县| 长治市| 涟源市| 桦南县| 泰州市| 乌拉特中旗| 深水埗区| 祁东县| 正蓝旗| 文山县| 沛县| 措勤县| 迁西县| 连平县| 海原县| 绍兴县| 菏泽市| 盐亭县| 榕江县| 商南县| 开远市| 鄂州市| 常熟市| 辽宁省| 陇西县| 天柱县| 郑州市| 津南区| 绥江县| 建昌县| 靖西县| 诏安县| 炉霍县| 卢湾区| 雅安市| 新昌县| 广元市| 凉山| 南康市| 隆昌县| 镇原县|