gps_pvt 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -434,5 +872,70 @@ __RINEX_OBS_TEXT__
434
872
  }
435
873
  }
436
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
437
940
  end
438
941
  end