1
1

More than 3 years have passed since last update.

【python】緯度経度をUTM座標に変換する

Last updated at Posted at 2020-11-29

はじめに

緯度経度、皆さん聞いたことがあると思いますが、東経・西経、北緯・南緯で表示される座標で、地球上での位置を示すものです。
しかしながら、GISを扱う上では緯度経度だけではなくUTM座標(ユニバーサル横メルカトル)が用いられることも少なくありません。
今回の記事では緯度経度の座標(地理座標)からUTM座標をpythonで取得する方法を記します。

UTMの解説についてはウィキペディアをご覧ください。
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%8B%E3%83%90%E3%83%BC%E3%82%B5%E3%83%AB%E6%A8%AA%E3%83%A1%E3%83%AB%E3%82%AB%E3%83%88%E3%83%AB%E5%9B%B3%E6%B3%95
まあ、この中に変換式も書いてあるのですが難しいので・・・(私もよくわかっていません)

コード

座標値を取得するには、pyprojというモジュールを使用します。
pythonでProjection(投影座標系、測地系の変換関数的な)を扱うためのライブラリ的なものです。
まずはインポートが必要ですね。

from pyproj import Proj

緯度経度の設定をし、UTM座標値を取得します。
お試しであれば適当な数値でOKです。

lon = 137.5
lat = 38.5

#UTMゾーンを求める
e2u_zone = int(divmod(lon, 6)[0])+31

#地理座標(緯度経度)からUTM座標系に変換するProjectionを設定する。
e2u_conv = Proj(proj = 'utm', zone = e2u_zone, ellps = 'WGS84') 

#座標値の取得
utmx, utmy = e2u_conv(lon, lat)

if lat < 0:
    utmy = utmy + 10000000

print(" UTM zone is ", e2u_zone, "\n", \
     "UTM Easting is ", utmx, "[m]\n", \
     "UTM Northing is ", utmy, "[m]")

出力結果

 UTM zone is  53 
 UTM Easting is  718010.4028220479 [m]
 UTM Northing is  4264255.315546167 [m]

これでUTMでの座標値を得ることができました。
思ったより簡単に取得できました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1