遥感tif图像中如何忽略背景值为NAN或者-inf求均值和最值

本文介绍了遥感tif图像中遇到的背景值问题,包括NAN和-inf,分析了产生原因并提供了解决过程。通过Python的GDAL库读取图像,利用条件判断和numpy函数,有效地忽略了异常值进行均值和最值的计算。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

遥感影像由于卫星轨道的原因,经过初步地理校正通常都是倾斜的,存储为数组形式时,会出现部分背景。今天在处理数据时,由于计算波段指数中存在log(x)函数中x存在负值,导致部份非背景像元出现值为空值(NAN)的情况,并且背景像元值为-inf。今天记录下出现这种情况数组的处理方法。
在这里插入图片描述

图1 遥感影像(黑色部分为背景)

一、背景值为NAN或者-inf的原因?

通常遥感影像的背景值为NAN或者0(根据导出数据方式软件算法不同而变化)。然而今天由于处理遥感影像时使用波段运算工具有log函数,log函数处理的少部分非背景像元为负值,因此波段运算得到值为NAN。这种情况下背景不能为NAN,用ENVI导出为tif格式后,使用python的GDAL读取到背景值变成-inf(python中规定为负无穷大)。但是计算影像均值,方差等数据时需要忽略背景值或者NAN值,因此有了今天这篇博客。

二、解决过程

1.背景值的两种情况

(1)在影像非背景像元中没有出现NAN,此时背景值为0(numpy数组中包括普通像元值与背景值0)
(2)在影像非背景像元中出现NAN,此时背景值为-inf(numpy数组中包括普通像元值(NAN与正常值)与背景值-inf)
这里只是列举出我遇到的两种情况,可能还有可能有其他情况,比如背景值为NAN,建议先用GDAL库读为numpy数组,然后具体查看背景值的状况。
解决思路:
第一种情况需要忽略背景值0,第二种情况需要忽略背景值为NAN与-inf。因此使用if判断影像属于那种情景就行。然后再根据不同情景,求均值与最值。

2.例子

使用GDAL库读取为numpy数组后:

判断数组arr属于哪种情况:

#假设使用gdal读取的数组分别为arr1与arr2,arr1对应第二种情况(背景为-inf),arr2对应第一种情况(背景为0)
arr1 = np
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值