MA - math operations do not preserve fill_value
Using Python 2.1 and Numeric 20.2.1 on Redhat Linux 7.1 Shouldn't masked arrays preserve the fill value of their operands, if both operands have the same fill value? Otherwise, if I want to preserve the value of the fill_value, I have to write expressions like: d=masked_values((a+b),a.fill_value()) Here's a demonstration of the problem:
a = masked_values((1.0,2.0,3.0,4.0,-999.0), -999) b = masked_values((-999.0,1.0,2.0,3.0,4.0), -999)
a array(data = [ 1., 2., 3., 4.,-999.,], mask = [0,0,0,0,1,], fill_value=-999)
b array(data = [-999., 1., 2., 3., 4.,], mask = [1,0,0,0,0,], fill_value=-999)
c=a+b c array(data = [ 1.00000002e+20, 3.00000000e+00, 5.00000000e+00, 7.00000000e+00, 1.00000002e+20,], mask = [1,0,0,0,1,], fill_value=[ 1.00000002e+20,])
d=masked_values((a+b),a.fill_value()) d array(data = [-999., 3., 5., 7.,-999.,], mask = [1,0,0,0,1,], fill_value=-999) -- Joe VanAndel National Center for Atmospheric Research http://www.atd.ucar.edu/~vanandel/ Internet: vanandel@ucar.edu
participants (1)
-
Joe Van Andel