特定の形式 DD-MM-SS から DMS を Radian に変換する方法を知りたい
この「print (DMStoRAD(47-39-28))」の解は 0.831785 のはずです
ありがとうございました!
特定の形式 DD-MM-SS から DMS を Radian に変換する方法を知りたい
この「print (DMStoRAD(47-39-28))」の解は 0.831785 のはずです
ありがとうございました!
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')
これは最初と同じ出力です。
命名規則を使用することができなかったため、関数名を変更しました;)
これを試して:
def DMS2Rad(D, M, S):
return ((D+M/60+S/3600)/180*3.141592654)