NTRIPモニター

NTRIPキャスタを使ってRTK基準局データを配信する際、正常にデータが配信されているか確認したくなる時があります。
移動局でFloatにもならない場合、色々な原因が考えられますが、NTRIPキャスタにアクセスして送られてくるデータを見れば、原因が基準局側か移動局側かの切り分けが可能です。
そのためのモニタプログラムをChatGPTの助けを借りながら作ってみました。

プログラムはNtripMonitor.pyをダウンロードし、ChatGPT等でソースの安全性を確認した後、
Python NtripMonitor.py
を実行して下さい。Pythonはバージョン3以上が必要です。
次の画面が実行状況です。

HostにはNTRIPキャスタのアドレス、Mountpointにマウントポイント名を指定し、必要に応じて、Port番号の変更や、Username,Passwordの指定、GGAセンテンスの送出等の設定を行って下さい。
rtk2go.comの場合は、現在、Usernameにメールアドレスを指定する必要があります。

設定後、Connectボタンを押すと、NTRIPキャスタにアクセスし、正常に接続できると1秒毎に受信したメッセージのタイプ番号と回数を表示します。
Durationで指定した秒数の間モニタし、Summaryとしてメッセージ毎の受信回数と基準局位置を表示します。

正常に表示されない場合のエラーメッセージは次のとおりです。

エラーメッセージ主な原因
[!] Error: [Errno 11001] getaddrinfo failedHostのアドレスにアクセスできない
[!] Error: timed outポート番号が違う。
正常に接続されたがデータが来ない。
[!] Received SOURCETABLE 200 OK (mountpoint not found or not a data mount).マウントポイント名が見つからない。
マウントポイントは存在するが、データがアップされていない。
Username,Passwordが必要な場合に、有効な指定がされていない

Ellipsoidの指定でWGS84かGRS80に設定できますが、この設定は基準局位置の緯度経度を計算する場合に適用されます。
どちらに設定してもデータのアクセスには関係しません。

このプログラムで動作確認したNTRIPキャスタはgeortk.jpとrtk2go.comだけですので、他のNTRIPキャスタでは正常に動作しないかもしれません。