📡
GPS-SDR-SIMを動かしてみる
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://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/。