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读写遥感影像相关推荐

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

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

  2. python 读取geotiff_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...

    (1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...

  3. python读取tiff影像_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...

    (1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...

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

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

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

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

  6. 8影像计算ndvi landsat_使用GDAL读取遥感影像的信息

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

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

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

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

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

  9. python可视化DEM遥感影像(tif格式)||xarray使用

    1.利用xarray导入tif格式的DEM影像,并让其可视化. 参考博客:主要文章和博客1及博客2. 代码如下: 首先导入相关的包: import numpy as np import matplot ...

  10. 利用ArcGIS Python批量拼接裁剪遥感影像(arcpy batch processing)

    本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪. 1.运行环境:ArcGIS10.1 (安装传送门).Python IDLE 2.数据来源:地理空 ...

最新文章

  1. 链mysql_mysql 版本链机制 readView
  2. python怎么输出图像测试_python pyautogui-不检测图像时的位置打印问题
  3. 面试疑难点解析:开发工具及框架(一)
  4. SAP UI5 应用开发教程之五十八 - 使用工厂方法在运行时动态创建不同类型的列表行项目控件试读版
  5. android通知图标变白色,android 7.0通知图标出现白色方块
  6. XML学习笔记--导航
  7. java集合类详解_【Java入门提高篇】Day20 Java集合类详解(三)List接口
  8. php7会不会出问题,升级到PHP7后会话不工作
  9. (转)Oracle中通过位图索引提高查询效率
  10. php 修改json数组的值,php – 无法通过str_replace更改JSON数组中的值
  11. 推荐→可以做时间线图片的APP
  12. Could not install from “tippy.js\dist\tippy.css“ as it does not contain a package.json file.
  13. 美国签证面签准备材料清单
  14. 需要程序猿了解的 89 个操作系统核心知识
  15. html5游戏ztype源码,Ztype打字游戏!
  16. ASP网页HTTP 错误 404.3 - Not Found解决方案
  17. 两年时间减少5600万用户,火狐浏览器要凉了?
  18. Java工程师 Java基础面试题JVM(Day12)
  19. scala中case的用法
  20. (转)数学中的各种空间

热门文章

  1. python exec函数 自动代码规范_Python 开发编码规范
  2. 书生浏览器不能打开这个文件或者url_这些浏览器工作原理你都吃透了吗?
  3. xgboost 怎么读_【泰语单词】“祸从口出”泰语怎么表达?意想不到的简单
  4. jmeter使用_jmeter概念及使用
  5. c语言文件io的fork,15. C语言的fork
  6. java地址值是几进制_Java三种进制的数值常量操作代码
  7. FusionCharts Free做报表
  8. ubuntu 双击打不开软件或者创建的快捷方式
  9. 关于embedding的理解,2020-7-30
  10. DB2 常用SQL语法