这篇文章主要描述了如何使用GDAL/OGR读取栅格数据,分为按波段、按行、按列读取。
代码
from osgeo import gdal
from gdalconst import *
import os, sys, time
start_time = time.time()
os.chdir(r'E:\')
gdal.AllRegister()
ds = gdal.Open('aster.img', GA_ReadOnly)
if ds is None:
print('Could not open image')
sys.exit(1)
rows = ds.RasterYSize
cols = ds.RasterXSize
bands = ds.RasterCount
transform = ds.GetGeoTransform()
xOrigin = transform[0]
yOrigin = transform[3]
pixelWidth = transform[1]
pixelHeight = transform[5]
data = []
for j in range(bands):
band = ds.GetRasterBand(j+1)
data1 = band.ReadAsArray(0, 0,cols,rows)
data.append(data1)
rowsdata = []
for j in range(bands):
band = ds.GetRasterBand(j+1)
for i in range(rows):
data = band.ReadAsArray(0, i, cols, i)
rowsdata.append(data)
colsdata = []
for j in range(bands):
band = ds.GetRasterBand(j+1)
for i in range(rows):
data = band.ReadAsArray(i,0,i,rows)
colsdata.append(data)