RINGO: RINEX pre-processing tool using Go!

RINGO は, マルチ GNSS データに対応した RINEX データ前処理ソフトウェアです. コマンドラインベースのツールで, シンプルなインターフェースながら, 日々の GNSS データ管理に必要な機能を揃えています.

Windows, macOS, Linux, Unix と様々なプラットフォームに対応しています.

コンテンツ


主な機能


  • RINEX ファイル編集 ("merge")
  • RINEX ファイル結合 ("merge")
  • クロックジャンプ補正 ("clkcorr")
  • 品質チェック ("qc")
  • 電離層遅延補正 ("ioncorr")
  • BINEX, RTCM ファイルの RINEX 形式への変換 ("bingo", “rtcmgo”)
  • ビューワー出力 ("viewer")
  • RINEX ファイルのCSV変換 ("rnxcsv")
  • シェル補完スクリプト出力 ("completion")
  • GNSS カレンダー表示 ("cal")

導入方法


それぞれのプラットフォームに対応した実行ファイルはこちらからダウンロード可能です.

  1. ダウンロードページから最新版の RINGO をダウンロードしてください download page.
  2. 実行バイナリを好きなディレクトリ(フォルダ)に保存します.
  3. ディレクトリを環境変数(PATH等)に追加します.
  4. インストールした実行ファイルに実行権限を追加します. 例えば,
$ chmod +x ringo

対応OS・ファイル形式


対応OS:

現在, Windows OS, macOS, Linux, UNIX (FreeBSD, Solaris) に対応しています. ただし, これらは Go言語のサポート状況に依存します.

対応RINEXバージョン:

file format version
RINEX 2.00*, 2.10, 2.11, 2.12
3.00, 3.01, 3.02, 3.03, 3.04, 3.05
4.00, 4.01

* 現在 RINEX 2.00 形式は IGS の公式ドキュメントが存在しないため, この形式のファイルについては期待通り動作しない可能性があります.

データ変換に対応している形式:

file format record types
BINEX 0x7f: GNSS observables
0x01-0x01: GPS ephemeris
0x01-0x02: GLO ephemeris
0x01-0x03: SBAS ephemeris
0x01-0x06: QZS ephemeris
0x01-0x14: GAL ephemeris
file format record types
RTCM MSM7 (1077, 1087, 1097, 1117): GNSS observation data
1019: GPS ephemeris
1020: GLO ephemeris
1044: QZS ephemeris
1046: GAL ephemeris

使用方法


インストールのテスト

ringo コマンドを実行してテストします.

$ ringo

正常ならば, 次のようなメッセージが表示されます.

$ ringo
RINEX file pre-processing tool using Go.

ringo is a program for editing, pre-processing, and quality checking RINEX files,
also includes features such as conversion from BINEX or RTCM to RINEX format, interactive viewer etc.

インターフェース

RINGO はコマンドラインベースのツールです. サブコマンドインターフェースを採用しており, コマンドラインベースでありながら直感的な操作が可能です.

基本的なインターフェースは次のように, [sub-command]にコマンドを指定し, 必要なインプットファイルやオプションを指定します. 指定したコマンドに応じて, 機能や有効なオプション(flags)が切り替わります.

結果は標準出力に出力されます(オプション指定で変更もできます).

$ ringo [sub-command] [flags] inputfiles > outputfile

RINGO は inputfiles に指定されたファイルを読み込み, 結果を標準出力に出力します. inputfiles には複数のファイルを指定可能です.

基本的な使用方法を見てみます.

次に示すのは, 二つの RINEX ファイルを結合する例です.
ファイル編集に用いるコマンド merge を用いて, rinex1, rinex2 という二つの RINEX ファイルを結合し, rinex_merged というファイルに保存します.

$ ringo merge rinex1 rinex2 > rinex_merged

また, オプション ‘-o’ を指定し出力ファイルを指定することもできます.

$ ringo merge rinex1 rinex2 -o rinex_merged

それぞれのコマンドの全てのオプションは, ’--help’ オプションで確認することができます.

$ ringo [sub-command] --help

インプットファイル

