[AstroPy] why the warning about Converting Quantity?
Wolfgang Kerzendorf
wkerzendorf at gmail.com
Thu Mar 21 15:15:26 EDT 2013
Hi Jonathan,
I think, one should not turn this warning off. It warns you that the quantity you get after the operations does not necessarily have the same units as before - and rightly so.
When doing things like np.sqrt(15* u.km), they can be replaced with np.sqrt((15 * u.km).value) which specifically tells it to convert to a float (and puts the onus on you to think about the units).
Cheers
Wolfgang
Hope that helps
On 2013-03-21, at 3:05 PM, Adrian Price-Whelan <adrianmpw at gmail.com> wrote:
> Hey Jonathan --
>
> Are you sure that's the point in the code that's producing the warning? What operations are you doing with the AU object? When you use the .to() method, it still returns a Quantity object -- *not* the value of the original object in those units. If you then stick AU into any numpy function, it will work but will just extract the value from the object (hence the warning).
>
> See, for example:
>
>>>> import astropy.units as u
>>>> np.sqrt(15*u.km)
> WARNING: Converting Quantity object in units 'km' to a Numpy array [astropy.units.quantity]
> 3.872983346207417
>
> To turn this off, you'll want to set:
>>>> u.quantity.WARN_IMPLICIT_NUMERIC_CONVERSION.set(False)
>>>> np.sqrt(15*u.km)
> 3.872983346207417
>
> Note that this is documented in the astropy.units.quantity section of the astropy documentation:
> http://docs.astropy.org/en/latest/units/quantity.html#converting-to-python-or-numpy-types
>
> Thanks,
> Adrian
>
> On Mar 21, 2013, at 2:20 PM, Jonathan Slavin wrote:
>
>> Hi,
>>
>> I have just used the constants module in astropy for the first time and
>> got 6 warnings from my code as a result:
>>
>> import astropy.constants as const
>> AU = const.au.to('km')
>>
>> leads to
>> WARNING: Converting Quantity object in units 'km' to a Numpy array
>> [astropy.units.quantity]
>> WARNING: Converting Quantity object in units 'km' to a Numpy array
>> [astropy.units.quantity]
>> WARNING: Converting Quantity object in units 'km' to a Numpy array
>> [astropy.units.quantity]
>> WARNING: Converting Quantity object in units 'km' to a Numpy array
>> [astropy.units.quantity]
>> WARNING: Converting Quantity object in units 'km' to a Numpy array
>> [astropy.units.quantity]
>> WARNING: Converting Quantity object in units 'km' to a Numpy array
>> [astropy.units.quantity]
>>
>> It seems that I get the warning every place I use the value of AU. Do I
>> have to turn off warnings to prevent this? Is there some other way to
>> deal with this?
>>
>> Jon
>> --
>> ______________________________________________________________
>> Jonathan D. Slavin Harvard-Smithsonian CfA
>> jslavin at cfa.harvard.edu 60 Garden Street, MS 83
>> phone: (617) 496-7981 Cambridge, MA 02138-1516
>> cell: (781) 363-0035 USA
>> ______________________________________________________________
>>
>> _______________________________________________
>> AstroPy mailing list
>> AstroPy at scipy.org
>> http://mail.scipy.org/mailman/listinfo/astropy
>
> --
> Adrian Price-Whelan
> Department of Astronomy
> Columbia University
>
>
>
> _______________________________________________
> AstroPy mailing list
> AstroPy at scipy.org
> http://mail.scipy.org/mailman/listinfo/astropy
More information about the AstroPy
mailing list