Python&&GDAL实现NDVI的计算方式

很短的几句代码,可是我却花了很长的时间才写出来,因为array那里的除法运算结果老是不对,正常在-1-1之间的。从别的资料摘来处理NDVI计算的array代码处,出现了很多问题,可能它用了什么优化计算的函数,但是结果不对,果断放弃了。

直接硬算,影像波段是整数,转成浮点型数字就行,然后再参与运算得出了正确的结果范围。

这个效率还是不行,用c++&&GDAL计算速率快得多了。

from osgeo import gdal_array as ga
import gdal, ogr, os, osr
import numpy as np
b3=r'C:\Users\suns\Desktop\b4.TIF'
b4=r'C:\Users\suns\Desktop\b5.TIF'
arr=ga.LoadFile(b3)
arr1=ga.LoadFile(b4)
ga.numpy.seterr(all="ignore")
ndvi=((arr1-arr)*1.0)/((arr1+arr)*1.0)
ndvi1=ga.numpy.nan_to_num(ndvi)
target=r'C:\Users\suns\Desktop\ndvi1.tif'
out=ga.SaveArray(ndvi1,target,format = "GTiff",prototype = b4)
out=None

以上这篇Python&&GDAL实现NDVI的计算方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python安装gdal的两种方法

    1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件  链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_amd64.whl 链接: https://pan.baidu.com/s/1prPHLJKwoKK505i5qTVZ7g 提取码: egj6 有百度云可以下载,然后放入本机目录. 这里目录有两种,一是放入anaconda安装目录的Scripts目录,我的是D:\anaconda\Scripts目录:二

  • Python&&GDAL实现NDVI的计算方式

    很短的几句代码,可是我却花了很长的时间才写出来,因为array那里的除法运算结果老是不对,正常在-1-1之间的.从别的资料摘来处理NDVI计算的array代码处,出现了很多问题,可能它用了什么优化计算的函数,但是结果不对,果断放弃了. 直接硬算,影像波段是整数,转成浮点型数字就行,然后再参与运算得出了正确的结果范围. 这个效率还是不行,用c++&&GDAL计算速率快得多了. from osgeo import gdal_array as ga import gdal, ogr, os, o

  • python:目标检测模型预测准确度计算方式(基于IoU)

    训练完目标检测模型之后,需要评价其性能,在不同的阈值下的准确度是多少,有没有漏检,在这里基于IoU(Intersection over Union)来计算. 希望能提供一些思路,如果觉得有用欢迎赞我表扬我~ IoU的值可以理解为系统预测出来的框与原来图片中标记的框的重合程度.系统预测出来的框是利用目标检测模型对测试数据集进行识别得到的. 计算方法即检测结果DetectionResult与GroundTruth的交集比上它们的并集,如下图: 蓝色的框是:GroundTruth 黄色的框是:Dete

  • python 等差数列末项计算方式

    等差数列末项计算 题目内容: 给出一个等差数列的前两项a1,a2,求第n项是多少 可以使用以下语句实现非负整数n的输入: n=int(input()) 输入格式: 三行,包含三个整数a1,a2,n 输出格式: 一个整数,即第n项的值 输入样例: 1 4 100 输出样例: 298 My answer 思路一:等差数列,先求差m是多少,第n项的值很多种方法算,我就采用这种a1 + m*(n-1) a1 = int(input()) a2 = int(input()) m = a2 - a1 n =

  • python gdal安装与简单使用

    gdal安装 方式一:在网址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 下载对应python版本的whl文件,在命令行中pip install whl文件完整路径安装(windows方式). 方式二: 命令行conda/pip search gdal查看版本,选择合适的版本(我的2.2.4),如果没有,使用方式一. 命令行conda/pip install gdal=版本号,注意加上版本号,否则可能安装上老版本(windows/linux都

  • Python实现中值滤波去噪方式

    中值滤波器去噪: 中值滤波的主要原理是将数字图像中的某点用该点的邻域中各个像素值的中值所来代替,这样就能让目标像素周围能够更好的接近真实值,比如一张白纸上有一个黑点时,黑点的像素值比较大,经过中值滤波过后,黑点附近的像素值可能就会变小.经过中值滤波后一些相对孤立的噪声点就容易被清除掉,这样就能提高图像的质量. 所以中值滤波器去噪的一个优点就是对椒盐噪声的去除具有很好的效果,具体操作是选取一个中心邻域,然后给邻域类各个像素的灰度值按大小进行排序,选取排序序列中的中值作为该邻域中心点的像素值的灰度值

  • Python+OpenCV实现旋转文本校正方式

    假设我们有一幅图像,图像中的文本被旋转了一个未知的角度.为了对文字进行角度的校正,我们需要完成如下几个步骤: 1.检测出图中的文本范围 2.计算出文本被旋转的角度 3.将图像旋转特定的角度 第一步.读取图像,并做二值化处理 #读取图像,做二值化处理 img = cv.imread('img/imageTextR.png') gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) cv.imshow('gray', gray) #像素取反,变成白字黑底 # gray

  • Python拼接字符串的7种方式详解

    忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今天,我跟大家一起来学习Python拼接字符串的七种方式. 1.来自C语言的%方式 print('%s %s' % ('Hello', 'world')) >>> Hello world %号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现.上例的%s是一个占位符,它仅代表

  • python读取与处理netcdf数据方式

    netcdf是气候数据中的主流格式,当涉及到大范围的全球数万个格网点数据时,使用python脚本可以较快地读取与处理. import netCDF4 from netCDF4 import Dataset import numpy as np import sys import os #计算日期数 import datetime d1=datetime.date(1900,1,1) d3 = d1 + datetime.timedelta(days =100) print (d3) #查看nc数

  • python+gdal+遥感图像拼接(mosaic)的实例

    作为摄影测量与遥感的从业者,笔者最近开始深入研究gdal,为工作打基础!个人觉得gdal也是没有什么技术含量,调用别人的api.但是想想这也是算法应用的一个技能,多学无害! 关于遥感图像的镶嵌,主要分为6大步骤: step1: 1)对于每一幅图像,计算其行与列: 2)获取左上角X,Y 3)获取像素宽和像素高 4)计算max X 和 min Y,切记像素高是负值 maxX1 = minX1 + (cols1 * pixelWidth) minY1 = maxY1 + (rows1 * pixelH

  • 利用python实现平稳时间序列的建模方式

    一.平稳序列建模步骤 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模.建模的基本步骤如下: (1)求出该观察值序列的样本自相关系数(ACF)和样本偏自相关系数(PACF)的值. (2)根据样本自相关系数和偏自相关系数的性质,选择适当的ARMA(p,q)模型进行拟合. (3)估计模型中位置参数的值. (4)检验模型的有效性.如果模型不通过检验,转向步骤(2),重新选择模型再拟合. (5)模型优化.如果拟合模型通过检验,仍然转向不走(2),充分考虑

随机推荐