GDAL(Geospatial Data Abstraction Library)是一个用于栅格数据操作的库,是开源地理空间基金会(Open Source Geospatial Foundation,OSGeo)的一个项目。GDAL可以操作各种栅格地理数据格式的库,包括图像的读取、写入、转换、处理各种栅格数据格式。GDAL目前支持约100种格式的栅格数据读取,包括ERDAS Imagine、ENVI、GRASS、GeoTIFF、HDF4、HDF5、TIFF、JPEG、JPEG2000、PNG、GIF、BMP等。GDAL的Open(filename)函数用于读栅格数据,函数返回Dataset对象。 通过Dataset对象,可以栅格数据的基本信息,如行列数、波段数、坐标转换参数等。通过Dataset对象可以返回每个波段数据(Band对象),每个波段数据的信息。Dataset对象和Band对象都可以转换成数组,通常情况下,栅格数据是基于数组进行操作。
1、获取栅格数据基本信息
Dataset对象的RasterYSize、RasterXSize和RasterCount属性分别返回栅格数据的行数、列数和波段数。
from osgeo import gdal
ds = gdal.Open(“D:/img/GF2.tif”)
rows = ds.RasterYSize
cols = ds.RasterXSize
bands = ds.RasterCount
print("rows ",rows )
print("cols ",cols )
print("bands ","bands ")
2、获取栅格数据空间参考
filepath=“D:/img/GF2.tif”
ds = gdal.Open(filepath)
geotransform = ds .GetGeoTransform()
ds对象的GetGeoTransform()方法返回栅格数据的坐标转换参数,即行列坐标与空间坐标的转换参数。
返回的值是个元组,共有6个元素,其中,第一和第四个元素为左上角像元的x和y坐标,第二和第六个元素为x和y方向的比例尺,第三和第五元素为x和y方向旋转角度。
projection= ds .GetProjection()
ds对象的GetProjection()方法返回栅格数据的空间参照系统信息