diff --git a/metobs/data/__init__.py b/metobs/data/__init__.py index 6e69baa5f7105f5b4ce6b81a1fccf46fbfc29e8f..401a47c4f468eaeb51fe5f66ebd1c4d9606b0a0d 100644 --- a/metobs/data/__init__.py +++ b/metobs/data/__init__.py @@ -317,39 +317,33 @@ def array_convert(arr, sunits, cunits): """ if sunits == cunits: return arr if not isinstance(arr, ndarray): raise ValueError("Array must be of type numpy.ndarray, not %r" % (type(arr),)) - shape = arr.shape - a = arr.flatten() if sunits == 'c': if cunits == 'f': - a = array([ c2f(x) for x in a ]) - return a.reshape(shape) + a = c2f(arr) + return a elif sunits == 'f': if cunits == 'c': - a = array([ f2c(x) for x in a ]) - return a.reshape(shape) + a = f2c(arr) + return a elif sunits == 'm/s': if cunits == 'knots': - a = array([ mps2knots(x) for x in a ]) - return a.reshape(shape) + a = mps2knots(arr) + return a elif sunits == 'knots': if cunits == 'm/s': - a = array([ knots2mps(x) for x in a ]) - return a.reshape(shape) - elif sunits == 'hpa': - return a.reshape(a) - elif sunits == 'deg': - return a.reshape(a) + a = knots2mps(arr) + return a elif sunits == 'in': if cunits == 'mm': - a = array([ in2mm(x) for x in a ]) - return a.reshape(shape) + a = in2mm(arr) + return a elif sunits == 'mm': if cunits == 'in': - a = array([ mm2in(x) for x in a ]) - return a.reshape(shape) - elif sunits == 'w/m2': - return a.reshape(a) + a = mm2in(arr) + return a + raise ValueError("sunits or cunits was not an acceptable unit") + if __name__ == '__main__': import doctest doctest.testmod()