Changeset 8084 in ntrip
- Timestamp:
- Mar 23, 2017, 1:12:50 PM (8 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bncclockrinex.cpp
r7570 r8084 93 93 << "PRN LIST" << endl; 94 94 95 _out << " 0 IGS 08"95 _out << " 0 IGS14 " 96 96 << "# OF SOLN STA / TRF" << endl; 97 97 -
trunk/BNC/src/bnchelp.html
r8080 r8084 1009 1009 Corrections and encodes them to RTCM Version 3 SSR messages to finally upload them to 1010 1010 an Ntrip Broadcaster. The Broadcast Correction stream is referred to satellite 1011 Antenna Phase Center (APC) and reference system IGS 08. Orbits are saved on disk1011 Antenna Phase Center (APC) and reference system IGS14. Orbits are saved on disk 1012 1012 in SP3 format and clocks are saved in Clock RINEX format. 1013 1013 </li><br> … … 1019 1019 product in RTCM Version 3 SSR messages and uploads that to an Ntrip 1020 1020 Broadcaster. The Broadcast Correction stream is referred to satellite Antenna Phase Center (APC) and not to satellite 1021 Center of Mass (CoM). Its reference system is IGS 08. Orbits are saved in SP31021 Center of Mass (CoM). Its reference system is IGS14. Orbits are saved in SP3 1022 1022 format (referred to CoM) and clocks in Clock RINEX format. 1023 1023 </li><br> … … 3809 3809 Then, epoch by epoch: 3810 3810 <ul> 3811 <li>Continuously receive the best available orbit and clock estimates for all satellites in XYZ Earth-Centered-Earth-Fixed IGS 08reference system. Receive them every epoch in plain ASCII format as provided by a real-time GNSS engine such as RTNET or generate them following a combination approach. </li>3811 <li>Continuously receive the best available orbit and clock estimates for all satellites in XYZ Earth-Centered-Earth-Fixed IGS14 reference system. Receive them every epoch in plain ASCII format as provided by a real-time GNSS engine such as RTNET or generate them following a combination approach. </li> 3812 3812 <li>Calculate XYZ coordinates from Broadcast Ephemeris orbits. </li> 3813 <li>Calculate differences dX,dY,dZ between Broadcast Ephemeris and IGS 08orbits. </li>3813 <li>Calculate differences dX,dY,dZ between Broadcast Ephemeris and IGS14 orbits. </li> 3814 3814 <li>Transform these differences into radial, along-track and out-of-plane corrections to Broadcast Ephemeris orbits. </li> 3815 <li>Calculate corrections to Broadcast Ephemeris clocks as differences between Broadcast Ephemeris clocks and IGS 08clocks. </li>3815 <li>Calculate corrections to Broadcast Ephemeris clocks as differences between Broadcast Ephemeris clocks and IGS14 clocks. </li> 3816 3816 <li>Encode Broadcast Ephemeris orbit and clock corrections in RTCM Version 3 format. </li> 3817 3817 <li>Upload Broadcast Correction stream to Ntrip Broadcaster. </li> … … 3939 3939 <p> 3940 3940 <ul> 3941 <li>IGS 08 which stands for the GNSS-based IGS realization of the International Terrestrial Reference Frame 2008 (ITRF2008), and</li>3941 <li>IGS14 which stands for the GNSS-based IGS realization of the International Terrestrial Reference Frame 2014 (ITRF2014), and</li> 3942 3942 <li>ETRF2000 which stands for the European Terrestrial Reference Frame 2000 adopted by EUREF, and</li> 3943 3943 <li>NAD83 which stands for the North American Datum 1983 as adopted for the U.S.A., and</li> … … 3946 3946 <li>SIRGAS95 which stands for the Geodetic Datum adopted e.g. for Venezuela, and</li> 3947 3947 <li>DREF91 which stands for the Geodetic Datum adopted for Germany, and</li> 3948 <li>'Custom' which allows a transformation of Broadcast Corrections from the IGS 08system to any other system through specifying up to 14 Helmert Transformation Parameters.</li>3948 <li>'Custom' which allows a transformation of Broadcast Corrections from the IGS14 system to any other system through specifying up to 14 Helmert Transformation Parameters.</li> 3949 3949 </ul> 3950 3950 </p> … … 3964 3964 3965 3965 <p> 3966 <u>IGS 08:</u> As the orbits and clocks coming from real-time GNSS engine are expected to be in the IGS08system, no transformation is carried out if this option is selected.3966 <u>IGS14:</u> As the orbits and clocks coming from real-time GNSS engine are expected to be in the IGS14 system, no transformation is carried out if this option is selected. 3967 3967 </p> 3968 3968 … … 4106 4106 4107 4107 <p> 4108 <u>Custom:</u> Feel free to specify your own 14 Helmert Transformation parameters for transformations from IGS 08/ITRF2008 into your own target system.4108 <u>Custom:</u> Feel free to specify your own 14 Helmert Transformation parameters for transformations from IGS14/ITRF2008 into your own target system. 4109 4109 </p> 4110 4110 … … 4220 4220 </p> 4221 4221 <p> 4222 The following screenshot shows the encoding and uploading of a stream of precise orbits and clocks coming from a real-time network engine in 'RTNET' ASCII format. The stream is uploaded to Ntrip Broadcaster 'products.igs-ip.net'. It is referred to APC and IGS 08. Uploaded data are locally saved in SP3 and Clock RINEX format. The SSR Provider ID is set to 3. The SSR Solution ID and the Issue of Data SSR are set to 1. Required Broadcast Ephemeris are received via stream 'RTCM3EPH'.4222 The following screenshot shows the encoding and uploading of a stream of precise orbits and clocks coming from a real-time network engine in 'RTNET' ASCII format. The stream is uploaded to Ntrip Broadcaster 'products.igs-ip.net'. It is referred to APC and IGS14. Uploaded data are locally saved in SP3 and Clock RINEX format. The SSR Provider ID is set to 3. The SSR Solution ID and the Issue of Data SSR are set to 1. Required Broadcast Ephemeris are received via stream 'RTCM3EPH'. 4223 4223 </p> 4224 4224 <p><img src="IMG/screenshot26.png"/></p> … … 5085 5085 <b>Upload Corrections Panel keys:</b> 5086 5086 uploadMountpointsOut {Upload corrections table [character string, semicolon separated list, each element in quotation marks, example: 5087 "www.igs-ip.net,2101,IGS01,pass,IGS 08,0,/home/user/BNC$[GPSWD}.sp3,/home/user/BNC$[GPSWD}.clk,258,1,0;5087 "www.igs-ip.net,2101,IGS01,pass,IGS14,0,/home/user/BNC$[GPSWD}.sp3,/home/user/BNC$[GPSWD}.clk,258,1,0; 5088 5088 www.euref-ip.net,2101,EUREF01,pass,ETRF2000,0,,,258,2,0"]} 5089 5089 uploadIntr {Length of SP3 and Clock RINEX file interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]} … … 5144 5144 //user:pass@www.igs-ip.net:2101/FFMJ1 RTCM_3.1 DEU 50.09 8.66 no 2" 5145 5145 (7) bnc --key cmbStreams "CLK11 BLG 1.0;CLK93 CNES 1.0" 5146 (8) bnc --key uploadMountpointsOut "products.igs-ip.net,98756,TEST,letmein,IGS 08,2,/Users/weber/BNC${GPSWD}.clk,,33,3,2;5146 (8) bnc --key uploadMountpointsOut "products.igs-ip.net,98756,TEST,letmein,IGS14,2,/Users/weber/BNC${GPSWD}.clk,,33,3,2; 5147 5147 www.euref-ip.net,333,TEST2,aaaaa,NAD83,2,,,33,5,5" 5148 5148 (9) bnc --key PPP/staTable "FFMJ1,100.0,100.0,100.0,100.0,100.0,100.0,0.1,3e-6,7777; … … 5243 5243 <tr><td>IAG</td><td>International Association of Geodesy</td></tr> 5244 5244 <tr><td>ICECAST</td><td>Streaming Media Server</td></tr> 5245 <tr><td>IGS 08</td><td>IGS Reference Frame 2008</td></tr>5245 <tr><td>IGS14</td><td>IGS Reference Frame 214</td></tr> 5246 5246 <tr><td>IGS</td><td>International GNSS Service</td></tr> 5247 5247 <tr><td>IOD</td><td>Issue of Data</td></tr> 5248 5248 <tr><td>IP</td><td>Internet Protocol</td></tr> 5249 <tr><td>ITRF20 08</td><td>International Terrestrial Reference Frame 2008</td></tr>5249 <tr><td>ITRF2014</td><td>International Terrestrial Reference Frame 2014</td></tr> 5250 5250 <tr><td>L3</td><td>Ionosphere-Free Linear Combination Of Phase Observations</td></tr> 5251 5251 <tr><td>LAN</td><td>Local Area Network</td></tr> -
trunk/BNC/src/bncmain.cpp
r7980 r8084 253 253 "Upload Corrections Panel keys:\n" 254 254 " uploadMountpointsOut {Upload corrections table [character string, semicolon separated list, each element in quotation marks, example:\n" 255 " \"www.igs-ip.net,2101,IGS01,pass,IGS 08,0,/home/user/BNC$[GPSWD}.sp3,/home/user/BNC$[GPSWD}.clk,258,1,0;\n"255 " \"www.igs-ip.net,2101,IGS01,pass,IGS14,0,/home/user/BNC$[GPSWD}.sp3,/home/user/BNC$[GPSWD}.clk,258,1,0;\n" 256 256 " www.euref-ip.net,2101,EUREF01,pass,ETRF2000,0,,,258,2,0\"]}\n" 257 257 " uploadIntr {Length of SP3 and Clock RINEX file interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]}\n" … … 311 311 "//user:pass@www.igs-ip.net:2101/FFMJ1 RTCM_3.1 DEU 50.09 8.66 no 2\"\n" 312 312 "(7) bnc --key cmbStreams \"CLK11 BLG 1.0;CLK93 CNES 1.0\"\n" 313 "(8) bnc --key uploadMountpointsOut \"products.igs-ip.net,98756,TEST,letmein,IGS 08,2,/Users/weber/BNC${GPSWD}.clk,,33,3,2;"313 "(8) bnc --key uploadMountpointsOut \"products.igs-ip.net,98756,TEST,letmein,IGS14,2,/Users/weber/BNC${GPSWD}.clk,,33,3,2;" 314 314 "www.euref-ip.net,333,TEST2,aaaaa,NAD83,2,,,33,5,5\"\n" 315 315 "(9) bnc --key PPP/staTable \"FFMJ1,100.0,100.0,100.0,100.0,100.0,100.0,0.1,3e-6,7777;" -
trunk/BNC/src/bncsp3.cpp
r6533 r8084 12 12 * Created: 25-Apr-2008 13 13 * 14 * Changes: 14 * Changes: 15 15 * 16 16 * -----------------------------------------------------------------------*/ … … 35 35 if (!_stream.good()) { 36 36 throw "t_sp3File: cannot open file " + fileName; 37 } 37 } 38 38 39 39 while (_stream.good()) { … … 47 47 // Constructor 48 48 //////////////////////////////////////////////////////////////////////////// 49 bncSP3::bncSP3(const QString& sklFileName, const QString& intr, int sampl) 49 bncSP3::bncSP3(const QString& sklFileName, const QString& intr, int sampl) 50 50 : bncoutf(sklFileName, intr, sampl) { 51 51 _inpOut = output; … … 63 63 // Write One Epoch 64 64 //////////////////////////////////////////////////////////////////////////// 65 t_irc bncSP3::write(int GPSweek, double GPSweeks, const QString& prn, 65 t_irc bncSP3::write(int GPSweek, double GPSweeks, const QString& prn, 66 66 const ColumnVector& xCoM, double sp3Clk) { 67 67 … … 80 80 } 81 81 82 // Print the new epoch 82 // Print the new epoch 83 83 // ------------------- 84 84 _out << "* " << epoTime.datestr(' ') << ' ' << epoTime.timestr(8, ' ') << endl; … … 92 92 << setw(14) << setprecision(6) << xCoM(3) / 1000.0 93 93 << setw(14) << setprecision(6) << sp3Clk * 1e6 << endl; 94 94 95 95 return success; 96 96 } … … 120 120 double dayfrac; 121 121 mjdFromDateAndTime(datTim, mjd, dayfrac); 122 122 123 123 int numEpo = _numSec; 124 124 if (_sampl > 0) { … … 126 126 } 127 127 128 _out << "#aP" << datTim.toString("yyyy MM dd hh mm").toAscii().data() 128 _out << "#aP" << datTim.toString("yyyy MM dd hh mm").toAscii().data() 129 129 << setw(12) << setprecision(8) << sec 130 << " " << setw(7) << numEpo << " ORBIT IGS 08HLM IGS" << endl;131 132 _out << "## " 130 << " " << setw(7) << numEpo << " ORBIT IGS14 HLM IGS" << endl; 131 132 _out << "## " 133 133 << setw(4) << GPSWeek 134 134 << setw(16) << setprecision(8) << GPSWeeks … … 186 186 t_sp3Sat* sp3Sat = new t_sp3Sat(); 187 187 istringstream in(_lastLine.substr(1).c_str()); 188 in >> sp3Sat->_prn >> sp3Sat->_xyz(1) >> sp3Sat->_xyz(2) >> sp3Sat->_xyz(3) >> sp3Sat->_clk; 188 in >> sp3Sat->_prn >> sp3Sat->_xyz(1) >> sp3Sat->_xyz(2) >> sp3Sat->_xyz(3) >> sp3Sat->_clk; 189 189 190 190 if (sp3Sat->_xyz.norm_Frobenius() == 0.0) { -
trunk/BNC/src/bncwindow.cpp
r8010 r8084 1386 1386 // WhatsThis, Upload Corrections 1387 1387 // ----------------------------- 1388 _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 SSR format. You may have a situation where clocks and orbits come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified Ntrip Broadcaster Host and Port</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris Corrections if you specify correction streams in the 'Combine Corrections' table.</p><p>To fill the 'Upload Corrections' table, hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an Ntrip Broadcaster and hit Enter. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the Ntrip Broadcaster IP port (default is 80), the mountpoint and the stream upload password. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference System (e.g. IGS 08) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create such files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.sp3<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Specify a path for saving generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.clk<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Finally, specify a SSR Provider ID (issued by RTCM), SSR Solution ID, and SSR Issue of Data number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Correction stream, BNC will add that stream content to the Broadcast Ephemeris to save results in files specified via SP3 and/or Clock RINEX file path. You should then define only the SP3 and Clock RINEX file path and no further option in the 'Upload Corrections' table. <i>[key: uploadMountpointsOut]</i></p>"));1388 _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 SSR format. You may have a situation where clocks and orbits come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified Ntrip Broadcaster Host and Port</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris Corrections if you specify correction streams in the 'Combine Corrections' table.</p><p>To fill the 'Upload Corrections' table, hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an Ntrip Broadcaster and hit Enter. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the Ntrip Broadcaster IP port (default is 80), the mountpoint and the stream upload password. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference System (e.g. IGS14) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create such files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.sp3<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Specify a path for saving generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system: /home/user/BNC${GPSWD}.clk<br>Note that '${GPSWD}' produces the GPS Week and Day number in the filename.</p><p>Finally, specify a SSR Provider ID (issued by RTCM), SSR Solution ID, and SSR Issue of Data number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Correction stream, BNC will add that stream content to the Broadcast Ephemeris to save results in files specified via SP3 and/or Clock RINEX file path. You should then define only the SP3 and Clock RINEX file path and no further option in the 'Upload Corrections' table. <i>[key: uploadMountpointsOut]</i></p>")); 1389 1389 addUploadRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Upload Corrections' table.</p>")); 1390 1390 delUploadRowButton->setWhatsThis(tr("<p>Hit 'Del Row' button to delete the highlighted line(s) from the 'Upload Corrections' table.</p>")); … … 2639 2639 QComboBox* system = new QComboBox(); 2640 2640 system->setEditable(false); 2641 system->addItems(QString(",IGS 08,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,DREF91,Custom").split(","));2641 system->addItems(QString(",IGS14,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,DREF91,Custom").split(",")); 2642 2642 system->setFrame(false); 2643 2643 _uploadTable->setCellWidget(iRow, iCol, system); … … 2720 2720 QComboBox* system = new QComboBox(); 2721 2721 system->setEditable(false); 2722 system->addItems(QString(",IGS 08,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,DREF91,Custom").split(","));2722 system->addItems(QString(",IGS14,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,DREF91,Custom").split(",")); 2723 2723 system->setFrame(false); 2724 2724 system->setCurrentIndex(system->findText(hlp[iCol]));
Note:
See TracChangeset
for help on using the changeset viewer.