Python使用GDAL

gdal包用于处理栅格数据,ogr用于处理矢量数据 。

调用GDAL库:

from osgeo import gdal
import numpy as np
import cv2
import matplotlib.pyplot as plt
import matplotlib

np.set_printoptions(threshold=np.inf)  # 使print大量数据不用符号...代替而显示所有

dataset = gdal.Open("D:/modis/jf6.tif")

print(dataset.GetDescription())  # 数据描述

print(dataset.RasterCount)  # 波段数

cols = dataset.RasterXSize  # 图像长度
rows = (dataset.RasterYSize)  # 图像宽度

xoffset = cols / 2
yoffset = rows / 2


band = dataset.GetRasterBand(3)  # 取第三波段
r = band.ReadAsArray(xoffset, yoffset, 1000, 1000)  # 从数据的中心位置位置开始,取1000行1000列数据

band = dataset.GetRasterBand(4)
g = band.ReadAsArray(xoffset, yoffset, 1000, 1000)

band = dataset.GetRasterBand(5)
b = band.ReadAsArray(xoffset, yoffset, 1000, 1000)

#band = dataset.GetRasterBand(7)
#d = band.ReadAsArray(xoffset, yoffset, 1000, 1000)


matplotlib.use('TkAgg')
img2 = cv2.merge([r, g, b])
img = np.clip(img2, 0, 255).astype(np.uint8)  # 转换为uint8类型
plt.imshow(img)
plt.xticks([]), plt.yticks([])  # 不显示坐标轴
plt.show()
View Code

 

注意添加:matplotlib.use('TkAgg')

 

posted @ 2024-02-23 12:46  有翅膀的大象  阅读(63)  评论(0编辑  收藏  举报