インプットファイルは, RINEX ファイル(観測データファイル, 衛星軌道情報ファイル), IGS IONEX ファイル(電離層高次項補正ファイル)のいずれかを指定することができます(データ変換に用いるバイナリファイルを除く). ファイル形式は与えたファイルのヘッダー情報から自動的に判別されます.

上記ファイルを圧縮したものも直接読み込むことができます. サポートしている形式は, ‘compress (.Z)’, ‘zip (.zip)’, ‘gzip (.gz)’, ‘bzip2 (.bz2)’ です. また, 衛星軌道情報ファイルについては, ’tar’ でアーカイブされたもの(例えば, 国土地理院が提供している ‘.tar.gz’ でアーカイブされた複数の衛星軌道情報ファイル)も読み込み可能です.

さらに, PATH に ‘CRX2RNX’ コマンドが存在している場合は, Compact RINEX ファイル(‘Hatanaka RINEX’, ‘Hatanaka compressed file’等とも呼ばれます)の読み込みも可能です.

下記にいくつか例を示します.

$ ringo merge rinex_obs1.o rinex_obs2.o.gz > rinex_merged  // compressed file
$ ringo merge rinex_obs1.o rinex_obs2.d    > rinex_merged  // hatanaka compressed file
$ ringo merge rinex_nav.tar.bz2            > rinex_nav.p   // tar archived navigation file

* 以前の ringo v0.8.5 では, Compact RINEX ファイルを読み込むには PATH に “CRX2RNX” コマンドが存在している必要がありましたが, v0.9.0 以降は直接読み込みがサポートされました. この機能は crinex ライブラリに依存しています.

コマンド一覧の表示

$ ringo help

上記コマンドを実行するとコマンド一覧が表示されます.

.....
Usage:
  ringo [command]

Available Commands:
  bingo       Convert a BINEX file to RINEX files
  cal         Displays a GNSS calendar
  clkcorr     Correct obs rinex by timetag smoothing
  completion  Generate the autocompletion script for the specified shell
  genconf     Generate a default conf file
  help        Help about any command
  ioncorr     Correct ionospheric delay of rinex obs file
  merge       Merge observation or navigation RINEX files
  qc          Quality check of a rinex obs file
  rnxcsv      Convert RINEX files to csv format
  rtcmgo      Convert a RTCM3 file to RINEX files
  version     Show version
  viewer      Generate a HTML5-based viewer

.....
Use "ringo [command] --help" for more information about a command.

それぞれのコマンドのヘルプは, ‘--help’ オプションで表示することができます.

$ ringo [command] --help

例えば, 下記は bingo コマンドのヘルプを表示した例です.

$ ringo bingo --help
Convert a BINEX file to RINEX files
        Currently supports 0x01 ephemerides and 0x7f-05 observations.

Example:

  convert a BINEX file to RINEX obs and nav files.
  >> ringo bingo --outobs rinexobs --outnav rinexnav binex
  .....

コマンドリファレンス

ringo

ringoRINGO のメインコマンドです. それぞれの機能は, ringo の第一引数にコマンドとして与えることで呼びだされます. RINGO のフラグには, 共通で用いられるフラグと, それぞれのコマンド固有のものがあります.

下記は共通フラグの一覧です.

Flag Shorthand Description
--config use a config file (default is $HOME/.ringo.yaml)
--debug enable debug print to stderr [default: false]
--help -h show help for ringo
--etime -e end of time window (e.g. ‘2017/01/01 15:00:00’) (default “2099/12/31 23:59:59”)
--stime -s start of time window (e.g. ‘2017/01/01 03:00:00’) (default “1980/01/06 00:00:00”)
--exclPRN list of PRN to exclude (e.g. ‘G01,G02’) [default: ‘’]
--exclSat list of satsys to exclude (e.g. ‘G’, ‘REJ’) [default: ‘’]
--inclPRN list of PRN to include (e.g. ‘G01,G02’) [default: ‘’]
--inclSat list of satsys to include (e.g. ‘G’, ‘REJ’) [default: ‘’]
--interval time interval to output (seconds)
--outfile -o output file [default: STDOUT]
--outver RINEX version to output, e.g., ‘4.00’
--sort sort timetag and PRN [default: false]
--ignore-skipped-lli ignore skipped LLI flags by the interval change [default: false]
--seconds-keep-lli seconds to keep skipped LLI flags (seconds) [default: 3600].
If data is thinned out with the “--interval” option, the LLI flag of the data is held for the duration specified here and is set for the next output.
--toggle -t help message for toggle
--verbose -v enable verbose print to stderr [default: false]
--version show version for ringo

