RTK基準局観測データアーカイブの試験公開

categories: gnss
tags: rtk rtklib

はじめに

RTK基準局にて観測した衛星信号アーカイブを試験公開します。httpsプロトコルで公開していますので、ウェブブラウザの他、wgetcurlなどのコマンドラインツールもご利用いただけます。

私たちは、高信頼な国土地理院の電子基準点アーカイブを利用できます。しかし、電子基準点アーカイブは30秒ごとのデータであるのに対して、このアーカイブは1 秒ごとのデータであり、中国の北斗(BeiDou)のデータや、信号対雑音強度の情報も含みます。このアーカイブは、RTK(realtime kinematic)、PPP(precise point positioning)、またCLAS(centimeter level augmentation system)のテストデータとして便利だと思います。

なお、観測データの欠測、また、アンテナや機器メンテナンスのために品質が低下したものも含まれることをご了承願います。また、将来、提供を終了する可能性もあります。

収録期間、内容、アーカイブアドレス、およびディレクトリ配置

収録期間は2020年3月1日から現在までです。観測データは1時間ごとに分かれていて、最初と最後の30秒間はオーバーラップしていますので、各データの長さは1時間1分です。

内容はRINEX(receiver independent exchange format、ライネックス)形式の擬似距離ファイル(OBS: observaton)と航法ファイル(NAV: navigation)、およびテキスト形式の衛星ファイル(SBAS: satellite based augmentation system)です。それぞれのファイルはgzipにて圧縮されています。衛星ファイルはないこともあります。

これらのファイルをgunzipなどで解凍していただきますと、テキストエディタで内容をご確認いただけます。RTKLIBのRTKPOSTでは、gzipにて圧縮したファイルをそのまま処理できます。

また、生データもご利用いただけます。2020年3月1日から8月20日までの生データはRTCM 3形式(拡張子rtcm3)、それ以降はu-bloxバイナリ形式(拡張子ubx)です。

アドレスは次の通りです。

https://phys.info.hiroshima-cu.ac.jp/gnss/f9p/

ディレクトリ配置は次の通りです。

YYYYMM/
    YYYYMMDDa.obs.gz
    YYYYMMDDa.nav.gz
    YYYYMMDDa.sat.gz
    ...
    YYYYMMDDx.obs.gz
    YYYYMMDDx.nav.gz
    YYYYMMDDx.sat.gz

raw/
    YYYYMM/
        YYYYMMDDa.rtcm3
        YYYYMMDDb.rtcm3
        YYYYMMDDc.rtcm3
        ...
        YYYYMMDDx.rtcm3

        YYYYMMDDa.ubx
        YYYYMMDDb.ubx
        YYYYMMDDc.ubx
        ...
        YYYYMMDDx.ubx

YYYYは西暦、MMは月、DDは日であり、次のaからxまでの英子文字は0時から23時までのコードを表します。なお、時刻は世界協定時(UTC: coordinated universal time)であり、日本標準時(JST: Japan standard time)よりも9時間だけ遅れています。

仕組み

u-blox ZED-F9Pのシリアルポートから出力されるデータに対して、このスクリプトにより、u-bloxバイナリファイルを収録しています。そして、毎時3分において、cronに次のスクリプトcron-f9pconv.shを実行させて、u-bloxバイナリー形式ファイルをRINEXファイルに変換し、さらにgzip圧縮を行います。

#!/bin/bash
#--------
DIR_F9P=/gnss/f9p
CONVBIN=convbin
GZIP=gzip
#--------

DATE=`date +%Y%m%d --date '10 hour ago'`      # year, month, and day
YRMO=`date +%Y%m   --date '10 hour ago'`      # year and month
HOUR=`date +%H     --date '10 hour ago'`      # hour
HOUR_NUM=`expr $HOUR + 97`                    # hour to character number
HOUR_CODE=`printf "\x$(printf %x $HOUR_NUM)"` # character number to hour code

$CONVBIN -ti 1 -v 3.04 -os -d $DIR_F9P/$YRMO \
                              $DIR_F9P/raw/$YRMO/$DATE$HOUR_CODE.ubx
$GZIP $DIR_F9P/$YRMO/$DATE$HOUR_CODE.*

dateコマンドで10時間前の時刻を指定しているのは、UTCとJSTとの時差の9時間と、str2strのファイルローテーション後に処理するファイル時刻の1時間とを合わせた合計です。