{"id":6271,"date":"2019-05-19T00:08:59","date_gmt":"2019-05-19T00:08:59","guid":{"rendered":"https:\/\/www.use-snip.com\/kb\/?post_type=ht_kb&#038;p=6271"},"modified":"2019-10-28T12:11:45","modified_gmt":"2019-10-28T12:11:45","slug":"adding-base-station-location-to-strsvr","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/adding-base-station-location-to-strsvr\/","title":{"rendered":"Adding Base Station Location to STRSVR"},"content":{"rendered":"<p>This article reviews how to set the location of your GNSS Base Station in the RTKLIB &#8220;STRSRV&#8221;\u00a0 (stream server) tool.<\/p>\n<p>In order to use any GNSS Base Station for RTK, the Rover device MUST know the precise location of the Base.\u00a0 This is sent in the two RTCM3 message types; MT1005 and MT1006.<\/p>\n<p>High grade devices have various ways to determine and to enter this data. Low grade devices (read:uBlox) typically do not, therefore you need to set it and send it with STRSRV.\u00a0\u00a0\u00a0\u00a0 If a device which sending an empty location is received by <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>, it will will give a warning to the operator.\u00a0 If you see a messages stating one of your Base Stations is claiming that it is located at the North or South pole, this indicates the location still needs to be set.<\/p>\n<h2>Finding your precise location<\/h2>\n<p>Before you can add your location, you must determine what it is. This is typically a task with two major steps. First collecting several hours of observation data from your Base Station once it is in a final position.\u00a0 And then submitting that data to a 3rd party for a precise determination of the position, expressed in the local datum you wish to use.\u00a0 Most commonly the submitted data is in a RINEX format (not raw RTCM) and the RTKConv tool can assist you with that translation.<\/p>\n<p>There are many articles on the web, and one on this site, which cover this process in more detail; here are some good ones:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/how-to-quickly-locate-your-own-reference-ant\/\">How to locate your own reference antenna<\/a><\/li>\n<li><a href=\"http:\/\/www.ngs.noaa.gov\/OPUS\/about.jsp\" target=\"_blank\" rel=\"noopener noreferrer\">www.ngs.noaa.gov\/OPUS\/about.jsp<\/a><\/li>\n<li><a href=\"http:\/\/www.ga.gov.au\/scientific-topics\/positioning-navigation\/geodesy\/auspos\/faq1\">http:\/\/www.ga.gov.au\/scientific-topics\/positioning-navigation\/geodesy\/auspos\/faq1<\/a><\/li>\n<li>And of course your GNSS vendor, many manufacturers provide tools or services to do this.<\/li>\n<\/ul>\n<p>There are many reliable 3rd party processing sites that can use your data.\u00a0 Most require both L1 and L2 data, but a few can also handle L1-only data sets, if that is what you have.\u00a0 Here is an industry article with a list of several such sites, with thanks to Eric Gakstatter for creating this list.<\/p>\n<p class=\"post-title\" style=\"text-align: center;\"><a title=\"Permanent Link to Seven Free Alternatives to OPUS GPS Post-Processing During U.S. Federal Government Shutdown\" href=\"https:\/\/www.gpsworld.com\/7-free-alternatives-opus-post-processing-in-government-shutdown\/\" rel=\"bookmark\">Seven Free Alternatives to OPUS GPS Post-Processing During U.S. Federal Government Shutdown<\/a><\/p>\n<p><span style=\"color: #0000ff;\"><strong>Note<\/strong><\/span>: Please keep in mind that any residual error or offset you have in the Base Station position is transmitted as an offset to the NTRIP Clients, and hence directly to your Rover devices.\u00a0 For some applications where you can &#8220;fix it in post&#8221; such an error is not a big issue, but for others it is.\u00a0 This typically turns on your mission needs for repeatability vs accuracy.\u00a0 Do this correctly and you can have both.<\/p>\n<h2>Expressing the LLH as ECEF Coordinates<\/h2>\n<p>The precise location point which the above process determines will often be expressed in Latitude &#8211; Longitude &#8211; Height (LLH) coordinates (degrees of Lat Long and Height) along with the reference ellipsoid (datum) it is based on.\u00a0\u00a0 The epoch time at which it was determined is also provided (but is not used here).\u00a0 This location is turned into a set of orthogonal ECEF (Earth Centered, Earth Fixed) coordinates when used. [The RTCM 3.x message set makes no provisions for ground velocities or the datum used. It is important to be certain of the datum and the epoch time for the position of any Base Station you use if there is doubt.\u00a0 Typically, daily tide loading effects are not an issue in RTK as both the Rover and the Base are operating on the same local crustal plate.]<\/p>\n<p>This value represents the best estimate the electrical phase center of the L1 frequency for your Base Station antenna.\u00a0 If you determined the location point by placing your Base Station antenna over a known monument, you will also need to add the antenna height to the data to account for the offset.\u00a0 <span style=\"color: #008000;\"><strong>Aside<\/strong><\/span>: High quality Base Station software also provides a means to send the antenna design (model and serial number) that is being used for greater modeling at the Rover end.\u00a0 You can enter and edit these values below or by using the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> <span style=\"color: #993300;\"><strong>PFAT&#x2122;<\/strong><\/span> translations tools.\u00a0 Should there be a need see <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/translating-base-station-details\/\">this article<\/a> for details.\u00a0 Most post-processing tools also require entering this value for the greatest accuracy.<\/p>\n<p>Very often both LLLH and ECEF forms for the same point are given as well.\u00a0\u00a0 But when one needs to precisely convert a location between these two systems, the article below and its links may be of value:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/converting-ecef-to-llh-and-back\/\">Converting ECEF to LLH and back<\/a><\/p>\n<p>Now armed with the precise location value to be entered, we can resume the main thread&#8230;<\/p>\n<p><em><span style=\"color: #808000;\"><strong>Aside<\/strong><\/span><\/em>: If you are simply trying to get your RTK system up and running, you can use the rough LLH value your Base provides in autonomous mode as a starting\u00a0 point.\u00a0 Such a value will be precise and <em>repeatable<\/em> but not <em>accurate<\/em>.<\/p>\n<h2>How to Set Values in STRSRV<\/h2>\n<p>The ECEF values are set using the &#8220;<strong>Options&#8230;<\/strong>&#8221; button on the main dialog of STRSVR.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6273\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options.png\" alt=\"\" width=\"430\" height=\"285\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options.png 430w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-300x199.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-50x33.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-320x212.png 320w\" sizes=\"auto, (max-width: 430px) 100vw, 430px\" \/><\/p>\n<p>This brings up the &#8220;Options&#8221; dialog where these values are set.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6274 size-full\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-blank.png?_t=1558224385\" alt=\"Press the button Frank...\" width=\"459\" height=\"403\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-blank.png 459w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-blank-300x263.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-blank-50x44.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-blank-320x281.png 320w\" sizes=\"auto, (max-width: 459px) 100vw, 459px\" \/><\/p>\n<p>When first presented, the LLH values are greyed out. Press the &#8220;<strong>Station ID<\/strong>&#8221; checkbox to active them.\u00a0\u00a0 <strong>That is the big trick people most often trip over.<\/strong><\/p>\n<p>You can now enter the Latitude &#8211; Longitude &#8211; Height (LLH) values you determined in the prior steps, and STRSVR will convert them their ECEF formats (in units of 0.1mm) using the standard WGS84 ellipsoid.<\/p>\n<p><span style=\"color: #0000ff;\"><strong>Important<\/strong><\/span>: You should be entering <em>at least<\/em> 9 digits past the decimal point for the Latitude and Longitude values and at least 3 for the Height.\u00a0 This ensures mm level precision.\u00a0 The Height is the (signed) height above the reference ellipsoid, and <strong>not<\/strong> the local geoid or sea level.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6275\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-enabled.png\" alt=\"\" width=\"465\" height=\"400\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-enabled.png 465w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-enabled-300x258.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-enabled-50x43.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-enabled-320x275.png 320w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/p>\n<p>There is no a way to enter an additional antenna height offset here.\u00a0 It is presumed that any such offset has already been &#8220;baked into&#8221; the LLH\/ECEF value.\u00a0 You can enter E-W\/N-S\/U-D offset values, but these are rarely used in practice.<\/p>\n<p>If you instruct STRSVR to send a MT1006 (in the output control settings for a stream), the Ant Ht value will be set to zero.\u00a0 [The difference between an MT1005 and MT1006 is the presence of this one additional data element.]<\/p>\n<p>Note that you can also (optionally) enter details about the antenna model and the receiver type used in this dialog.<\/p>\n<p><strong>That is all there is to it<\/strong>. Now, when STRSRV sends MT1005\/1006 the content will reflect the values you set.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.use-snip.com\/kb\/article-categories\/rtk-lib\/\" target=\"_blank\" rel=\"noopener noreferrer\">Other RTKILIB related articles<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Message MT1005\/1006 Still not going out?<\/h4>\n<ul>\n<li>Did you instruct STRSRV to send it with a command line like &#8220;1005(10)&#8221;\u00a0 (<a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/using-strsvr-from-rtklib-with-snip\/\">review this article again<\/a>)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4039 size-full\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp.png\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp.png 472w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp-300x198.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp-50x33.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/08\/STRSVR_Translate_SetUp-320x211.png 320w\" alt=\"STRSVR_Translate_SetUp\" width=\"472\" height=\"311\" \/><\/p>\n<ul>\n<li>Use the SNIP <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/monitoring-a-stream-text-and-graphical-tools\/\">RTCM 3 Viewer tool<\/a> to see the messages and examine their contents.<\/li>\n<li>Or just right click on the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-stream-menu-controls\/\">context menu<\/a> and select &#8220;Show Message Types&#8221; for a rapid summary of the stream contents.<\/li>\n<\/ul>\n<h4>Is the Value Grossly Right?<\/h4>\n<p>Always a good idea to check your work.<\/p>\n<ul>\n<li>Use a <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/basic-navigation-chart-types\/\">Navigation<\/a> filter to run using the observations data\u00a0 <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/navigation-filter-types\/\">(support article<\/a>)<\/li>\n<li>The resulting plot (the moving orange data points) should be within a meter or so of the precise location you entered (the stationary red point), much like the image below. If the two points are widely divergent, there is a problem with the value you entered.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6296\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-Plot.png\" alt=\"\" width=\"500\" height=\"340\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-Plot.png 500w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-Plot-300x204.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-Plot-50x34.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2019\/05\/strsvr-options-Plot-320x218.png 320w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article reviews how to set the location of your GNSS Base Station in the RTKLIB &#8220;STRSRV&#8221;\u00a0 (stream server) tool. In order to use any GNSS Base Station for RTK, the Rover device MUST know the precise location of the Base.\u00a0 This is sent in the two RTCM3 message types; [&hellip;]<\/p>\n","protected":false},"author":13,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[113],"ht-kb-tag":[268,441,440],"class_list":["post-6271","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-rtk-lib","ht_kb_tag-ecef","ht_kb_tag-mt1005","ht_kb_tag-strsvr-rtklib"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/6271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/comments?post=6271"}],"version-history":[{"count":25,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/6271\/revisions"}],"predecessor-version":[{"id":6302,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/6271\/revisions\/6302"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=6271"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=6271"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=6271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}