merge

merge コマンドは, RINEX ファイルの結合や編集を行います. 例えば, ファイルの切り抜き, 時刻・衛星のソート, ヘッダー編集, 特定の信号種別の抜き出し等基本的な編集機能を備えています.

出力されるヘッダー情報は, 基本的にはコマンドラインで最初に与えられたファイルの内容を踏襲しますが, 下記に示すいくつかのヘッダー情報は出力時のファイル内容に応じて自動的に変更されます.

Header label Description
VERSION The output version will be the same as the version of the first file unless you choose otherwise in the option
TIME OF FIRST OBS automatically modified according to the data period of the merged file
TIME OF LAST OBS automatically modified according to the data period of the merged file. Note that the “TIME OF LAST OBS” is an optional, but RINGO always outputs this header.
INTERVAL automatically modified according to the data interval. Currently RINGO determines the interval as the most frequently occurred time interval in the merged file.
# / TYPES OF OBSERV The obstypes will change according to the contents of the file contents after the merge.
SYS / # / OBS TYPES Same as the “# / TYPES OF OBSERV”

options

Flag Shorthand Description
--obstypes -t mask of obscodes (e.g. ‘C1C,L1C,L2X&R:S1C,C1P&E:L5X’) [default: ‘’]
--deepMerge deeply merge RINEX observation files including PRN, obstypes within overlapping timetags [default: false]
--phaseshift apply phase shift correction (example)
--help -h show help for merge
--h.add-new-record add new optional headers if possible
--h.agency string set agency
--h.ante string set antenna dE
--h.anth string set antenna dH
--h.antn string set antenna dN
--h.antnum string set antenna number
--h.anttype string set antenna type
--h.aprx string set approximate pos x
--h.apry string set approximate pos y
--h.aprz string set approximate pos z
--h.doi string set DOI for data citation
--h.license string set License (separator ‘;’ for multiple lines)
--h.mname string set monument name
--h.mtype string set monument type
--h.no-inpfiles do not show input files in the header
--h.observer string set observer
--h.recnum string set receiver number
--h.rectype string set receiver type
--h.recver string set receiver version
--h.stainfo string set Station Information (’;’ for multiple lines)

Examples

下記はファイル結合の例です.

$ ringo merge 02550010.21o 02550020.21o > 02550010_merged.21o
$ ringo merge 025500[12]0.21o           > 02550010_merged.21o

圧縮ファイルを解凍することもできます.

$ ringo merge 02550010.21o.gz           > 02550010.21o
$ ringo merge 02550010.21o.bz2          > 02550010.21o

Compact RINEX ファイルも同様に扱うことが可能です.
(ただし PATH に ‘CRX2RNX’ が存在する場合のみ)

$ ringo merge 02550010.21d.gz           > 02550010.21o

下記は衛星軌道情報ファイルの結合の例です.
使用しているシェルに依存しますが, ワイルドカードを使用することもできます.

$ ringo merge ????0010.21n              > merg0010.21n

国土地理院で提供している衛星軌道情報ファイルは, 複数の衛星軌道情報ファイルが tar でアーカイブされています. このようなファイルも同様に扱うことができます.

$ ringo merge 02550010.21N.tar.gz       > 02550010.21p

ヘッダー情報の編集の例です.

$ ringo merge 02550010.21d.gz --h.agency GSI  --h.observer Kawamoto > 02550010.21o

ある期間のデータを切り出すこともできます.
次に示すのは, “2021/01/01 01:00:00” から “2021/01/01 02:00:00” の間のデータのみを切り出す例です.

$ ringo merge --stime "2021/01/01 01:00:00" --etime "2021/01/01 02:00:00" 02550010.21o > 02550010_clip.21o

