为什么当我尝试在1个函数中执行2个条件时,它只给我黑色光栅?

时间:2016-03-18 04:37:34

标签: python numpy raster

为什么当我在1个函数中尝试运动1条件时它可以工作,但是当我尝试添加下一个时 - 它只给出黑色光栅?

而不是平均值&gt; 0.05 * 99 - 我试着做:   (平均值> 0.05 * 99)&amp;(平均值<0.20 * 99) (条件是:超过5%但低于20%)。

编写多个条件的Python规则可能有问题吗?

def computeThirdCondition(myArray):  
print "Executing Third Condition:"
#Set up empty array:
myArrayThird = numpy.zeros(myArray.shape).astype(float)    
thirdCondition = (theInputArray==11)|(theInputArray==12)*1  
for i in range (1,numpy.size(myArray,1)-1):
    for j in range (1,numpy.size(myArray,0)-1):
        average = 0.0
        for ii in range(i-6,i+7):
            for jj in range(j-4,j+5):
                average = average + thirdCondition[j][i]
        if (average > 0.05*99)&(average < 0.20*99): 
            myArrayThird[j][i] = 1                
return myArrayThird

1 个答案:

答案 0 :(得分:3)

在Python中,&是按位and运算符,而逻辑and只是and。从

更改您的行
if (average > 0.05*99)&(average < 0.20*99): 

为:

if average > 0.05 * 99 and average < 0.20 * 99:

甚至:

if 0.20 * 99 > average > 0.05 * 99: