From: Joe V. A. <van...@at...> - 2001-11-06 21:14:57
|
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: van...@uc... |