GPSロガーから得られた緯度・経度情報は地図上に表示できますが、移動距離や行動範囲の面積を正確に計算するためには、UTM座標系のような直交座標系に変換する必要があります。本プログラムは、以下の処理を行い緯度・経度情報をUTM座標に変換したファイルを出力します。
UTM座標変換: 緯度・経度を指定されたUTMゾーンに基づき、UTM座標(utm_x, utm_y)に変換します。
時刻の補正: 入力データにUTC時刻(世界協定時刻)が含まれている場合、タイムゾーンオフセットを指定してローカル時刻を出力します。
測位精度のフィルタリング: 測位衛星数(number_of_satellites)の最低値を指定することで、低精度のデータを除外できます。
柔軟な入力データに対応:入力ファイルに高度(height_above_mean_sea_level)、地上速度(ground_speed)、測位衛星数が含まれている場合、それらのデータを含めた出力が可能です。測位衛星数の列が存在しない場合でも処理を続行します。異常値・欠損値の除去: 緯度・経度が欠損しているデータや異常値(緯度=200など)を自動的に除外します。
実行方法
使用するPython環境に必要なライブラリ(pyproj)をインストールしてください。
pip install pyproj
プログラム(UTM_transform.py)とデータ(data.csv)をダウンロードして、Pythonのプロンプト上でそれらを保存したディレクトリに移動して、以下のコマンドを実行します。
python UTM_transform.py
処理するファイル名(data)を入力し、タイムゾーンのオフセット(+9)を入力します。測位衛星数(number_of_satellites)の項目があるデータの場合には、出力する最低測位衛星数(4)を入力します。処理するファイルに測位衛星数の項目がない場合は自動的にこの処理はスキップします。
指定するUTMゾーン(53)を入力するとUTM座標を含むファイルが同じディレクトリ内に保存されます。
(base) D:>python UTM_transform.py 処理するCSVファイルの名前を入力してください(例: input): data UTCからのタイムゾーンオフセットを入力してください(例: +9): 9 測位衛星数の最低値を入力してください(例: 4): 4 UTMゾーンを指定してください(例: 53): 53 出力ファイル:data_utm.csv