def convert_to_hex(val, delimiter=':', force_sign=False):
"""
Converts a numerical value into a hexidecimal string
Parameters:
===========
- val: float
The decimal number to convert to hex.
- delimiter: string
The delimiter between hours, minutes, and seconds
in the output hex string.
- force_sign: boolean
Include the sign of the string on the output,
even if positive? Usually, you will set this to
False for RA values and True for DEC
Returns:
========
A hexadecimal representation of the input value.
"""
s = np.sign(val)
s_factor = 1 if s > 0 else -1
val = np.abs(val)
degree = int(val)
minute = int((val - degree)*60)
second = (val - degree - minute/60.0)*3600.
if degree == 0 and s_factor < 0:
return '-00{2:s}{0:02d}{2:s}{1:.2f}'.format(minute, second, delimiter)
elif force_sign or s_factor < 0:
deg_str = '{:+03d}'.format(degree * s_factor)
else:
deg_str = '{:02d}'.format(degree * s_factor)
return '{0:s}{3:s}{1:02d}{3:s}{2:.2f}'.format(deg_str, minute, second, delimiter)
评论列表
文章目录