利用python gdal读写遥感影像
0读取遥感数据
# 读遥感数据
import gdal
import numpy as npclass Grid:# 读取图像文件def read_img(self, filename):data = gdal.Open(filename) # 打开文件im_width = data.RasterXSize # 读取图像行数im_height = data.RasterYSize # 读取图像列数im_geotrans = data.GetGeoTransform()# 仿射矩阵,左上角像素的大地坐标和像素分辨率。# 共有六个参数,分表代表左上角x坐标;东西方向上图像的分辨率;如果北边朝上,地图的旋转角度,0表示图像的行与x轴平行;左上角y坐标;# 如果北边朝上,地图的旋转角度,0表示图像的列与y轴平行;南北方向上地图的分辨率。im_proj = data.GetProjection() # 地图投影信息im_data = data.ReadAsArray(0, 0, im_width, im_height) # 此处读取整张图像# ReadAsArray(<xoff>, <yoff>, <xsize>, <ysize>)# 读出从(xoff,yoff)开始,大小为(xsize,ysize)的矩阵。del data # 释放内存,如果不释放,在arcgis,envi中打开该图像时会显示文件被占用return im_proj, im_geotrans, im_data
1写遥感数据
def write_img(self, filename, im_proj, im_geotrans, im_data):# filename-创建的新影像# im_geotrans,im_proj该影像的参数,im_data,被写的影像# 写文件,以写成tiff为例# gdal数据类型包括# gdal.GDT_Byte,# gdal .GDT_UInt16, gdal.GDT_Int16, gdal.GDT_UInt32, gdal.GDT_Int32,# gdal.GDT_Float32, gdal.GDT_Float64# 判断栅格数据的类型if 'int8' in im_data.dtype.name:datatype = gdal.GDT_Byteelif 'int16' in im_data.dtype.name:datatype = gdal.GDT_UInt16else:datatype = gdal.GDT_Float32if len(im_data.shape) == 3: # len(im_data.shape)表示矩阵的维数im_bands, im_height, im_width = im_data.shape # (维数,行数,列数)else:im_bands, (im_height, im_width) = 1, im_data.shape # 一维矩阵# 创建文件driver = gdal.GetDriverByName('GTiff') # 数据类型必须有,因为要计算需要多大内存空间data = driver.Create(filename, im_width, im_height, im_bands, datatype)data.SetGeoTransform(im_geotrans) # 写入仿射变换参数data.SetProjection(im_proj) # 写入投影if im_bands == 1:data.GetRasterBand(1).WriteArray(im_data) # 写入数组数据else:for i in range(im_bands):data.GetRasterBand(i + 1).WriteArray(im_data[i])del data
2计算NDVI
实现了读写影像数据,便可以实现NDVI的计算
a = Grid()
prj, geotrans, data = a.read_img(r'') # 读取数据
print(prj, geotrans, data, data.shape, sep='\n')
# 计算NDVI值,并输出影像
data = data.astype(np.float) # 强制类型转换为float
ndvi = (data[3] - data[2]) / (data[3] + data[2]) # (nir-r)/(nir+r)
a.write_img('', prj, geotrans, ndvi)
利用python gdal读写遥感影像相关推荐
- python/gdal处理遥感影像(读取、投影转换、裁剪、建立图像金字塔等)
python/gdal处理遥感影像(读取.投影转换.裁剪.建立图像金字塔等) gdal库简单介绍 python使用gdal 一.安装python环境 二.安装gdal库 三.使用gdal处理遥感影像 ...
- python 读取geotiff_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...
(1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...
- python读取tiff影像_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...
(1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...
- gdal进行遥感影像读写_如何使用遥感影像进行矿物勘探
gdal进行遥感影像读写 Meet Jose Manuel Lattus, a geologist from Chile. In the latest Soar Cast, he discusses ...
- Python地学分析 — GDAL对遥感影像重投影
欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...
- 8影像计算ndvi landsat_使用GDAL读取遥感影像的信息
读取影像数据集的元数据 GDAL已经提供了足够方便的函数,可以读取影像的一些元数据信息, 从而方便对数据进行处理.GDAL一般是以字典的形式对元数据进行组织的, 但是对于不同的栅格数据类型,元数据的类 ...
- 原创程序|基于GDAL的遥感影像批量处理工具介绍(三)
本文主要介绍基于C#+GDAL-Python实用工具开发的遥感影像批量处理工具,该工具目前主要包括影像批量切片生成KML文件和影像批量切片生成Tiles文件.该工具.Net框架版本为4.0,GDAL版 ...
- 基于c语言的遥感图像处理,基于GDAL的遥感影像显示(C#版)
在matlab中实现遥感影像和shp文件的结合显示 clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure ...
- python可视化DEM遥感影像(tif格式)||xarray使用
1.利用xarray导入tif格式的DEM影像,并让其可视化. 参考博客:主要文章和博客1及博客2. 代码如下: 首先导入相关的包: import numpy as np import matplot ...
- 利用ArcGIS Python批量拼接裁剪遥感影像(arcpy batch processing)
本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪. 1.运行环境:ArcGIS10.1 (安装传送门).Python IDLE 2.数据来源:地理空 ...
最新文章
- 链mysql_mysql 版本链机制 readView
- python怎么输出图像测试_python pyautogui-不检测图像时的位置打印问题
- 面试疑难点解析:开发工具及框架(一)
- SAP UI5 应用开发教程之五十八 - 使用工厂方法在运行时动态创建不同类型的列表行项目控件试读版
- android通知图标变白色,android 7.0通知图标出现白色方块
- XML学习笔记--导航
- java集合类详解_【Java入门提高篇】Day20 Java集合类详解(三)List接口
- php7会不会出问题,升级到PHP7后会话不工作
- (转)Oracle中通过位图索引提高查询效率
- php 修改json数组的值,php – 无法通过str_replace更改JSON数组中的值
- 推荐→可以做时间线图片的APP
- Could not install from “tippy.js\dist\tippy.css“ as it does not contain a package.json file.
- 美国签证面签准备材料清单
- 需要程序猿了解的 89 个操作系统核心知识
- html5游戏ztype源码,Ztype打字游戏!
- ASP网页HTTP 错误 404.3 - Not Found解决方案
- 两年时间减少5600万用户,火狐浏览器要凉了?
- Java工程师 Java基础面试题JVM(Day12)
- scala中case的用法
- (转)数学中的各种空间
热门文章
- python exec函数 自动代码规范_Python 开发编码规范
- 书生浏览器不能打开这个文件或者url_这些浏览器工作原理你都吃透了吗?
- xgboost 怎么读_【泰语单词】“祸从口出”泰语怎么表达?意想不到的简单
- jmeter使用_jmeter概念及使用
- c语言文件io的fork,15. C语言的fork
- java地址值是几进制_Java三种进制的数值常量操作代码
- FusionCharts Free做报表
- ubuntu 双击打不开软件或者创建的快捷方式
- 关于embedding的理解,2020-7-30
- DB2 常用SQL语法