2016-11-19 3 views
0

私はGPSフォーム座標有するPythonで°(緯度・経度)をdd.dddddする変換DD°mm.mmm」3

緯度= 3648.5518 ロン= 17443.258

Iは、次に変換します以下に示すように、より伝統的な形式

緯度= -36.8091667 ロン= 174.7209667

に私は、文字列操作を介してこれを行うことができます。しかし、このアプローチは非常に「馬鹿だ」ようです。Python 3.4でこの変換を達成するには、より良い方法(組み込み機能)がありますか?私の検索は空白になりました。アドバイスをいただければ幸いです。

スティーブ(パイソン/プログラミング新)

Lat = 3648.5518 
Lat = str(Lat) 
Latdd = float(Lat[:2]) 
Latmmmmm = float(Lat[2:]) 
Latddmmmm = Latdd+(Latmmmmm/60.0) 
print(Latddmmmm) 


Lon = 17443.258 
Lon = str(Lon) 
Londd = float(Lon[:3]) 
Lonmmmmm = float(Lon[3:]) 
Londdmmmm = Londd+(Lonmmmmm/60.0) 
print(Londdmmmm) 
+0

は、正しい例のマイナス記号ですか?コードと一致しません。 –

答えて

2

入力は100 *゜+分として度分を書く配置する十進法の乱用であるように見えます。

モジュロ除算で度、分、秒の部分を抽出することができます。わかりやすくするために2つの関数に分割します。

def dm(x): 
    degrees = int(x) // 100 
    minutes = x - 100*degrees 

    return degrees, minutes 

def decimal_degrees(degrees, minutes): 
    return degrees + minutes/60 

print (decimal_degrees(*dm(3648.5518))) 
関連する問題