1. 读取影像数据集的元数据

GDAL已经提供了足够方便的函数,可以读取影像的一些元数据信息, 从而方便对数据进行处理。GDAL一般是以字典的形式对元数据进行组织的, 但是对于不同的栅格数据类型,元数据的类型与键值可能都不一样。

目前, 国际上对空间元数据标准内容进行研究的组织主要有三个,分别是欧洲标准化委员会(CEN/TC 287)、 美国联邦地理数据委员会(FGDC)和国际标准化组织地理信息/地球信息技术委员会(ISO/TC 211)。

GDAL可以作为数据集级别的元数据来处理下面的基本的TIFF标志。

  • TIFFTAG_DOCUMENTNAME

  • TIFFTAG_IMAGEDESCRIPTION

  • TIFFTAG_SOFTWARE

  • TIFFTAG_DATETIME

  • TIFFTAG_ARTIST

  • TIFFTAG_HOSTCOMPUTER

  • TIFFTAG_COPYRIGHT

  • TIFFTAG_XRESOLUTION

  • TIFFTAG_YRESOLUTION

  • TIFFTAG_RESOLUTIONUNIT

  • TIFFTAG_MINSAMPLEVALUE (read only)

  • TIFFTAG_MAXSAMPLEVALUE (read only)

使用python来访问以下元数据。

from osgeo import gdaldataset = gdal.Open("C:/Users/WangTianli/Desktop/GDAL/Landsat/Washington/geotiff_file.tif")dataset.GetMetadata()
{'AREA_OR_POINT': 'Area', 'PyramidResamplingType': 'NEAREST'}

    GetMetadata() 方法可以访问数据的元数据信息,元数据信息对于每个数据都是不一样的。比如再打开另外一个文件:

ds = gdal.Open('C:/Users/WangTianli/Desktop/GDAL/Landsat/gdata/lu75c.tif')ds.GetMetadata()
{'AREA_OR_POINT': 'Area', 'TIFFTAG_XRESOLUTION': '1', 'TIFFTAG_YRESOLUTION': '1'}

这个文件只对两个TIFF标志进行了定义,还有一个并不是TIFF标志定义的。

    2.使用GetDescription()获得栅格数据的信息

dataset.GetDescription()
'C:/Users/WangTianli/Desktop/GDAL/Landsat/Washington/geotiff_file.tif'

看来这里的图像描述是图像的路径名, 但是这是和各种不同数据集相关的, 不同数据集有不同的描述。

    3.获取数据集栅格波段数目

    栅格数据集是由多个数据构成的,在GDAL中,每一个波段,都是一个数据集;不仅如此,栅格数据集还可能包含有子数据集,每子数据集又可能包含有波段

这些数据集的数目可以通过RasterCount属性来查看。

dataset.RasterCount

3

这是一个由3个波段构成的Landsat遥感影像。注意RasterCount后面没有括号,因为它是属性不是方法。

再看一个MODIS L1B数据:

mds = gdal.Open("C:/Users/WangTianli/Desktop/GDAL/Landsat/gdata/MOD09A1.A2009193.h28v06.005.2009203125525.hdf")mds.RasterCount

0

运行结果居然是0。这意味着当前的数据集 dataset 中的栅格数目是0。实际上,MODISL1B的数据格式是HDF格式的, 它的数据是以子数据集组织的, 要获取其相关的数据的信息, 需要继续访问其子数据集。

    4.获取数据集影像行列数据

    栅格数据的大小指出了影像以像元为单位的宽度与高度。

img_width,img_height = dataset.RasterXSize,dataset.RasterYSizeimg_width,img_height
(1500, 900)

可以看出我们的影像大小是 10572 × 9422 。

    5.获得数据集空间参考

    GetGeoTransform() 地理仿射变换参数。

对于遥感影像来说,它需要在地理空间中进行定位。在GDAL中,这有两种方式,其中一种是使用六个参数坐标转换模型。这个模型的具体实现在不同的软件中是不一样的。在GDAL中,这六个参数包括左上角坐标像元X、Y方向大小旋转等信息。要注意,Y方向的像元大小为负值。

dataset.GetGeoTransform()

(1868454.913, 30.0, 0.0, 5353126.266, 0.0, -30.0)

    6.获得数据集投影信息

使用 GetProjection() 函数,可以比较容易地获取数据集的投影信息。

dataset.GetProjection()
'PROJCS["Albers_Beijing54",GEOGCS["Unknown datum based upon the Krassowsky 1940 ellipsoid",DATUM["Not_specified_based_on_Krassowsky_1940_ellipsoid",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6024"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",105],PARAMETER["standard_parallel_1",25],PARAMETER["standard_parallel_2",47],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]'

    7.获取数据集的波段

    GetRasterBand() 函数,可以获得栅格数据集的波段。这是函数的参数使用波段的索引值。

from osgeo import gdaldataset = gdal.Open('/gdata/lu75c.tif')dataset.RasterCount

1

band = dataset.GetRasterBand(1)

这里通过 GetRasterBand() 函数获取了第一个波段band,注意:这里访问波段的索引和通常的数组索引不一样,波段索引的开始值是1而不是0。


以上内容针对数据集。

以下内容针对波段。


    8.查看波段的基本信息

    使用dir()函数查看波段有什么属性和方法。

dir(band)

9.获取波段行列数据

band.XSize

6122

band.YSize

4669

band.DataType

3

执行以上代码得到了波段图像的宽和高(像元为单位)。对于我们所使用的影像, 这个与 dataset 中使用 RasterXSize() 与 RasterYSize() 获取的值一致。DataType是图像中实际数值的数据类型,表示8位无符号整型。

    10.获取波段数据的属性

band.GetNoDataValue()band.GetMaximum()band.GetMinimum()band.ComputeRasterMinMax()

(-1.0, 66.0)

    Maximum 是表示在本波段数值中最大的值,当然 Minimum 就是表示本波段中最小的值。通过运行结果,我们可以看到在一开始RasterXSize()RasterYSize()都没有值。因为对于文件格式不会有固有的最大最小值。所以我们可以通过函数ComputeRasterMinMax() 计算得到。注意!这里的最大最小值不包括“无意义值”!也就是上面显示的 NoDataValue 。

8影像计算ndvi landsat_使用GDAL读取遥感影像的信息相关推荐

  1. python/gdal处理遥感影像(读取、投影转换、裁剪、建立图像金字塔等)

    python/gdal处理遥感影像(读取.投影转换.裁剪.建立图像金字塔等) gdal库简单介绍 python使用gdal 一.安装python环境 二.安装gdal库 三.使用gdal处理遥感影像 ...

  2. 3_读取遥感影像信息

    读取遥感影像信息 本文中的所有方法可以读取遥感影像信息,但是仅限于概括地获取元数据信息,无法具体到对像元进行处理. 打开已有的GeoTiff GDAL不能通过with打开影像,会报错 GDAL打开影像 ...

  3. gdal进行遥感影像读写_如何使用遥感影像进行矿物勘探

    gdal进行遥感影像读写 Meet Jose Manuel Lattus, a geologist from Chile. In the latest Soar Cast, he discusses ...

  4. 原创程序|基于GDAL的遥感影像批量处理工具介绍(三)

    本文主要介绍基于C#+GDAL-Python实用工具开发的遥感影像批量处理工具,该工具目前主要包括影像批量切片生成KML文件和影像批量切片生成Tiles文件.该工具.Net框架版本为4.0,GDAL版 ...

  5. Python地学分析 — GDAL对遥感影像重投影

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...

  6. 基于c语言的遥感图像处理,基于GDAL的遥感影像显示(C#版)

    在matlab中实现遥感影像和shp文件的结合显示 clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure ...

  7. python遥感影像地物分类_基于TensorFlow的遥感影像地物识别方法研究

    文章编号: 1674-098X(2018)04(b)-0053-02 ①作者简介: 任芳语 ( 1996, 12- ) , 女, 汉族, 黑龙江讷河人, 本科在读, 研究方向:地理信息科学与遥感图像处 ...

  8. (五)Landat_5 TM 遥感影像计算NDVI、MNDWI、NDBI以及地表温度反演

    流程概况图 一.植被覆盖指数(NDVI) 所谓植被指数,就是利用多波段遥感图像的可见光波段以及近红外波段相组合,形成能够反映突出植被分布状况和强度的指数.植被指数的求解方法不唯一,定义的植被指数已经多 ...

  9. python读取遥感 dat_#python读取遥感影像GDAL包的用法

    #!C:/Python27/ArcGIS10.1/python.exe -u #coding:utf-8 '''the first two lines are used to choose the c ...

最新文章

  1. 浅谈ANR及log分析ANR
  2. 扫描路径_SolidWorks沿路径扭转扫描的线缆实例
  3. 图像处理之均值滤波介绍及C算法实现
  4. c语言 子进程,子Shell和子进程
  5. 轻量级ORM框架 【Dapper】 的使用
  6. 软件架构设计的三个维度,软件架构师需要知道的点,了解一下吧!
  7. python-函数与变量的定义-标识符的命名规范
  8. TypeScript入门教程 之 模板字符串
  9. [No000004]在WIN7/8任务栏创建快捷方式
  10. opencv matlab配置,Matlab下运行c++程序的配置(包含opencv的c++程序)
  11. 数据库中间表插入乱序
  12. Python机器学习库sklearn几种分类算法建模可视化(实验)
  13. avue 文字点击 弹窗_目前最好用的文字转语音、视频配音方法,一键合成,智能黑科技...
  14. python照片过人脸_python图片人脸检测
  15. navicat12.0.26 激活
  16. 计算机找不到ac97前面板怎么办,电脑Win7系统前面板耳机插孔没有声音解决方法(音频设置+前面板插线方法)...
  17. 燃烧远征怀旧服务器人数小程序,《魔兽世界怀旧服》燃烧的远征制作人访谈 详细讲解新版本...
  18. 17track包裹单个物流轨迹抓取(一)
  19. Help Hanzo(区间素数筛)
  20. autojs ui界面模板3

热门文章

  1. python随机生成20个数字_python – 生成大量唯一的随机float32数字
  2. python yield from yield_python yield和yield from用法总结详解 python yield和yield from用法总结...
  3. yjk只算弹性的不计算弹塑性_材料本构弹塑性力学知识二
  4. mfc 算方差函数_什么影响了你的工资?方差分析告诉你
  5. pythonencode_python的encode和decode误读总结
  6. js代码自动排版_接口测试平台代码实现9:菜单常显
  7. Django视图简介
  8. NAS组建日记(一):来块大硬盘先—HGST 10TB NAS硬盘开箱小测
  9. AC automation 模板
  10. PHP - PDO 之 mysql 参数绑定