ある信号種別のみを切り出すこともできます.
次に示すのは, L1 と L2 の信号のみを切り出す場合の例です.
例に示すように, ‘--obstypes’ オプションに続けて切り出す信号名をコンマ区切りで指定します.

$ ringo merge --obstypes "L1,L2" 02550010.21o > 02550010_l1l2.21o 

ある衛星系のみ異なる信号種別を指定することもできます.
最初に “GRJECS” のいずれかと “:” により衛星系を指定し, 複数の衛星系の設定を “&” でつなげて指定することができます. (G: GPS, J: QZSS, E: Galileo, R: GLONASS, C: Beidou, S: SBAS)

次に示すのは, GPS のみ L2X と L5X を切り出し, 他の衛星系については L1C を切り出す例です.

$ ringo merge --obstypes "L1C&G:L2X,L5X" 02550010.21o > 02550010_m.21o 

特定の衛星系のデータのみを切り出すこともできます.
特定の衛星系のみを含める場合は ‘--inclSat’ を, 特定の衛星系のみを除外する場合は ‘--exclSat’ を用いて, “GRJECS” の組み合わせを指定します.

$ ringo merge --inclSat "G" 02550010.21o > 02550010_G.21o      # GPS only file
$ ringo merge --inclSat "GJ" 02550010.21o > 02550010_GJ.21o    # GPS and QZSS
$ ringo merge --exclSat "G" 02550010.21o > 02550010_noGPS.21o  # no GPS 

特定の衛星のみを切り出すには, ‘--inclPRN’, ‘--exclPRN’ を用います.
衛星系と衛星IDにより指定します. コンマ区切りで複数指定することができます.

$ ringo merge --inclPRN "G01,G02" 02550010.21o > 02550010_G01G02.21o  # only G01 and G02  
$ ringo merge --exclPRN "G01,G02" 02550010.21o > 02550010_G01G02.21o  # without G01 and G02

データ間隔の変更も可能です. ‘--interval’ オプションにデータ間隔を秒単位で指定します. (現在, 1秒よりも短い間隔はサポートしていません)

$ ringo merge --interval 60  02550010.21o > 02550010_60s.21o

次に示すのは, データをソートする例です. ‘--sort’ オプションを付与すると, タイムタグ及び衛星順がソートされます.

$ ringo merge --sort 02550010.21o > 02550010_sorted.21o

上記コマンドによりソートすると, データは次のようになります.

> 2021 01 01 00 00  0.0000000  0 31
G05  21697284.266   114019997.871 7     -2085.000          46.700    21697290.6094   88846772.50546     -1624.6764
G13  20934053.969   110009159.077 8     -1751.844          49.100    20934059.5314   85721462.52546     -1365.0704
G14  24505154.219   128775502.796 6       613.117          39.200    24505160.5594  100344544.64143       477.7544
G15  20366192.609   107025043.761 8       544.027          51.300    20366198.4884   83396175.49049       423.9184
G18  21709562.883   114084519.671 7      1345.543          44.600    21709568.6414   88897037.58246      1048.4774
G20  23553429.875   123774104.162 6      3244.309          38.400    23553435.1254   96447392.24343      2528.0314
G23  23850618.016   125335843.457 6      3100.906          39.800    23850624.1374   97664324.07344      2416.2894
G24  21628936.797   113660828.469 7      3088.203          44.900    21628945.8284   88566938.42948      2406.3914
...
“--phaseshift” オプション(サイクルシフト補正の適用)

“--phaseshift” オプションを用いて, 衛星種別毎に搬送波位相を修正することができます. 受信機種別の違い等によって出力される RINEX ファイルの搬送波位相が1/4サイクル単位でずれることがありますが, このような場合に個別に修正することができます. (このオプションは, “merge” 以外のコマンドでも利用可能です.)

設定ファイルの例は下記のとおりです.

example.tbl:
// phase shift table for ringo software
//
// lines beginning with "//" are comments.
//
//
//G:
//    L1X: -0.25, L2X: 0.25
//R:
//    L1X: -0.25, L2X: 0.25
//J:
//    L1X: -0.25, L2X: 0.25
//E:
//    L1X: -0.25, L2X: 0.25
//

