# coding=utf-8
from osgeo import gdal
from gdalconst import *
def readImage(img_path):
data = []
# 以只读方式打开遥感影像
dataset = gdal.Open(img_path, GA_ReadOnly)
if dataset is None:
print("Unable to open image file.")
return data
else:
print("Open image file success.")
geoTransform = dataset.GetGeoTransform()
print(geoTransform)
im_proj = dataset.GetProjection() # 获取投影信息
print (im_proj)
bands_num = dataset.RasterCount
print("Image height:" + dataset.RasterYSize.__str__() + " Image width:" + dataset.RasterXSize.__str__())
print(bands_num.__str__() + " bands in total.")
for i in range(bands_num):
# 获取影像的第i+1个波段
band_i = dataset.GetRasterBand(i + 1)
# 读取第i+1个波段数据
band_data = band_i.ReadAsArray(0, 0, band_i.XSize, band_i.YSize)
data.append(band_data)
print("band " + (i + 1).__str__() + " read success.")
return data
print:
Open image file success.
(495341.48890999705, 0.10028999999997644, 0.0, 4243205.078130003, 0.0, -0.10028999999996153)
PROJCS["WGS_1984_Transverse_Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]
Image height:4772 Image width:4832
3 bands in total.
band 1 read success.
band 2 read success.
band 3 read success.
输出的六个参数
//adfGeoTransform[0] 左上角x坐标
//adfGeoTransform[1] 东西方向分辨率
//adfGeoTransform[2] 旋转角度, 0表示图像 “北方朝上”
//adfGeoTransform[3] 左上角y坐标
//adfGeoTransform[4] 旋转角度, 0表示图像 “北方朝上”
//adfGeoTransform[5] 南北方向分辨率