Pycharm中矩阵的每一个元素进行计算分析

import gdal
from Scripts.gdalimport import dataset
import numpy as np

filename = 'filename.tif'  # E:\pythonProject
dataset = gdal.Open(filename)

im_data = dataset.ReadAsArray(0, 0, im_width, im_height)  # 获取数据im_data{ndarry:(2867,2804)}
im_NIR = im_data[6, 0:im_height, 0:im_width]  # 获取近红外波段,第m八波段im_NIR{ndarry:(2867,2804)}
im_RED = im_data[3, 0:im_height, 0:im_width]  # 获取红外波段,第四波段im_RED{ndarry:(2867,2804)}
NDVI = (im_NIR - im_RED) / (im_NIR + im_RED)  # 计算出NDVI{ndarry:(2867,2804)}
  if NDVI <= 0.17:
   VWC = 0
   if NDVI > 0.5:
    VWC = 4.2857 * NDVI - 1.5429
    if NDVI <= 0.5 and NDVI > 0.17:
     VWC = 1.9134 * NDVI ** 2 - 0.3215 * NDVI
print (VWC)

报错:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我想计算VWC,VWC是根据NDVI每一个数大小不同计算得出来的,可是我用if结果就报错,(我觉得用a.any和a.all都不对)也试了很多方法都算不出来,本人0基础,有没有大佬帮忙指点一下,应该用什么方法才能把VWC计算出来呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值