// apply phase cycle shifts to satellite system wide:
G  :L1X -0.25, L2X 0.25,

// apply phase cycle shifts to each satellite individually:
G01:L1C -0.25, L2X -0.25,
G02:L1C -0.25, L2X -0.25,

このようなテーブルを “--phaseshift” オプションに続けて指定することで, サイクルシフト補正を適用させることができます.

$ ringo merge --phaseshift example.tbl 02550010.21o > 02550010_mod.21o

qc

qc はRINEX 観測データファイルの品質をチェックします.
観測エポック数や観測データ数, それぞれの信号毎の観測データ数, マルチパス誤差, サイクルスリップ数等をまとめて表示します.

Examples

$ ringo qc 02550010.21o 02550010.21n > qc.log
$ ringo qc 02550010.21d.gz 02550010.21N.tar.gz > qc.log

clkcorr

clkcorr は RINEX 観測データファイルに含まれるクロックジャンプを補正します. これによって, データの時計誤差を変えることなく一定間隔のタイムタグに揃えたり, 観測データにジャンプが発生しないように補正することができます(この場合はタイムタグが不揃いになります).

デフォルトでは, 一定間隔のタイムタグとなるようクロックジャンプが補正されます. (この振る舞いは teqc ソフトウェアの ‘-smtt’ オプションと同様のものです.)

また, ‘--smpr’ オプションの指定により, 観測データにクロックジャンプが含まれないような振る舞いに切り替えることも可能です. この場合は, タイムタグにミリ秒単位のクロックジャンプが蓄積されたデータとなります.

Examples

$ ringo clkcorr        XXXXXXXX.XXo  >  timetagSmoothed_RINEX
$ ringo clkcorr --smpr XXXXXXXX.XXo  >  rangeSmoothed_RINEX

ioncorr

ioncorr は GNSS 信号への電離層遅延の影響を補正します. 一次項及び二次項の影響を補正することができます. 補正には, 衛星軌道情報ファイルに加え, IGS から提供されている IONEX ファイルが必要です.

Examples

以下は, 電離層遅延の影響を補正した例です.

一つ目は, 一次項の影響を取り除いた例です. オプションに ‘-1’ を指定すると一次項の影響が取り除かれます.
二つ目は, 一次項に加え二次項の影響を取り除いた例です. オプションに ‘-2’ を指定すれば二次項の影響を取り除くことができます.

// remove the 1st order effect
$ ringo ioncorr -1    02550010.21o 02550010.21N.tar.gz igsg0010.21i > 02550010_1.21o

// remove both the 1st and 2nd order effects
$ ringo ioncorr -1 -2 02550010.21o 02550010.21N.tar.gz igsg0010.21i > 02550010_12.21o

viewer

viewer は HTML5 ベースのインタラクティブなビューワーを出力します.

RINEX 観測データ用, 品質チェック用の二種類に対応しています.

Examples

一つ目は, 観測データ用のビューワーを出力した例です.
二つ目は, 品質チェック用のビューワーを出力した例です.

$ ringo viewer          02550010.21o > 02550010_21o.html
$ ringo viewer --qcmode 02550010.21o > 02550010_21o_qc.html

rnxcsv

rnxcsv は RINEX 観測データファイルを csv 形式で出力します. それぞれの衛星毎に, 観測コード毎に区切られた csv ファイルが出力されます.

出力する際に, “--outdir” オプションで衛星毎にファイル分割して出力することや, 衛星軌道情報ファイルを追加で与えることで方位角と仰角を追加で出力することもできます.

また, “--qcmode” オプションを付与することで品質評価結果を時系列で出力することもできます.

そのほか, 区切り文字の変更 ("--sep"), 空白削除 ("--no-space"), ヘッダ行削除 ("--no-header") 等のオプションにより出力形式の変更が可能です.

Examples

次に示すのは, RINEX 観測データファイルを csv 形式で出力する例です.

// output a csv file containing all satellites
$ ringo rnxcsv obsfile > rnx.csv

// output csv files to an output directory and csv files are output separetely for each satellite
$ ringo rnxcsv obsfile --outdir ./out

// output a csv file that also includes azimuth and elevation angles by additional navigatin file
$ ringo rnxcsv obsfile navfile > rnx.csv

