8影像计算ndvi landsat_使用GDAL读取遥感影像的信息
读取影像数据集的元数据
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读取遥感影像的信息相关推荐
- python/gdal处理遥感影像(读取、投影转换、裁剪、建立图像金字塔等)
python/gdal处理遥感影像(读取.投影转换.裁剪.建立图像金字塔等) gdal库简单介绍 python使用gdal 一.安装python环境 二.安装gdal库 三.使用gdal处理遥感影像 ...
- 3_读取遥感影像信息
读取遥感影像信息 本文中的所有方法可以读取遥感影像信息,但是仅限于概括地获取元数据信息,无法具体到对像元进行处理. 打开已有的GeoTiff GDAL不能通过with打开影像,会报错 GDAL打开影像 ...
- gdal进行遥感影像读写_如何使用遥感影像进行矿物勘探
gdal进行遥感影像读写 Meet Jose Manuel Lattus, a geologist from Chile. In the latest Soar Cast, he discusses ...
- 原创程序|基于GDAL的遥感影像批量处理工具介绍(三)
本文主要介绍基于C#+GDAL-Python实用工具开发的遥感影像批量处理工具,该工具目前主要包括影像批量切片生成KML文件和影像批量切片生成Tiles文件.该工具.Net框架版本为4.0,GDAL版 ...
- Python地学分析 — GDAL对遥感影像重投影
欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...
- 基于c语言的遥感图像处理,基于GDAL的遥感影像显示(C#版)
在matlab中实现遥感影像和shp文件的结合显示 clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure ...
- python遥感影像地物分类_基于TensorFlow的遥感影像地物识别方法研究
文章编号: 1674-098X(2018)04(b)-0053-02 ①作者简介: 任芳语 ( 1996, 12- ) , 女, 汉族, 黑龙江讷河人, 本科在读, 研究方向:地理信息科学与遥感图像处 ...
- (五)Landat_5 TM 遥感影像计算NDVI、MNDWI、NDBI以及地表温度反演
流程概况图 一.植被覆盖指数(NDVI) 所谓植被指数,就是利用多波段遥感图像的可见光波段以及近红外波段相组合,形成能够反映突出植被分布状况和强度的指数.植被指数的求解方法不唯一,定义的植被指数已经多 ...
- python读取遥感 dat_#python读取遥感影像GDAL包的用法
#!C:/Python27/ArcGIS10.1/python.exe -u #coding:utf-8 '''the first two lines are used to choose the c ...
最新文章
- 浅谈ANR及log分析ANR
- 扫描路径_SolidWorks沿路径扭转扫描的线缆实例
- 图像处理之均值滤波介绍及C算法实现
- c语言 子进程,子Shell和子进程
- 轻量级ORM框架 【Dapper】 的使用
- 软件架构设计的三个维度,软件架构师需要知道的点,了解一下吧!
- python-函数与变量的定义-标识符的命名规范
- TypeScript入门教程 之 模板字符串
- [No000004]在WIN7/8任务栏创建快捷方式
- opencv matlab配置,Matlab下运行c++程序的配置(包含opencv的c++程序)
- 数据库中间表插入乱序
- Python机器学习库sklearn几种分类算法建模可视化(实验)
- avue 文字点击 弹窗_目前最好用的文字转语音、视频配音方法,一键合成,智能黑科技...
- python照片过人脸_python图片人脸检测
- navicat12.0.26 激活
- 计算机找不到ac97前面板怎么办,电脑Win7系统前面板耳机插孔没有声音解决方法(音频设置+前面板插线方法)...
- 燃烧远征怀旧服务器人数小程序,《魔兽世界怀旧服》燃烧的远征制作人访谈 详细讲解新版本...
- 17track包裹单个物流轨迹抓取(一)
- Help Hanzo(区间素数筛)
- autojs ui界面模板3
热门文章
- python随机生成20个数字_python – 生成大量唯一的随机float32数字
- python yield from yield_python yield和yield from用法总结详解
python yield和yield from用法总结...
- yjk只算弹性的不计算弹塑性_材料本构弹塑性力学知识二
- mfc 算方差函数_什么影响了你的工资?方差分析告诉你
- pythonencode_python的encode和decode误读总结
- js代码自动排版_接口测试平台代码实现9:菜单常显
- Django视图简介
- NAS组建日记(一):来块大硬盘先—HGST 10TB NAS硬盘开箱小测
- AC automation 模板
- PHP - PDO 之 mysql 参数绑定