📡

GPS-SDR-SIMを動かしてみる

に公開1

gps-sdr-simなるものを動かす必要があるのでトライ。

https://github.com/osqzss/gps-sdr-sim

Windows 11 Pro 24H2上のDocker (Rancher Desktop利用)で実行。VSCodeとDev Containersを使いました。

dockerfile
FROM ubuntu:jammy-20250714

WORKDIR /app
RUN apt-get update && apt-get install -y \
    git \
    gcc \
    make
git clone git@github.com:osqzss/gps-sdr-sim.git
cd gps-sdr-sim/
gcc gpssim.c -lm -O3 -o gps-sdr-sim

gps-sdr-simが生成される。

gps-sdr-simを使った例が4つREADMEにあるので試してみる。

1

READMEではbrdc3540.14nというファイルを利用しているが、リポジトリ内にはbrdc0010.22nしかないのでこちらで実行してみる。

./gps-sdr-sim -e brdc0010.22n -u circle.csv
xyz =  -3813478.0,   3554276.6,   3662785.2
llh =   35.274016,  137.014864,       100.0
Start time = 2022/01/01,00:00:00 (2190:518400)
Duration = 300.0 [sec]
05  129.2  36.7  22319060.1   4.1
10  313.5   8.9  25004733.6   4.2
12  167.5   6.2  25174725.3   9.4
13   55.8  35.6  22272560.8   3.8
14   48.4  11.7  24548460.8   6.4
15   30.8  62.9  20444304.8   2.5
18  258.7  44.6  21643944.4   3.0
20  136.1   8.9  24672712.3   8.8
23  316.8  41.1  21928711.3   3.0
24  216.3  68.6  20211128.4   2.5
28   66.5  19.9  23936574.0   5.6
Time into run = 300.0
Done!
Process time = 54.1 [sec]

circle.csvが生成された。

wc circle.csv
  3000   9000 135000 circle.csv
head circle.csv 
  0.0,-3813477.954, 3554276.552, 3662785.237
  0.1,-3813477.599, 3554276.226, 3662785.918
  0.2,-3813477.240, 3554275.906, 3662786.598
  0.3,-3813476.876, 3554275.590, 3662787.278
  0.4,-3813476.508, 3554275.280, 3662787.958
  0.5,-3813476.135, 3554274.975, 3662788.638
  0.6,-3813475.757, 3554274.675, 3662789.318
  0.7,-3813475.375, 3554274.381, 3662789.997
  0.8,-3813474.988, 3554274.091, 3662790.676
  0.9,-3813474.597, 3554273.807, 3662791.355

2

./gps-sdr-sim -e brdc0010.22n -x circle_llh.csv
xyz =  -3813478.0,   3554276.6,   3662785.2
llh =   35.274016,  137.014864,       100.0
Start time = 2022/01/01,00:00:00 (2190:518400)
Duration = 300.0 [sec]
05  129.2  36.7  22319060.1   4.1
10  313.5   8.9  25004733.6   4.2
12  167.5   6.2  25174725.3   9.4
13   55.8  35.6  22272560.8   3.8
14   48.4  11.7  24548460.8   6.4
15   30.8  62.9  20444304.8   2.5
18  258.7  44.6  21643944.4   3.0
20  136.1   8.9  24672712.3   8.8
23  316.8  41.1  21928711.3   3.0
24  216.3  68.6  20211128.4   2.5
28   66.5  19.9  23936574.0   5.6
Time into run = 300.0
Done!
Process time = 49.8 [sec]

circle_llh.csvが生成された。

wc circle_llh.csv 
  3000  12000 144000 circle_llh.csv
head circle_llh.csv 
  0.0, 35.274015965, 137.014864092,      99.999
  0.1, 35.274023485, 137.014864053,      99.999
  0.2, 35.274030991, 137.014863935,      99.999
  0.3, 35.274038502, 137.014863748,      99.998
  0.4, 35.274046007, 137.014863483,      99.999
  0.5, 35.274053514, 137.014863140,      99.999
  0.6, 35.274061021, 137.014862720,      99.999
  0.7, 35.274068516, 137.014862221,      99.999
  0.8, 35.274076015, 137.014861652,      99.999
  0.9, 35.274083508, 137.014861006,      99.999

3

./gps-sdr-sim -e brdc0010.22n -g triumphv3.txt
xyz =   4199583.9,    168160.5,   4781370.2
llh =   48.874438,    2.293023,       -21.3
Start time = 2022/01/01,00:00:00 (2190:518400)
Duration = 156.1 [sec]
01  254.3  15.1  23932062.9   3.6
07  280.5   5.9  25035194.4   4.5
08  298.9  72.8  20437818.7   1.5
10   77.0  55.9  21222624.9   1.8
16  182.4  27.0  23306704.4   2.8
21  262.5  44.3  21844762.2   2.0
22  208.1   5.4  25011796.1   4.5
23   47.9  27.8  22982896.0   2.8
27  120.0  70.6  20480362.9   1.6
30  306.5   6.8  25009466.8   4.4
32  125.3   9.2  24880768.3   4.1
Time into run = 156.1
Done!
Process time = 17.3 [sec]

triumphv3.txtが生成された。

wc triumphv3.txt 
  1561   1561 131124 triumphv3.txt
head triumphv3.txt 
$GPGGA,000000.00,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*5E
$GPGGA,000000.10,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*5F
$GPGGA,000000.20,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*5C
$GPGGA,000000.30,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*5D
$GPGGA,000000.40,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*5A
$GPGGA,000000.50,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*5B
$GPGGA,000000.60,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*58
$GPGGA,000000.70,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*59
$GPGGA,000000.80,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*56
$GPGGA,000000.90,4852.46626694,N,00217.58140440,E,1,05,2.87,+0.00,M,-21.3213,M,,*57

4

./gps-sdr-sim -e brdc0010.22n -l 30.286502,120.032669,100
Using static location mode.
xyz =  -2758918.6,   4772301.1,   3197889.4
llh =   30.286502,  120.032669,       100.0
Start time = 2022/01/01,00:00:00 (2190:518400)
Duration = 300.0 [sec]
05  109.5  25.1  23283558.2   4.4
10  310.8  16.7  24209283.1   3.5
12  152.7   6.0  25200320.7   8.4
13   50.4  19.4  23690870.6   4.1
15   39.1  47.4  21230331.2   2.3
18  251.6  63.3  20658941.9   1.9
20  122.4   0.8  25557150.3  10.3
23  327.4  47.1  21529836.4   2.1
24  143.5  76.2  20016388.8   1.9
28   58.3   4.2  25558524.3   6.5
29  202.2   1.5  25614176.8   8.2
32  256.0   2.5  25602718.7   4.8
Time into run = 300.0
Done!
Process time = 64.4 [sec]

入力ファイルからコマンドの意味、出力結果...諸々なにもわかってない(-_-;

Discussion

キクタローキクタロー

brdcファイル

https://forum.earthdata.nasa.gov/viewtopic.php?t=388

ファイルhttps://cddis.gsfc.nasa.gov/archive/gnss/data/daily/ yyyy / ddd / yy n/brdc ddd 0. yy n.Z (yyyyは4桁の年、dddは3桁の通算日、yyは2桁の年)は、毎日放送されるエフェメリスファイルです。このファイルは、個々のサイトナビゲーションファイルを1つの冗長性のないファイルに統合したもので、ユーザーは多数の個別のナビゲーションファイルの代わりに使用できます。これらのファイルは、以下の年別サブディレクトリにも保存されています。https://cddis.nasa.gov/archive/gnss/data/daily/ yyyy /brdc/。