基于python与GDAL获取遥感影像

最近做项目,发现网上关于利用python与GDAL读取遥感影像数据的资料比较少。因此整理了一些,以方便自己学习。

     1.首先确认自己电脑上安装好python版的GDAL库。这个会以后有时间慢慢整理。

      2. 导入gdal库

         from osgeo import gdal

      3. 注册GDAL库

         gdal.AllRegister()

      4. 启动GDAL所支持的文件格式驱动,这里的format为'tiff','jpg'等GDAL支持的栅格数据

          Driver = gdal.GetDriverByName(format)

      5.  打开文件,如果文件打开成功,返回1.如果文件不能打开,则返回零。

          fh = gdal.Open( filename )

      6.  fh为文件句柄,包含了文件的行列号等信息。

          bands = fh.RasterCount  //文件波段数

          xsize = fh.RasterXSize //文件行数

          ysize   = ysize = fh.RasterYSize //文件列数

          band_type = fh.GetRasterBand(1).DataType //数据类型

          projection = fh.GetProjection()  //投影参数信息

         geotransform = fh.GetGeoTransform() //文件几何信息

         文件几何信息是一维六元数组,主要是:

              ulx = geotransform[0] //左上x坐标

              resolutionx = geotransform[1] //x方向分辨率

             rotationx =  geotransform[2] //x方向旋转

             uly = geotransform[3] //左上y坐标

             rotationy =  geotransform[4] //y方向旋转

            resolutiony = geotransform[5] //y方向分辨率

        GDAL读取文件时把遥感数据倒置了,因此y方向分辨率为赋值。

        ct = GetRasterBand(1).GetRasterColorTable() //数据颜色表

     7. 读取影像数据

          band = fh.GetRasterBand(1) //获取波段

          data = band.ReadAsArray( xoff, yoff, xsize, ysize, t_xsize, t_ysize ) //获取影像数据

          xoffset :x方向偏移

          yoffset: y方向偏移

          xsize: x方向数据大小

          ysize: y方向数据大小 

          t_xsize : 将图像转换为的x大小 

          t_ysize : 将图像转换为的y大小

          如果您要读取一整景影像,则如下:

                data = band.ReadAsArray( 0, 0, xsize, ysize)  

          如果您分块读取影像数据操作

                data = band.ReadAsArray( 0, 0, xsize, ysize)  

你可能感兴趣的:(数学,线性代数)