GF-1号多光谱影像 band3为红波段  band4为近红外波段

话不多说,直接上代码

# -*- coding:utf_8 -*-
"""
作者:ZHOU
日期:2021年09月21日
计算NDVI数值
openfile函数为读遥感影像
ndvi函数为计算NDVI
write函数为写tif数据
"""
try:import gdal
except:from osgeo import gdal
from osgeo import ogr
from osgeo.gdalconst import *
import numpy as npdef openfile(filepath):dataset = gdal.Open(filepath)dataset_xsize = dataset.RasterXSizedataset_ysize = dataset.RasterYSizedataset_data = dataset.ReadAsArray(0,0,dataset_xsize,dataset_ysize)print(dataset_data.shape)return dataset,dataset_datadef ndvi(red,nir,dataset_data):red_band = dataset_data[red]nir_abnd = dataset_data[nir]red_band,nir_abnd = red_band.astype(np.float64),nir_abnd.astype(np.float64)add = red_band+nir_abndsub = nir_abnd-red_bandndvi_data = np.divide(sub,add,out=np.zeros_like(sub),where=add!=0)print(ndvi_data.shape)return ndvi_datadef writefile(dataset,in_data,path):in_prj= dataset.GetProjection()in_geo = dataset.GetGeoTransform()if len(in_data) == 3:in_bands,in_ysize,in_xsize = in_data.shapeelse:in_xsize , in_ysize = in_data.shapein_bands = 1driver = gdal.GetDriverByName('GTiff')new_data = driver.Create(path,in_xsize,in_ysize,in_bands,GDT_CFloat64)print(in_bands)if new_data != None:new_data.SetProjection(in_prj)new_data.SetGeoTransform(in_geo)if in_bands ==1:new_data.GetRasterBand(1).WriteArray(in_data)else:for i in range(in_bands):new_data.GetRasterBand(i+1).WriteArray(in_data[i])del datasetif __name__ == '__main__':dataset,dataset_data = openfile(r'')ndvi_data = ndvi(2,3,dataset_data)writefile(dataset,ndvi_data,r'')

gdal(1)GF-1影像提取NDVI相关推荐

  1. TM影像提取NDVI值小记

    昨天下载了Landset8的TM影像,云很多,并做预处理,然后融合,提取NDVI值,竟然达到了几百多,很吓人,之前处理GF1WFV的影像并没有出现这种情况,和同事讨论了一下,觉得是融合的时候出了问题, ...

  2. ENVI中基于Modis影像提取NDVI处理步骤

    1.数据下载 数据为MODIS-15天叶面积指数数据,可在地理空间数据云中进行下载,行列号可以参照下图. 2.提取NDVI数据 在Envi classic或者4.8,安装"MODIS Con ...

  3. ENVI软件对Landsat-8数据进行辐射定标、大气校正、提取NDVI、估算植被覆盖度等操作【图说GIS】

    目录 一.前言 二.数据下载 第一步 访问网站 第二步 登录账户 第三步 点击高级检索, 下载数据 三.软件下载及安装 四.辐射定标 第一步 打开数据 第二步 辐射定标 五.计算区域平均高程 第一步 ...

  4. ENVI提取NDVI与植被覆盖度估算

    公众号原文链接,欢迎关注 gENVI提取NDVI与植被覆盖度估算ENVI中NDVI计算与植被覆盖度提取https://mp.weixin.qq.com/s/Uc_14ObiYKKafQrtKqFjvg ...

  5. 【ArcGIS遇上Python】ArcGIS批量处理栅格影像(NDVI)归一化完整案例代码

    文章<ArcGIS栅格影像(NDVI)归一化处理的两种方法精解>详细介绍了ArcGIS中进行NDVI影像归一化处理的两种方法,但是无法批量进行,本文就放大招用Python实现批量NDVI归 ...

  6. 基于矢量成果从影像提取中深度学习样本库

    大数据之:影像提取中深度学习样本库获取的思考 话说,虾神一直是做空间统计和数据分析的,对于深度学习这个热门学科,一直以来也就停留在"了解"阶段,虽然这个平展开来,里面比较核心的技术 ...

  7. Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像-续

    之前写过一篇按照指定行列号数量来进行影像等距离裁剪的博客,链接如下: Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像_空中旋转篮球的博客-CSDN博客_pytho ...

  8. 【ArcGIS风暴】ArcGIS栅格影像(NDVI)归一化处理的两种方法精解

    [ArcGIS遇上Python]ArcGIS批量处理栅格影像(NDVI)归一化完整案例代码 图像归一化是指对图像进行了一系列标准的处理变换,使之变换为一固定标准形式的过程,该标准图像称作归一化图像. ...

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

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

最新文章

  1. python循环最简单的解释_python循环-通往简洁的必经之路
  2. 改善C#程序的建议10:用Parallel简化Task
  3. Java知多少(完结篇)
  4. 必读干货 | 如何做好向上管理,分享我实践多年的完整方法论
  5. 内联元素与块级元素及内外边距的影响
  6. CS229 7.1应用机器学习中的一些技巧
  7. MAC OS 烧录ISO文件到U盘
  8. php foreach bcc,php – 无法通过Mandrill发送BCC电子邮件(通过Laravel)
  9. 使用阿里云集成包快速搭建LAMP+FTP教程
  10. mysql存储emoji表情
  11. html导航栏纵向代码,html横向导航栏怎么做?横向导航条代码实例
  12. KM算法--学习笔记
  13. 三种 Bitmap 之 Java BitSet
  14. 气体流量传感器在汽车电子上的应用
  15. 《Kotlin 程序设计》第十二章 Kotlin的多线程:协程(Coroutines)
  16. YDOOK:Pytorch教程:转置矩阵 转置张量 T
  17. 前端 H5 页面地图展示,只需要传入经纬度就可展示地图及周边生活娱乐
  18. java开发的游戏测试_用java编写。模拟一个简单的测试打字速度的游戏
  19. 基于JavaWeb的简易投票系统
  20. Hexo-NexT主题中文目录不跳转的解决方法

热门文章

  1. 代理模式(为别人做嫁衣)
  2. 国内八大众筹平台-2015版
  3. 自动化每日构建(二)用Ant来完成java工程的每日构建
  4. NX二次开发 显示临时文本,临时点、临时线、临时圆
  5. 2020计算机考研院校推免,2020考研:热门院校推免比例超90%?他们说尝试了就不后悔!...
  6. 筑起网络信息安全防护
  7. oracle must be declared,Oracle数据库导出报componet'SET_NO_OUTLINES'must be declared的错
  8. java里使用等号对象赋值_在Java中对象可以赋值, 只要使用赋值号(等号)即可, 相当于生成了一个各属性与赋值对象相同的新对象。...
  9. 仿摩拜单车APP(包括附近车辆、规划路径、行驶距离、行驶轨迹记录,导航等)
  10. SD卡之FATFS库移植