def dms2decimal(degrees, minutes, seconds): op = operator.__add__ if degrees >= 0 else operator.__sub__ return reduce(op, [degrees, float(minutes)/60, float(seconds)/3600])