Python 使用GDAL和rasterio读取栅格数据,并进行仿射变换信息的相互转换

使用gdal可以读取栅格数据,并获取投影及仿射变换信息

import sys
import gdal

dataset = gdal.Open('./zhuhai.tif')
if dataset is None:
    print('Unable to open *.tif')
    sys.exit(1)

projection = dataset.GetProjection()   # 获取投影信息
### GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],
    # AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
    # UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],
    # AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]

transform = dataset.GetGeoTransform()    # 获取放射变换信息
### (113.39159774577, 5.000000000000014e-06, 0.0, 22.058475004479, 0.0, -5.000000000000014e-06)

img_array = dataset.ReadAsArray()   # 读取波段数据信息

使用rasterio读取栅格数据,并获取投影及仿射变换信息

import rasterio

dataset = rasterio.open('./zhuhai.tif')

projection = dataset.crs
# EPSG:4326

transform = dataset.transform
# | 0.00, 0.00, 113.39|
# | 0.00,-0.00, 22.06|
# | 0.00, 0.00, 1.00|

# dataset.height: 2813      # 影像行数
# dataset.width: 1639       # 影像列数
# dataset.count: 3          # 影像波段数
# dataset.driver: GTiff     # 影像格式
# dataset.dtypes: uint8     # 影像数据类型

仿射变换信息的相互转换

# 仿射变换信息从gdal到rasterio

from rasterio.transform import Affine

rio_trans = Affine.from_gdal(transform[0], transform[1], transform[2], transform[3], transform[4], transform[5])


# 仿射变换信息从rasterio到gdal

from rasterio.transform import Affine

rio_trans = Affine.to_gdal(transform)

おすすめ

転載: blog.csdn.net/MLH7M/article/details/121021731