Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

GDAL库初探


本文主要介绍python的GDAL库,GDAL(Geospatial Data Abstraction Library),主要提供对栅格数据的处理,这些栅格数据包括GeoTiff,ASCII DEM(DEM),Eardas Imagine Images(img)等格式。

GDAL使用抽象数据模型来解析所支持的数据格式。所使用的抽象模型包括数据集(Dataset)、坐标系统(Cordinate system)、仿射地理坐标变换(AffineGeoTransform)、控制点(GCPs)、元数据(Metadata)、栅格波段(Raster Band)、颜色表(Color Tables)等;详细的结构描述传送门:GDAL结构描述

与之相似的是PIL库,但是gdal 主要重点放在地理或遥感数据的读写和数据建模以及地理定位和转换,但是 PIL 的重点是放在图像本身处理上的

现在开始介绍GDAL库的使用:

首先安装GDAL文件库,其具体安装方法如下:GDAL库安装

使用GDAL库打开影像函数:

import gdal
import os

def readimg(filename):

    dataset = gdal.Open(filename)       #打开文件

    xsize = dataset.RasterXSize         #获取图像的宽度(X方向上的像素个数)
    ysize = dataset.RasterYSize         #获取图像的宽度(Y方向上的像素个数)
    cout =  dataset.RasterCount         #统计图像波段数
    
    geotrans = dataset.GetGeoTransform()    #获取仿射矩阵
    proj = dataset.GetProjection()          #获取地图投影信息
    data = dataset.ReadAsArray(0,0,xsize,ysize) #将数据写成数组,对应栅格矩阵
    #这里也可以写成
    #data = dataset.ReadRaster(0,0,xsize,ysize)即可将数据写成栅格数据
    del dataset
    return geotrans,proj,data

调用该函数:

if __name__ == "__main__":
    proj,geotrans,data = readimg(r'F:\EO1H1150482014336110T4\EO1H1150482014336110T4.jpg')        #读数据
    print(proj)
    print(geotrans)
    print(data)
    print(data.shape)

执行结果如下:

至此,将影像读入成功。



转载自:https://blog.csdn.net/qq_39218330/article/details/78946141