rnxcsv” コマンドを実行すると下記のような内容が出力されます.

> PRN,                    time,      az,     el,            C1C,            L1C,            D1C,            S1C,            C2W,            L2W,            D2W,            S2W,            C2X,            L2X,            D2X,            S2X,            C5X,            L5X,            D5X,            S5X
  G01, 2021-01-01 11:04:30.000,  196.84,   5.70,   24885503.563,  130773983.465,       4048.820,         30.700,               ,               ,               ,               ,               ,               ,               ,               ,               ,               ,               ,               
  G01, 2021-01-01 11:05:00.000,  196.84,   5.90,   24862386.023,  130652698.591,       4050.078,         31.300,   24862396.988,  101807359.859,       3155.906,         25.100,   24862396.621,  101807311.887,       3155.906,         34.800,   24862392.668,   97565339.833,       3024.410,         41.100
  G01, 2021-01-01 11:05:30.000,  196.84,   6.11,   24839260.133,  130531173.631,       4051.367,         32.900,   24839271.230,  101712665.530,       3156.910,         27.100,   24839271.102,  101712617.554,       3156.910,         36.100,   24839266.750,   97474591.196,       3025.371,         40.900
  G01, 2021-01-01 11:06:00.000,  196.83,   6.31,   24816128.070,  130409613.174,       4052.227,         33.200,   24816139.004,  101617943.573,       3157.578,         28.300,   24816138.402,  101617895.580,       3157.578,         36.400,   24816133.836,   97383816.091,       3026.012,         41.600
  G01, 2021-01-01 11:06:30.000,  196.83,   6.52,   24792989.375,  130288019.850,       4053.562,         33.000,   24793000.121,  101523195.994,       3158.621,         28.300,   24792999.586,  101523148.008,       3158.621,         37.200,   24792994.977,   97293016.432,       3027.012,         42.000
...

rnxcsv” は “--qcmode” オプションにより, 品質評価結果の時系列を出力することもできます.

// output quality check results to a csv file
$ ringo rnxcsv obsfile navfile --qcmode > rnx.csv 

この場合は, 下記のような内容が出力されます.

> PRN,                    time,      az,     el,            MP1,            MP2,            MP5,             GF,             MW,           IOD1, s1, s2, s5, sg, sm, si
  G01, 2021-01-01 11:05:00.000,  196.84,   5.90,          0.524,          0.150,          0.093,        -15.203,        -62.609,        -38.704,   ,   ,   ,   ,   ,   
  G01, 2021-01-01 11:05:30.000,  196.84,   6.11,          0.401,          0.268,          0.074,        -15.312,        -62.591,        -38.981,   ,   ,   ,   ,   ,   
  G01, 2021-01-01 11:06:00.000,  196.83,   6.31,          0.884,          0.704,         -0.151,        -15.429,        -63.054,        -39.277,   ,   ,   ,   ,  *,   
  G01, 2021-01-01 11:06:30.000,  196.83,   6.52,          0.981,          0.727,         -0.076,        -15.542,        -63.118,        -39.567,   ,   ,   ,   ,   ,   
 ...

“--qcmode” で出力した結果の中で, アスタリスク “*” はサイクルスリップが検出されたタイミングを示しています. それぞれ MP1 (s1), MP2 (s2), MP5 (s5), GF (sg), MW (sm), IOD (si) 線型結合において検出された結果を示しています.

bingo

bingo は BINEX 形式のバイナリデータを RINEX ファイルに形式変換します.

RINEX 観測データを出力する場合は ‘--outobs’ の後に出力ファイル名を, RINEX 衛星軌道情報データを出力する場合は ‘--outnav’ の後に出力ファイル名を指定します.

Examples

次に示すのは, BINEX 形式のバイナリデータを RINEX 観測データファイルと衛星軌道情報ファイルに形式変換する例です.

$ ringo bingo 02550010_21.bnx --outobs 02550010.21o --outnav 02550010.21p

rtcmgo

rtcmgo は RTCM 形式のバイナリデータを RINEX ファイルに形式変換します.

