如何在Python中将DMS转换为弧度:DD-MM-SS格式
我想知道如何把DMS(度、分、秒)转换成弧度,给定的格式是DD-MM-SS。
比如,print (DMStoRAD(47-39-28))
这个计算的结果应该是0.831785。
2 个回答
0
试试这个:
def DMS2Rad(D, M, S):
return ((D+M/60+S/3600)/180*3.141592654)
3
import numpy
def dms_string_to_radians(dms_string):
degrees = numpy.sum(numpy.fromstring(dms_string, sep='-') *
[1.0, 1/60.0, 1/3600.0])
return numpy.radians(degrees)
print dms_string_to_radians('47-39-28')
输出结果:
0.831785136406
如预期的那样。
或者,如果你不想使用Numpy,想用标准库的话:
import string, math
def dms_string_to_radians(dms_string):
dms = [float(x) for x in string.split(dms_string, '-')]
degrees = sum(
[scale * val for scale, val in zip([1.0, 1/60.0, 1/3600.0], dms)])
return math.radians(degrees)
print dms_string_to_radians('47-39-28')
这个输出和第一个是一样的。
我改了函数的名字,因为我实在不想用你那种命名方式;)