gps_pvt 0.4.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -220,6 +220,444 @@ __RINEX_OBS_TEXT__
220
220
  end
221
221
  f.path
222
222
  },
223
+ :sp3 => Tempfile::open{|f|
224
+ f.write(<<-__SP3_TEXT__)
225
+ #cP2015 6 16 0 0 0.00000000 96 ORBIT IGb08 HLM IGS
226
+ ## 1849 172800.00000000 900.00000000 57189 0.0000000000000
227
+ + 32 G01G02G03G04G05G06G07G08G09G10G11G12G13G14G15G16G17
228
+ + G18G19G20G21G22G23G24G25G26G27G28G29G30G31G32 0 0
229
+ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
230
+ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
231
+ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
232
+ ++ 2 2 2 2 2 2 2 0 2 2 2 3 2 2 2 2 2
233
+ ++ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0
234
+ ++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
235
+ ++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
236
+ ++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
237
+ %c G cc GPS ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
238
+ %c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
239
+ %f 1.2500000 1.025000000 0.00000000000 0.000000000000000
240
+ %f 0.0000000 0.000000000 0.00000000000 0.000000000000000
241
+ %i 0 0 0 0 0 0 0 0 0
242
+ %i 0 0 0 0 0 0 0 0 0
243
+ /* FINAL ORBIT COMBINATION FROM WEIGHTED AVERAGE OF:
244
+ /* cod emr esa gfz grg jpl mit ngs sio
245
+ /* REFERENCED TO IGS TIME (IGST) AND TO WEIGHTED MEAN POLE:
246
+ /* PCV:IGS08_1848 OL/AL:FES2004 NONE Y ORB:CMB CLK:CMB
247
+ * 2015 6 16 0 0 0.00000000
248
+ PG01 21477.204419 11282.581331 10982.666329 -4.224052 10 9 5 88
249
+ PG02 -12947.386225 -21737.519960 9157.412040 572.334531 11 9 9 92
250
+ PG03 15091.272344 2635.335027 21713.458097 350.710803 5 7 5 106
251
+ PG04 19856.311038 17713.928768 1945.134852 -19.579715 8 4 7 110
252
+ PG05 -5028.958918 -21535.647757 -14619.836324 -228.975511 6 6 8 130
253
+ PG06 43.183960 -18726.862044 18839.608728 185.417169 9 5 7 118
254
+ PG07 17287.852835 -1614.468072 -20102.036060 468.894353 7 6 9 116
255
+ PG08 -7526.428030 25336.071960 -245.225055 999999.999999
256
+ PG09 25592.191216 -7119.852791 -684.470086 -170.790925 11 4 5 85
257
+ PG10 8847.115692 -24659.480635 2225.055266 -179.067962 9 6 9 88
258
+ PG11 24364.312740 10558.140769 1439.121385 -585.254884 12 9 7 95
259
+ PG12 -13123.844385 -6477.031146 22071.429026 301.796773 8 9 10 93
260
+ PG13 -9339.292125 -13217.275814 -21176.552360 -123.730302 9 9 8 122
261
+ PG14 -14836.144028 14380.662771 16842.481371 55.763000 11 5 8 126
262
+ PG15 -20449.064495 -6178.529584 -16069.113276 -255.187297 9 9 9 125
263
+ PG16 2754.103102 21634.705923 -14967.352446 -118.509573 7 9 5 100
264
+ PG17 14291.286810 -14775.679540 16998.771557 -176.046900 8 5 7 115
265
+ PG18 -14912.214427 16679.406498 -13581.838805 409.684054 10 7 9 95
266
+ PG19 18186.236969 9260.919982 -17444.978749 -513.455728 8 7 9 109
267
+ PG20 -13708.481723 -10140.408823 -20549.806986 329.972500 8 9 6 117
268
+ PG21 -16310.214424 4505.474102 -19851.246022 -455.613502 9 7 5 121
269
+ PG22 -9140.171474 24554.172420 -3496.039791 361.363708 8 5 8 126
270
+ PG23 25005.294805 917.699796 9692.016699 -115.088944 9 8 7 104
271
+ PG24 -21619.917392 -13093.113260 8361.648626 -49.986148 9 11 10 115
272
+ PG25 -15926.363688 8086.632412 19499.639094 -2.293761 9 7 6 117
273
+ PG26 -3444.306835 25822.029845 -5170.649066 28.992311 7 3 5 115
274
+ PG27 7030.047838 13625.959589 -21718.367990 -2.586803 9 8 8 112
275
+ PG28 12589.599269 -22200.918417 -6564.241144 447.108354 7 6 9 106
276
+ PG29 -26145.500336 4393.700952 1101.532432 616.888621 9 5 7 126
277
+ PG30 9603.268484 -12222.107844 -21542.569444 -42.995526 7 6 7 110
278
+ PG31 2516.152098 20041.355033 17195.270451 312.823331 6 7 9 101
279
+ PG32 7816.149081 17455.765714 18623.743215 -124.425901 7 7 6 87
280
+ * 2015 6 16 0 15 0.00000000
281
+ PG01 22125.898696 12210.710646 8434.382990 -4.223620 10 8 5 92
282
+ PG02 -11951.321019 -21155.258586 11604.487814 572.336520 11 8 8 105
283
+ PG03 14493.617968 5043.109433 21691.742487 350.717279 5 7 5 110
284
+ PG04 19726.940481 17995.510562 -852.233761 -19.581230 8 5 7 100
285
+ PG05 -4433.415203 -22986.447296 -12414.534400 -228.971826 6 6 8 129
286
+ PG06 1730.013897 -17267.497150 20110.925682 185.424997 8 5 6 117
287
+ PG07 18796.845135 34.482430 -18810.071658 468.896277 8 6 9 104
288
+ PG08 -7688.377243 25126.780691 2663.720428 999999.999999
289
+ PG09 25584.496369 -6843.675160 2162.214539 -170.794879 10 5 5 104
290
+ PG10 9066.202161 -24124.908678 5023.880148 -179.068357 9 6 9 95
291
+ PG11 24246.405305 10980.607409 -1269.558391 -585.257201 11 8 7 103
292
+ PG12 -12391.481603 -8883.994994 21674.458648 301.799930 8 9 9 94
293
+ PG13 -6955.547005 -13679.190935 -21805.910302 -123.733389 9 8 7 121
294
+ PG14 -16610.996969 14579.862564 14855.386958 55.760359 10 5 7 123
295
+ PG15 -18694.826324 -6973.975468 -17769.669719 -255.189168 9 9 9 128
296
+ PG16 2129.074463 23092.067912 -12674.278891 -118.505842 7 8 5 111
297
+ PG17 16065.480708 -15044.473471 15011.389296 -176.048587 8 5 7 109
298
+ PG18 -14804.612202 14891.262012 -15586.058534 409.686464 10 7 9 109
299
+ PG19 16206.849722 9737.602172 -19039.158930 -513.456824 6 7 9 112
300
+ PG20 -13210.049028 -12362.603203 -19622.713070 329.975853 8 9 6 113
301
+ PG21 -17947.302833 2815.947196 -18790.297528 -455.616542 9 6 5 125
302
+ PG22 -9371.981345 23899.167229 -6208.337263 361.366953 7 5 8 125
303
+ PG23 23895.554890 1459.524021 12116.482481 -115.090983 8 8 6 107
304
+ PG24 -22038.737047 -13825.881887 5682.662530 -49.986052 8 10 10 121
305
+ PG25 -15459.686294 5814.198097 20659.615093 -2.297478 8 7 6 112
306
+ PG26 -3792.792452 26179.536375 -2358.958812 28.990278 7 3 5 103
307
+ PG27 4644.915207 14334.491875 -21892.391922 -2.584354 8 8 8 119
308
+ PG28 12459.481059 -21209.059613 -9283.872183 447.110302 7 6 9 103
309
+ PG29 -25914.740695 4114.379895 3966.925642 616.890669 8 4 7 115
310
+ PG30 11269.116559 -10393.315220 -21701.261909 -42.989457 6 6 6 103
311
+ PG31 988.656450 18670.855259 18856.340317 312.822220 6 6 9 106
312
+ PG32 7038.403242 19337.703519 17057.294350 -124.417256 7 6 6 78
313
+ * 2015 6 16 0 30 0.00000000
314
+ PG01 22598.904313 12909.166888 5742.253300 -4.223157 9 7 5 97
315
+ PG02 -10725.048337 -20460.182827 13859.879905 572.338767 10 7 7 109
316
+ PG03 14025.757280 7455.832663 21297.248477 350.723680 5 7 5 111
317
+ PG04 19372.515409 18081.570715 -3635.218943 -19.583289 8 6 7 92
318
+ PG05 -3955.644181 -24207.804792 -9994.086575 -228.967777 5 5 8 122
319
+ PG06 3585.681199 -15817.855899 21036.307779 185.432810 8 5 5 113
320
+ PG07 20267.885162 1487.156443 -17195.575383 468.898268 8 6 9 101
321
+ PG08 -7796.832888 24603.012536 5526.024667 999999.999999
322
+ PG09 25289.984960 -6459.300547 4971.730196 -170.798785 9 5 5 110
323
+ PG10 9252.556199 -23290.526219 7733.185245 -179.067844 8 5 8 89
324
+ PG11 23867.497297 11295.612872 -3956.648072 -585.259273 10 7 7 98
325
+ PG12 -11811.938676 -11261.327882 20902.008631 301.802728 7 8 9 87
326
+ PG13 -4553.234371 -14281.604583 -22064.441251 -123.735636 9 8 7 122
327
+ PG14 -18145.114411 14810.031014 12614.672755 55.758283 10 6 6 121
328
+ PG15 -16819.068235 -7919.955165 -19169.829661 -255.191052 9 8 9 119
329
+ PG16 1652.289121 24317.264577 -10159.806075 -118.502129 6 8 5 102
330
+ PG17 17597.487698 -15338.435396 12768.046849 -176.050100 8 5 7 110
331
+ PG18 -14742.697494 12887.260615 -17309.277093 409.689721 9 6 9 106
332
+ PG19 14098.742291 10362.083162 -20315.548205 -513.458037 5 7 8 120
333
+ PG20 -12829.771689 -14485.831618 -18362.877776 329.979186 8 8 6 120
334
+ PG21 -19547.826731 1300.360022 -17390.044597 -455.619675 10 6 5 127
335
+ PG22 -9584.802238 22957.368342 -8811.946628 361.370738 7 6 8 119
336
+ PG23 22569.765865 2143.299692 14338.664004 -115.093124 8 7 5 107
337
+ PG24 -22257.498211 -14339.836555 2906.629814 -49.986621 7 9 10 117
338
+ PG25 -15097.169747 3410.855409 21459.674732 -2.301153 8 6 6 112
339
+ PG26 -4064.800382 26239.180135 493.344111 28.988250 7 3 5 102
340
+ PG27 2301.320549 15168.991908 -21690.431483 -2.581992 8 7 7 125
341
+ PG28 12311.949451 -19913.472199 -11838.736557 447.112865 7 6 8 116
342
+ PG29 -25391.228568 3732.101422 6763.871575 616.892908 8 4 7 120
343
+ PG30 13023.956057 -8655.194652 -21486.959784 -42.983373 6 6 6 95
344
+ PG31 -733.645733 17272.367833 20192.738059 312.821310 7 6 8 106
345
+ PG32 6409.358298 21068.389882 15202.804981 -124.408473 7 6 6 62
346
+ * 2015 6 16 0 45 0.00000000
347
+ PG01 22861.512106 13394.645177 2952.296261 -4.222726 9 7 5 99
348
+ PG02 -9271.578205 -19691.359425 15886.663754 572.340964 9 6 7 107
349
+ PG03 13691.115613 9825.043065 20536.639173 350.730056 5 7 4 108
350
+ PG04 18775.028186 18002.898410 -6356.968732 -19.585179 8 6 6 107
351
+ PG05 -3569.639695 -25169.453169 -7400.211477 -228.963650 5 4 7 126
352
+ PG06 5582.362123 -14417.027488 21599.830046 185.440645 8 5 5 119
353
+ PG07 21656.663954 2732.846117 -15287.177128 468.900536 9 6 9 99
354
+ PG08 -7891.322905 23766.409877 8291.399530 999999.999999
355
+ PG09 24728.702544 -5935.295950 7695.776313 -170.802729 8 5 6 95
356
+ PG10 9441.982986 -22164.251924 10304.245434 -179.067506 8 5 8 101
357
+ PG11 23222.803074 11534.901219 -6576.745716 -585.261991 9 6 7 87
358
+ PG12 -11385.964974 -13558.287712 19768.202113 301.805798 6 8 9 105
359
+ PG13 -2180.944790 -15016.374946 -21948.174706 -123.739380 9 7 6 119
360
+ PG14 -19416.247238 15034.322334 10157.922439 55.755931 9 6 6 120
361
+ PG15 -14864.849705 -9017.447047 -20245.388241 -255.192612 9 8 8 127
362
+ PG16 1297.147177 25275.350767 -7467.422295 -118.498585 6 7 5 116
363
+ PG17 18865.768749 -15619.546069 10306.157528 -176.051841 8 5 8 113
364
+ PG18 -14752.942078 10702.289189 -18719.891876 409.692029 9 6 9 110
365
+ PG19 11907.352809 11140.152075 -21252.074103 -513.458935 4 7 8 121
366
+ PG20 -12556.343097 -16467.994598 -16791.164399 329.981902 8 8 7 116
367
+ PG21 -21068.376150 -27.912715 -15677.875460 -455.622502 10 6 5 125
368
+ PG22 -9812.422851 21740.110902 -11260.974761 361.374424 8 6 8 120
369
+ PG23 21063.934504 2986.543526 16321.294321 -115.095157 7 7 4 107
370
+ PG24 -22246.326758 -14656.822746 80.990475 -49.986660 7 9 10 115
371
+ PG25 -14857.981935 923.194467 21886.246597 -2.304847 7 6 7 101
372
+ PG26 -4296.516125 25992.458671 3337.152534 28.986232 7 4 5 109
373
+ PG27 44.719670 16109.996663 -21115.590308 -2.579591 8 7 7 123
374
+ PG28 12186.497187 -18329.635938 -14182.165525 447.115229 7 6 8 124
375
+ PG29 -24597.546625 3214.851035 9444.147403 616.894657 8 3 6 121
376
+ PG30 14831.253542 -7039.559984 -20903.552144 -42.977300 6 6 6 91
377
+ PG31 -2629.350085 15889.128540 21182.549527 312.820354 7 6 7 104
378
+ PG32 5914.853410 22608.601876 13092.460715 -124.399970 7 5 6 73
379
+ * 2015 6 16 1 0 0.00000000
380
+ PG01 22884.292928 13690.755795 112.086191 -4.222253 9 7 5 109
381
+ PG02 -7601.639813 -18887.587505 17651.605295 572.342837 8 6 6 109
382
+ PG03 13485.067045 12102.889339 19422.869157 350.736528 5 7 4 111
383
+ PG04 17923.652695 17794.137860 -8971.961457 -19.586759 7 7 6 103
384
+ PG05 -3244.715097 -25848.259363 -4677.770848 -228.959846 5 4 7 114
385
+ PG06 7685.581063 -13099.374092 21791.787407 185.448446 8 5 4 114
386
+ PG07 22919.191892 3769.440959 -13118.300955 468.902792 9 6 8 97
387
+ PG08 -8010.759834 22628.103059 10911.111183 999999.999999
388
+ PG09 23927.944568 -5245.142850 10287.510817 -170.806556 7 4 6 105
389
+ PG10 9668.705550 -20762.955841 12690.606600 -179.068186 8 5 7 95
390
+ PG11 22314.920222 11731.313790 -9086.085585 -585.263968 9 6 7 104
391
+ PG12 -11105.731064 -15725.824970 18293.364229 301.808899 6 8 9 92
392
+ PG13 114.807073 -15867.395188 -21459.424182 -123.742395 9 7 6 117
393
+ PG14 -20410.340608 15213.531025 7526.654712 55.753038 9 7 5 115
394
+ PG15 -12875.879469 -10259.709427 -20977.470768 -255.194859 9 8 8 130
395
+ PG16 1031.377366 25938.822880 -4643.994240 -118.494860 7 7 5 110
396
+ PG17 19857.090743 -15847.598073 7667.166678 -176.053488 8 5 8 116
397
+ PG18 -14856.080242 8377.126912 -19792.135862 409.694893 8 6 9 113
398
+ PG19 9679.448638 12069.482122 -21832.093387 -513.459887 4 7 7 122
399
+ PG20 -12371.776485 -18270.545083 -14933.757028 329.985335 8 7 7 128
400
+ PG21 -22466.063330 -1164.070764 -13686.577182 -455.625680 11 6 6 124
401
+ PG22 -10086.450522 20266.885901 -13512.120313 361.377666 8 6 8 122
402
+ PG23 19418.002915 3999.756614 18030.924287 -115.097325 6 7 4 105
403
+ PG24 -21981.505235 -14804.701545 -2746.032419 -49.987655 7 8 10 115
404
+ PG25 -14753.387602 -1599.168569 21932.351913 -2.308551 7 6 7 113
405
+ PG26 -4525.185834 25439.666023 6123.494061 28.984272 7 4 5 114
406
+ PG27 -2083.503629 17130.923784 -20177.385928 -2.577193 8 7 7 125
407
+ PG28 12119.822978 -16482.473595 -16270.860450 447.117348 7 6 8 118
408
+ PG29 -23563.660238 2535.815564 11961.583514 616.896722 8 2 6 135
409
+ PG30 16650.082915 -5571.518007 -19961.248240 -42.971202 5 6 5 77
410
+ PG31 -4669.569943 14560.701530 21809.911183 312.819333 8 6 6 105
411
+ PG32 5534.090930 23923.841879 10762.439771 -124.391523 7 4 6 40
412
+ * 2015 6 16 1 15 0.00000000
413
+ PG01 22644.291493 13826.933539 -2730.036867 -4.221821 8 6 4 110
414
+ PG02 -5733.460709 -18085.945575 19125.625930 572.344881 7 6 5 114
415
+ PG03 13395.183095 14243.789995 17974.971293 350.742908 5 7 4 114
416
+ PG04 16815.246563 17492.338640 -11436.700119 -19.588377 7 8 5 102
417
+ PG05 -2946.892654 -26229.084898 -1873.982369 -228.956014 5 4 6 111
418
+ PG06 9855.357631 -11893.288578 21608.861845 185.456292 7 5 4 118
419
+ PG07 24013.435035 4603.260614 -10726.552863 468.904730 9 7 8 84
420
+ PG08 -8191.703867 21208.391635 13338.899596 999999.999999
421
+ PG09 22921.179460 -4368.462963 12702.354820 -170.810546 7 4 6 104
422
+ PG10 9963.770294 -19111.940234 14849.044134 -179.068526 8 6 7 104
423
+ PG11 21153.749054 11917.371366 -11443.197259 -585.266382 8 6 7 111
424
+ PG12 -10955.274148 -17718.304695 16503.617230 301.811970 6 7 9 96
425
+ PG13 2291.152264 -16811.167433 -20606.726885 -123.745281 9 6 6 118
426
+ PG14 -21121.976175 15307.720567 4765.662623 55.750457 9 7 4 111
427
+ PG15 -10894.991898 -11632.355406 -21352.880295 -255.196686 9 7 7 129
428
+ PG16 818.496931 26288.699010 -1738.924558 -118.491482 7 7 5 114
429
+ PG17 20566.946526 -15981.856544 4895.904019 -176.055176 8 5 8 120
430
+ PG18 -15066.146731 5956.975409 -20506.629777 409.697456 7 6 8 116
431
+ PG19 7461.539306 13139.556940 -22044.710056 -513.460673 5 7 7 118
432
+ PG20 -12252.187688 -19859.810546 -12821.765435 329.988288 8 7 7 122
433
+ PG21 -23700.173314 -2111.743940 -11453.534970 -455.628580 11 6 7 116
434
+ PG22 -10434.867770 18564.714880 -15525.500180 361.381441 8 7 8 119
435
+ PG23 17674.443103 5185.838912 19438.452369 -115.099556 6 7 4 107
436
+ PG24 -21446.475593 -14816.109005 -5526.236059 -49.988265 7 8 10 111
437
+ PG25 -14786.317502 -4105.336631 21597.698724 -2.312244 6 6 7 113
438
+ PG26 -4787.476559 24589.922923 8804.376735 28.982273 7 5 5 104
439
+ PG27 -4047.447403 18199.042063 -18891.612034 -2.574743 7 6 7 126
440
+ PG28 12144.149382 -14405.604003 -18065.849448 447.119898 7 6 9 108
441
+ PG29 -22325.753461 1674.619987 14272.861920 616.898738 7 2 6 125
442
+ PG30 18436.582502 -4268.668915 -18676.390691 -42.965072 5 6 5 95
443
+ PG31 -6818.898991 13321.547590 22065.202282 312.818520 8 6 5 109
444
+ PG32 5240.619068 24985.498105 8252.302757 -124.382851 7 4 6 51
445
+ * 2015 6 16 1 30 0.00000000
446
+ PG01 22125.984442 13837.136700 -5525.763483 -4.221390 8 6 4 113
447
+ PG02 -3692.286064 -17320.412550 20284.218171 572.347023 6 5 5 116
448
+ PG03 13401.795063 16206.012722 16217.739040 350.749263 5 7 4 107
449
+ PG04 15454.576075 17135.443401 -13710.360487 -19.590362 8 8 5 106
450
+ PG05 -2640.432195 -26305.346414 962.418401 -228.951985 6 4 6 125
451
+ PG06 12047.572288 -10820.194456 21054.180374 185.464105 7 5 4 113
452
+ PG07 24900.874401 5248.570838 -8153.056869 468.906732 9 7 8 77
453
+ PG08 -8466.719136 19536.063865 15531.857973 999999.999999
454
+ PG09 21746.746251 -3292.008626 14898.758978 -170.814610 6 4 6 105
455
+ PG10 10353.582606 -17244.069500 16740.463114 -179.070408 8 6 7 105
456
+ PG11 19756.157565 12123.901865 -13609.501489 -585.268387 7 6 7 100
457
+ PG12 -10911.265981 -19495.091536 14430.381231 301.815004 6 7 9 103
458
+ PG13 4310.294191 -17817.664082 -19404.689035 -123.748133 8 7 6 113
459
+ PG14 -21554.493252 15277.908661 1922.278197 55.748016 8 7 3 120
460
+ PG15 -8962.655686 -13113.723875 -21364.363423 -255.198691 9 6 6 126
461
+ PG16 619.454877 26315.274299 1196.754805 -118.487836 8 7 6 121
462
+ PG17 20999.650200 -15982.773564 2039.855146 -176.056748 7 5 8 122
463
+ PG18 -15389.815484 3489.801762 -20850.782260 409.700287 6 6 8 118
464
+ PG19 5298.290997 14331.906213 -21885.020426 -513.461819 6 7 7 121
465
+ PG20 -12168.817130 -21208.146817 -10490.744229 329.991833 8 6 7 118
466
+ PG21 -24733.696407 -2882.500417 -9019.873502 -455.632051 11 7 7 107
467
+ PG22 -10880.736512 16667.226924 -17265.416380 361.384936 7 7 7 127
468
+ PG23 15876.764689 6539.781587 20519.602097 -115.101877 6 7 4 111
469
+ PG24 -20632.580039 -14727.043697 -8212.237936 -49.988620 7 7 9 104
470
+ PG25 -14951.281527 -6544.919923 20888.651669 -2.315891 6 6 7 107
471
+ PG26 -5117.861344 23460.878015 11333.618311 28.980295 7 5 5 120
472
+ PG27 -5817.891754 19276.696326 -17280.091485 -2.572329 7 6 8 123
473
+ PG28 12285.712645 -12140.217141 -19533.377698 447.122156 8 6 9 108
474
+ PG29 -20924.838503 618.311870 16338.261838 616.900925 7 3 7 129
475
+ PG30 20145.533388 -3140.604023 -17071.166204 -42.959023 5 6 5 95
476
+ PG31 -9036.616077 12199.813040 21945.130425 312.817364 8 6 5 109
477
+ PG32 5003.516299 25771.791891 5604.349748 -124.374137 7 4 6 69
478
+ * 2015 6 16 1 45 0.00000000
479
+ PG01 21321.967739 13758.385379 -8227.606461 -4.220992 8 6 4 127
480
+ PG02 -1509.653225 -16620.607871 21107.810028 572.349216 6 5 5 114
481
+ PG03 13478.848619 17953.113358 14181.308970 350.755609 5 7 4 111
482
+ PG04 13854.259780 16760.767075 -15755.388263 -19.592286 8 8 4 100
483
+ PG05 -2289.437353 -26079.251967 3782.050755 -228.947916 7 5 6 119
484
+ PG06 14215.498776 -9893.826219 20137.262800 185.471896 7 5 4 114
485
+ PG07 25547.932115 5726.806417 -5441.751546 468.908874 9 7 8 75
486
+ PG08 -8862.893713 17647.380032 17451.250873 999999.999999
487
+ PG09 20446.376945 -2010.378654 16838.918343 -170.818636 5 3 6 105
488
+ PG10 10858.640948 -15198.584012 18330.712623 -179.070018 7 5 6 107
489
+ PG11 18145.410487 12378.760795 -15549.840656 -585.270768 7 6 7 107
490
+ PG12 -10944.069218 -21021.939075 12109.792399 301.817568 7 7 9 107
491
+ PG13 6140.741419 -18851.444144 -17873.739902 -123.751258 8 7 6 105
492
+ PG14 -21719.778822 15087.743508 -954.427718 55.745373 8 7 3 120
493
+ PG15 -7115.569755 -14675.537238 -21010.787488 -255.200568 8 6 5 128
494
+ PG16 394.390687 26018.516485 4111.333908 -118.484635 8 7 6 124
495
+ PG17 21168.097141 -15813.689388 -851.638749 -176.058494 7 5 8 120
496
+ PG18 -15826.069944 1024.569816 -20819.026077 409.703145 5 6 8 115
497
+ PG19 3230.998452 15620.648316 -21354.277879 -513.462524 6 7 6 114
498
+ PG20 -12089.254670 -22294.878874 -7980.130852 329.994877 7 6 7 127
499
+ PG21 -25534.683079 -3495.044881 -6429.569786 -455.634878 11 8 7 103
500
+ PG22 -11441.106320 14613.473892 -18701.044299 361.388544 7 7 7 127
501
+ PG23 14067.986832 8048.651216 21255.340711 -115.103479 6 7 5 107
502
+ PG24 -19539.512421 -14575.336281 -10758.260665 -49.989351 7 7 9 102
503
+ PG25 -15234.626645 -8869.796569 19818.080453 -2.319600 5 6 7 104
504
+ PG26 -5547.092689 22078.091338 13667.644547 28.978288 7 5 5 120
505
+ PG27 -7373.242501 20322.740871 -15370.322478 -2.569880 7 6 8 122
506
+ PG28 12563.499661 -9733.611675 -20645.699174 447.124129 8 6 9 104
507
+ PG29 -19405.193343 -637.945038 18122.339592 616.902563 7 3 7 122
508
+ PG30 21731.998888 -2188.718410 -15173.219218 -42.952986 5 6 5 89
509
+ PG31 -11278.084106 11216.380259 21452.714377 312.816400 9 6 6 101
510
+ PG32 4788.732831 26268.482136 2862.952955 -124.365395 7 4 6 99
511
+ * 2015 6 16 2 0 0.00000000
512
+ PG01 20233.348484 13629.194257 -10789.676668 -4.220562 7 5 5 128
513
+ PG02 777.556162 -16010.692492 21582.075535 572.351271 6 5 6 108
514
+ PG03 13595.017826 19455.179341 11900.649915 350.761968 5 7 4 112
515
+ PG04 12034.436020 16403.520506 -17538.041715 -19.594147 8 9 3 110
516
+ PG05 -1859.474012 -25561.702165 6535.778728 -228.944077 7 5 6 116
517
+ PG06 16311.445084 -9119.817432 18873.860017 185.479747 7 5 5 108
518
+ PG07 25927.214413 6065.534460 -2638.658561 468.910793 9 8 7 87
519
+ PG08 -9400.587101 15584.760342 19063.251083 999999.999999
520
+ PG09 19063.600635 -526.431067 18489.423436 -170.822590 5 3 6 111
521
+ PG10 11492.528897 -13019.648952 19591.289231 -179.070356 7 5 6 106
522
+ PG11 16350.387804 12705.686309 -17232.943454 -585.273100 7 7 6 116
523
+ PG12 -11019.037738 -22272.133150 9582.051192 301.820693 7 7 9 98
524
+ PG13 7758.302905 -19872.983416 -16039.798293 -123.754514 8 7 6 105
525
+ PG14 -21637.729183 14705.103859 -3814.497904 55.742885 8 7 3 119
526
+ PG15 -5385.399289 -16283.825851 -20297.222778 -255.202399 8 5 5 129
527
+ PG16 104.434368 25408.082035 6953.399056 -118.480683 9 7 7 116
528
+ PG17 21093.191351 -15442.451590 -3728.240845 -176.060365 7 5 7 120
529
+ PG18 -16366.218735 -1390.559434 -20412.885121 409.706210 5 6 8 116
530
+ PG19 1296.169874 16973.327115 -20459.969711 -513.463309 6 7 6 112
531
+ PG20 -11978.822564 -23106.990938 -5332.608667 329.998263 7 5 7 119
532
+ PG21 -26077.373942 -3974.155066 -3728.564042 -455.637336 11 8 7 97
533
+ PG22 -12126.174504 12446.531805 -19807.025111 361.392250 7 7 7 128
534
+ PG23 12289.127439 9691.870569 21632.232169 -115.105680 6 6 5 101
535
+ PG24 -18175.463222 -14399.059020 -13120.890056 -49.989711 7 7 9 118
536
+ PG25 -15615.126509 -11035.777175 18405.092531 -2.323319 5 6 6 98
537
+ PG26 -6100.824441 20474.123672 15766.242473 28.976320 7 5 6 119
538
+ PG27 -8700.181001 21294.126874 -13195.022353 -2.567487 7 5 8 113
539
+ PG28 12988.297366 -7237.454640 -21381.739406 447.126649 8 6 9 98
540
+ PG29 -17812.688580 -2090.494976 19594.531426 616.904478 7 4 7 125
541
+ PG30 23152.962870 -1406.344184 -13015.175331 -42.947046 6 6 5 95
542
+ PG31 -13496.289143 10384.210310 20597.169249 312.815369 9 6 6 108
543
+ PG32 4560.540435 26469.305624 73.872429 -124.356654 7 4 6 73
544
+ __SP3_TEXT__
545
+ # https://cddis.nasa.gov/archive/gnss/products/1849/igs18492.sp3.Z
546
+ # mirrored: ftp://garner.ucsd.edu/pub/products/1849/igs18492.sp3.Z
547
+ f.path
548
+ },
549
+ :antex => Tempfile::open{|f|
550
+ f.write(<<-__ANTEX_TEXT__)
551
+ 1.4 M ANTEX VERSION / SYST
552
+ A PCV TYPE / REFANT
553
+ END OF HEADER
554
+ START OF ANTENNA
555
+ BLOCK IIR-M G12 G058 2006-052A TYPE / SERIAL NO
556
+ 0 29-JAN-17 METH / BY / # / DATE
557
+ 0.0 DAZI
558
+ 0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
559
+ 2 # OF FREQUENCIES
560
+ 2006 11 17 0 0 0.0000000 VALID FROM
561
+ IGS14_2196 SINEX CODE
562
+ G01 START OF FREQUENCY
563
+ 10.20 -5.60 767.80 NORTH / EAST / UP
564
+ NOAZI 10.70 10.10 8.00 4.60 0.50 -3.80 -7.50 -9.70 -10.30 -9.50 -7.40 -4.10 0.30 6.00 12.10 22.00 30.40 40.60
565
+ G01 END OF FREQUENCY
566
+ G02 START OF FREQUENCY
567
+ 10.20 -5.60 767.80 NORTH / EAST / UP
568
+ NOAZI 10.70 10.10 8.00 4.60 0.50 -3.80 -7.50 -9.70 -10.30 -9.50 -7.40 -4.10 0.30 6.00 12.10 22.00 30.40 40.60
569
+ G02 END OF FREQUENCY
570
+ END OF ANTENNA
571
+ START OF ANTENNA
572
+ BLOCK IIR-A G18 G054 2001-004A TYPE / SERIAL NO
573
+ 0 29-JAN-17 METH / BY / # / DATE
574
+ 0.0 DAZI
575
+ 0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
576
+ 2 # OF FREQUENCIES
577
+ 2001 1 30 0 0 0.0000000 VALID FROM
578
+ 2018 1 23 23 59 59.9999999 VALID UNTIL
579
+ IGS14_2196 SINEX CODE
580
+ G01 START OF FREQUENCY
581
+ 13.90 0.30 1248.60 NORTH / EAST / UP
582
+ NOAZI -6.10 -5.20 -3.30 -1.00 1.40 3.50 4.70 4.90 4.10 2.80 0.80 -1.00 -2.10 -2.10 -1.40 -0.80 2.00 6.40
583
+ G01 END OF FREQUENCY
584
+ G02 START OF FREQUENCY
585
+ 13.90 0.30 1248.60 NORTH / EAST / UP
586
+ NOAZI -6.10 -5.20 -3.30 -1.00 1.40 3.50 4.70 4.90 4.10 2.80 0.80 -1.00 -2.10 -2.10 -1.40 -0.80 2.00 6.40
587
+ G02 END OF FREQUENCY
588
+ END OF ANTENNA
589
+ START OF ANTENNA
590
+ BLOCK IIF G24 G065 2012-053A TYPE / SERIAL NO
591
+ 0 29-JAN-17 METH / BY / # / DATE
592
+ 0.0 DAZI
593
+ 0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
594
+ 2 # OF FREQUENCIES
595
+ 2012 10 4 0 0 0.0000000 VALID FROM
596
+ IGS14_2196 SINEX CODE
597
+ G01 START OF FREQUENCY
598
+ 394.00 0.00 1407.10 NORTH / EAST / UP
599
+ NOAZI 6.10 4.40 2.80 1.30 -0.20 -1.40 -2.80 -3.90 -4.40 -4.40 -3.70 -2.30 -0.20 3.00 5.70 12.40 18.20 23.50
600
+ G01 END OF FREQUENCY
601
+ G02 START OF FREQUENCY
602
+ 394.00 0.00 1407.10 NORTH / EAST / UP
603
+ NOAZI 6.10 4.40 2.80 1.30 -0.20 -1.40 -2.80 -3.90 -4.40 -4.40 -3.70 -2.30 -0.20 3.00 5.70 12.40 18.20 23.50
604
+ G02 END OF FREQUENCY
605
+ END OF ANTENNA
606
+ START OF ANTENNA
607
+ BLOCK IIF G25 G062 2010-022A TYPE / SERIAL NO
608
+ 0 29-JAN-17 METH / BY / # / DATE
609
+ 0.0 DAZI
610
+ 0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
611
+ 2 # OF FREQUENCIES
612
+ 2010 5 28 0 0 0.0000000 VALID FROM
613
+ IGS14_2196 SINEX CODE
614
+ G01 START OF FREQUENCY
615
+ 394.00 0.00 1517.40 NORTH / EAST / UP
616
+ NOAZI 6.10 4.40 2.80 1.30 -0.20 -1.40 -2.80 -3.90 -4.40 -4.40 -3.70 -2.30 -0.20 3.00 5.70 12.40 18.20 23.50
617
+ G01 END OF FREQUENCY
618
+ G02 START OF FREQUENCY
619
+ 394.00 0.00 1517.40 NORTH / EAST / UP
620
+ NOAZI 6.10 4.40 2.80 1.30 -0.20 -1.40 -2.80 -3.90 -4.40 -4.40 -3.70 -2.30 -0.20 3.00 5.70 12.40 18.20 23.50
621
+ G02 END OF FREQUENCY
622
+ END OF ANTENNA
623
+ START OF ANTENNA
624
+ BLOCK IIR-M G29 G057 2007-062A TYPE / SERIAL NO
625
+ 0 29-JAN-17 METH / BY / # / DATE
626
+ 0.0 DAZI
627
+ 0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
628
+ 2 # OF FREQUENCIES
629
+ 2007 12 20 0 0 0.0000000 VALID FROM
630
+ IGS14_2196 SINEX CODE
631
+ G01 START OF FREQUENCY
632
+ 10.90 -4.50 791.80 NORTH / EAST / UP
633
+ NOAZI 10.70 10.10 8.00 4.60 0.50 -3.80 -7.50 -9.70 -10.30 -9.50 -7.40 -4.10 0.30 6.00 12.10 22.00 30.40 40.60
634
+ G01 END OF FREQUENCY
635
+ G02 START OF FREQUENCY
636
+ 10.90 -4.50 791.80 NORTH / EAST / UP
637
+ NOAZI 10.70 10.10 8.00 4.60 0.50 -3.80 -7.50 -9.70 -10.30 -9.50 -7.40 -4.10 0.30 6.00 12.10 22.00 30.40 40.60
638
+ G02 END OF FREQUENCY
639
+ END OF ANTENNA
640
+ START OF ANTENNA
641
+ BLOCK IIR-M G31 G052 2006-042A TYPE / SERIAL NO
642
+ 0 29-JAN-17 METH / BY / # / DATE
643
+ 0.0 DAZI
644
+ 0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
645
+ 2 # OF FREQUENCIES
646
+ 2006 9 25 0 0 0.0000000 VALID FROM
647
+ IGS14_2196 SINEX CODE
648
+ G01 START OF FREQUENCY
649
+ -0.80 5.80 912.50 NORTH / EAST / UP
650
+ NOAZI 10.70 10.10 8.00 4.60 0.50 -3.80 -7.50 -9.70 -10.30 -9.50 -7.40 -4.10 0.30 6.00 12.10 22.00 30.40 40.60
651
+ G01 END OF FREQUENCY
652
+ G02 START OF FREQUENCY
653
+ -0.80 5.80 912.50 NORTH / EAST / UP
654
+ NOAZI 10.70 10.10 8.00 4.60 0.50 -3.80 -7.50 -9.70 -10.30 -9.50 -7.40 -4.10 0.30 6.00 12.10 22.00 30.40 40.60
655
+ G02 END OF FREQUENCY
656
+ END OF ANTENNA
657
+ __ANTEX_TEXT__
658
+ # https://files.igs.org/pub/station/general/igs14.atx
659
+ f.path
660
+ },
223
661
  }}
224
662
  let(:solver){
225
663
  res = GPS::Solver::new
@@ -375,22 +813,6 @@ __RINEX_OBS_TEXT__
375
813
  expect(mat).to respond_to(:resize!)
376
814
  }
377
815
  }
378
- solver.hooks[:satellite_position] = proc{
379
- i = 0
380
- proc{|prn, time, pos|
381
- expect(input[:measurement]).to include(prn)
382
- expect(pos).to be_a_kind_of(Coordinate::XYZ).or eq(nil)
383
- # System_XYZ or [x,y,z] or nil(= unknown position) are acceptable
384
- case (i += 1) % 5
385
- when 0
386
- nil
387
- when 1
388
- pos.to_a
389
- else
390
- pos
391
- end
392
- }
393
- }.call
394
816
  pvt = solver.solve(
395
817
  input[:measurement].collect{|prn, items|
396
818
  items.collect{|k, v| [prn, k, v]}
@@ -450,5 +872,70 @@ __RINEX_OBS_TEXT__
450
872
  }
451
873
  }
452
874
  end
875
+ it 'calculates satellites position based on SP3 with ANTEX' do
876
+ sp3, sn = [GPS::SP3::new, solver.gps_space_node]
877
+ expect(sp3.read(input[:sp3])).to eq(32 * 9)
878
+ proc{|sats|
879
+ expect(sats.kind_of?(Array)).to eq(true)
880
+ expect(sats[sp3.class::SYS_GPS]).to eq(32)
881
+ }.call(sp3.satellites)
882
+ expect(sp3.apply_antex(input[:antex])).to eq(6 * 9)
883
+ sn.read(input[:rinex_nav])
884
+
885
+ t0 = GPS::Time::new(1849, 172800)
886
+ sn.update_all_ephemeris(t0)
887
+
888
+ (0..120).step(10){|dt_min|
889
+ t = t0 + (dt_min * 60)
890
+ [12, 18, 24, 25, 29, 31].each{|sat_id|
891
+ eph_pos_vel = sn.ephemeris(sat_id).constellation(t)
892
+ delta = {
893
+ :pos => (sp3.position(sat_id, t) - eph_pos_vel[0]).to_a,
894
+ :vel => (sp3.velocity(sat_id, t) - eph_pos_vel[1]).to_a,
895
+ }
896
+ puts "SP3 delta(#{t.seconds}, #{sat_id}): #{delta}"
897
+ delta[:pos].each{|v|
898
+ expect(v.abs).to be < 5 # 5m
899
+ }
900
+ delta[:vel].each{|v|
901
+ expect(v.abs).to be < 1E-2 # 10mm
902
+ }
903
+ }
904
+ }
905
+ end
906
+ it 'calculates position without any error with SP3 and ANTEX' do
907
+ sn = solver.gps_space_node
908
+ sp3 = GPS::SP3::new
909
+ sp3.read(input[:sp3])
910
+ sp3.apply_antex(input[:antex])
911
+ expect(sp3.push(solver, sp3.class::SYS_GPS)).to eq(true)
912
+ GPS::RINEX_Observation::read(input[:rinex_obs]){|item|
913
+ t_meas = item[:time]
914
+ sn.update_all_ephemeris(t_meas)
915
+
916
+ meas = GPS::Measurement::new
917
+ types = (item[:meas_types]['G'] || item[:meas_types][' ']).collect.with_index{|type_, i|
918
+ type_ = {
919
+ "C1" => :L1_PSEUDORANGE,
920
+ "D1" => :L1_RANGE_RATE,
921
+ }[type_]
922
+ type_ && [i, GPS::Measurement::const_get(type_)]
923
+ }.compact
924
+ item[:meas].each{|k, v|
925
+ sys, prn = k
926
+ next unless sys == 'G' # GPS only
927
+ types.each{|i, type_|
928
+ meas.add(prn, type_, v[i][0]) if v[i]
929
+ }
930
+ }
931
+
932
+ pvt = solver.solve(meas, t_meas)
933
+ expect(pvt.position_solved?).to eq(true)
934
+ [-3952590.4754, 3360273.8926, 3697987.2632].zip(pvt.xyz.to_a).each{|a, b|
935
+ expect(a).to be_within(1E+2).of(b) # 10 m
936
+ }
937
+ puts ([:lat, :lng].collect{|f| pvt.llh.send(f) / Math::PI * 180} + [pvt.llh.alt]).inspect
938
+ }
939
+ end
453
940
  end
454
941
  end