RINEX 観測データを出力する場合は ‘--outobs’ の後に出力ファイル名を, RINEX 衛星軌道情報データを出力する場合は ‘--outnav’ の後に出力ファイル名を指定します.

Examples

次に示すのは, RTCM 形式のバイナリデータを RINEX 観測データファイルと衛星軌道情報ファイルに形式変換する例です.

$ ringo rtcmgo 02550010_21.rtcm --outobs 02550010.21o --outnav 02550010.21p

completion

completion は bash, fish, powershell, zsh のいずれかに対応したシェル補完スクリプトを出力します. この機能を利用することで, ringo 使用時にそれぞれのコマンドやオプション(フラグ)が tab キーにより補完されるようになります.

次のように使用するシェルに対応した補完スクリプトを出力します.

$ ringo completion [ bash | fish | powershell | zsh ] > completion

* この機能はライブラリとして用いている cobra に依存しており, 今後のサポートは cobra の開発状況に依存します.

Examples

次に示すのは, bash 用のシェル補完スクリプトを導入する例です.

$ ringo completion bash > completion.bash

そして, .bashrc等に下記を書き込みます.

$ source completion.bash

すると, ringo 使用時に tab 補完が適用されるようになります.

$ ringo merge --h.[tab]
--h.add-new-record  (add new optional headers if possible)
--h.agency          (set agency)
--h.ante            (set antenna dE)
--h.anth            (set antenna dH)
--h.antn            (set antenna dN)
--h.antnum          (set antenna number)
--h.anttype         (set antenna type)
--h.aprx            (set approximate pos x)
--h.apry            (set approximate pos y)
--h.aprz            (set approximate pos z)
--h.doi             (set DOI for data citation)
--h.license         (set License (separator ';' for multiple lines))
--h.mname           (set monument name)
--h.mtype           (set monument type)
--h.no-inpfiles     (do not show input files in the header)
--h.observer        (set observer)
--h.recnum          (set receiver number)
--h.rectype         (set receiver type)
--h.recver          (set receiver version)
--h.stainfo         (set Station Information (';' for multiple lines))

その他のシェルにおいて tab 補完を有効にする方法は completion コマンドのヘルプで設定例を確認することができます.

$ ringo completion --help

cal

cal は GNSS カレンダーを表示します. 通常のカレンダーに加えて GNSS 週や年通算日が表示されます.

デフォルトでは, cal は現在の月の GPS カレンダーを表示します. 月や年が引数で与えられた場合は, その月や年の GNSS カレンダーを表示します. 引数に年のみが与えられた場合は, その年1年分の, “-3” オプションを指定すると, 指定した月の前後含めた3か月分の表示になります. また, “--satsys” オプションで衛星系を指定すると, 表示される GNSS 週をその衛星系のものに切替えることができます.

Usage

$ ringo cal [Flags] [[month] year]

flags:
  -h, --help help for gnsscal
  -n, --hoff turns off highlight of today [default: highlight on]
  -3         three-month layout that displays previous, current and next months
  --satsys   satellite system of GNSS week; 'GPS', 'QZS', 'GAL', 'BDS', or 'GLO' [default: GPS]

Examples

// Display the GNSS calendar for current month
$ ringo cal 
GPS           October 2023
Week   Sun Mon Tue Wed Thu Fri Sat
2282     1   2   3   4   5   6   7
       274 275 276 277 278 279 280
2283     8   9  10  11  12  13  14
       281 282 283 284 285 286 287
2284    15  16  17  18  19  20  21
       288 289 290 291 292 293 294
2285    22  23  24  25  26  27  28
       295 296 297 298 299 300 301
2286    29  30  31
       302 303 304

// Display the calendar for a specific month, e.g. January 2023 
$ ringo cal 1 2023
GPS           January 2023
Week   Sun Mon Tue Wed Thu Fri Sat
2243     1   2   3   4   5   6   7
       001 002 003 004 005 006 007
2244     8   9  10  11  12  13  14
       008 009 010 011 012 013 014
2245    15  16  17  18  19  20  21
       015 016 017 018 019 020 021
2246    22  23  24  25  26  27  28
       022 023 024 025 026 027 028
2247    29  30  31
       029 030 031