{"id":2002,"date":"2022-02-03T17:53:50","date_gmt":"2022-02-03T17:53:50","guid":{"rendered":"https:\/\/dreid.nl\/?p=2002"},"modified":"2022-02-03T17:59:49","modified_gmt":"2022-02-03T17:59:49","slug":"computing-the-accuracy-of-gnss-baselines","status":"publish","type":"post","link":"https:\/\/dreid.nl\/?p=2002","title":{"rendered":"Computing the accuracy of GNSS baselines"},"content":{"rendered":"<p>When designing a surveying network, it is important to know the accuracy of your observations in order to get a realistic estimate of the accuracy that can be achieved for the coordinates. For traditional observations such as total stations angles and distances, we usually rely on manufacturer specifications and experience. For GNSS baselines, this is more difficult, as the accuracy depends on factors such as the measurement duration and baseline length, where the latter may vary greatly.<\/p>\n<p>I was tasked to compute a realistic estimate for GNSS baseline standard deviations, based upon a past measurement campaign that used 20-minute static GNSS surveys and baseline lengths between 3 meters and 90 kilometers. I had the individual standard deviations that were used and tested in the network adjustment, for some 8900 baselines.<\/p>\n<p>The simple approach would be to compute the mean or median standard deviation for each of the three baseline vector components. But since the accuracy is dependent on the baseline length, this would yield an optimistic accuracy for long baselines and a pessimistic accuracy for short baselines. Instead, we want to compute the constant and distance-dependent part of the standard deviation, which we will do via least-squares adjustment. The functional model is<\/p>\n<p><em>s = a + b d<\/em><\/p>\n<p>with <em>s<\/em> being the standard deviation as used in\/reported by the network adjustment, <em>a<\/em> the constant part, <em>b<\/em> the distance-dependent part, and <em>d<\/em> the baseline length. This is linear, so we don&#8217;t need to iterate. The design matrix elements for each observation are obtained by linearization, each line of the design matrix containing<\/p>\n<p>[1 <em>d<\/em>]<\/p>\n<p>In my opinion, the easiest way to do the computation is in <a href=\"https:\/\/dreid.nl\/?p=1989\">Octave<\/a>. I did some preprocessing of the data in Excel (such as computing the baseline length from the baseline vector components), and created a text file with four columns: baseline length and the standard deviation of the X, Y, and Z components:<\/p>\n<p><code>77733.06768\t0.1443225\t0.3188318\t0.1335789<br \/>\n77754.58419\t0.2333499\t0.227157\t0.178969<br \/>\n77755.33892\t0.0163548\t0.0061838\t0.0186347<br \/>\n...<\/code><\/p>\n<p>This file can be read in Octave this way:<\/p>\n<p><code>fid=fopen(\"stdafw.txt\",\"r\");<br \/>\n[data,n]=fscanf(fid,\"%f\\n\",[4,Inf]);<br \/>\nfclose(fid);<\/code><\/p>\n<p>n is the number of elements read, so we need to divide it by 4 to get the number of observations and dimension the matrices that we need. We can then construct the design matrix and fill the observation vectors.<\/p>\n<p><code>n=n\/4;<br \/>\nA=zeros(n,2);<br \/>\nyx=zeros(n,1);<br \/>\nyy=zeros(n,1);<br \/>\nyz=zeros(n,1);<\/code><\/p>\n<p><code>for i=1:n<br \/>\nA(i,1)=1;<br \/>\nA(i,2)=data(1,i)\/1000;<br \/>\nyx(i,1)=data(2,i);<br \/>\nyy(i,1)=data(3,i);<br \/>\nyz(i,1)=data(4,i);<br \/>\nend<\/code><\/p>\n<p>Computing the result is super easy in Octave:<\/p>\n<p><code>xx=inv(A'*A)*A'*yx<br \/>\nxy=inv(A'*A)*A'*yy<br \/>\nxz=inv(A'*A)*A'*yz<\/code><\/p>\n<p>We can then plot both the observations and the resulting fit (shown here only for X):<\/p>\n<p><code>figure(1);<br \/>\nplot(data(1,:),yx,'.');<br \/>\nhold on;<br \/>\nx=[0;90000];<br \/>\ny=[xx(1);xx(1)+xx(2)*x(2)\/1000];<br \/>\nplot(x,y,'-r');<br \/>\nxlabel(\"Lengte basislijn [m]\");<br \/>\nylabel(\"Standaardafwijking [m]\");<br \/>\ntitle(\"Standaardafwijking X\");<\/code><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2004\" src=\"http:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png\" alt=\"\" width=\"593\" height=\"442\" srcset=\"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png 593w, https:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x-300x224.png 300w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When designing a surveying network, it is important to know the accuracy of your observations in order to get a realistic estimate of the accuracy that can be achieved for the coordinates. For traditional observations such as total stations angles and distances, we usually rely on manufacturer specifications and experience. For GNSS baselines, this is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2004,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100],"tags":[106,107,105],"class_list":{"0":"post-2002","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-blog","8":"tag-gnss","9":"tag-least-squares","10":"tag-octave","11":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Computing the accuracy of GNSS baselines - DreiD BV<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dreid.nl\/?p=2002\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Computing the accuracy of GNSS baselines - DreiD BV\" \/>\n<meta property=\"og:description\" content=\"When designing a surveying network, it is important to know the accuracy of your observations in order to get a realistic estimate of the accuracy that can be achieved for the coordinates. For traditional observations such as total stations angles and distances, we usually rely on manufacturer specifications and experience. For GNSS baselines, this is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dreid.nl\/?p=2002\" \/>\n<meta property=\"og:site_name\" content=\"DreiD BV\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreiDBV\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-03T17:53:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-03T17:59:49+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png\" \/>\n\t<meta property=\"og:image:width\" content=\"593\" \/>\n\t<meta property=\"og:image:height\" content=\"442\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tobias\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tobias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Verwachte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002\"},\"author\":{\"name\":\"Tobias\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/person\\\/724765ca445bdd176b5dfa6f0f432741\"},\"headline\":\"Computing the accuracy of GNSS baselines\",\"datePublished\":\"2022-02-03T17:53:50+00:00\",\"dateModified\":\"2022-02-03T17:59:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002\"},\"wordCount\":392,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/x.png\",\"keywords\":[\"GNSS\",\"Least squares\",\"Octave\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/dreid.nl\\\/?p=2002#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002\",\"url\":\"https:\\\/\\\/dreid.nl\\\/?p=2002\",\"name\":\"Computing the accuracy of GNSS baselines - DreiD BV\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/x.png\",\"datePublished\":\"2022-02-03T17:53:50+00:00\",\"dateModified\":\"2022-02-03T17:59:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dreid.nl\\\/?p=2002\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#primaryimage\",\"url\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/x.png\",\"contentUrl\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/x.png\",\"width\":593,\"height\":442},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=2002#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dreid.nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Computing the accuracy of GNSS baselines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#website\",\"url\":\"https:\\\/\\\/dreid.nl\\\/\",\"name\":\"DreiD BV\",\"description\":\"3D printen en meer\",\"publisher\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dreid.nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#organization\",\"name\":\"DreiD B.V.\",\"url\":\"https:\\\/\\\/dreid.nl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"http:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/cropped-logo-vierkant.png\",\"contentUrl\":\"http:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/cropped-logo-vierkant.png\",\"width\":512,\"height\":512,\"caption\":\"DreiD B.V.\"},\"image\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/DreiDBV\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/person\\\/724765ca445bdd176b5dfa6f0f432741\",\"name\":\"Tobias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g\",\"caption\":\"Tobias\"},\"url\":\"https:\\\/\\\/dreid.nl\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Computing the accuracy of GNSS baselines - DreiD BV","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dreid.nl\/?p=2002","og_locale":"nl_NL","og_type":"article","og_title":"Computing the accuracy of GNSS baselines - DreiD BV","og_description":"When designing a surveying network, it is important to know the accuracy of your observations in order to get a realistic estimate of the accuracy that can be achieved for the coordinates. For traditional observations such as total stations angles and distances, we usually rely on manufacturer specifications and experience. For GNSS baselines, this is [&hellip;]","og_url":"https:\/\/dreid.nl\/?p=2002","og_site_name":"DreiD BV","article_publisher":"https:\/\/www.facebook.com\/DreiDBV","article_published_time":"2022-02-03T17:53:50+00:00","article_modified_time":"2022-02-03T17:59:49+00:00","og_image":[{"width":593,"height":442,"url":"http:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png","type":"image\/png"}],"author":"Tobias","twitter_card":"summary_large_image","twitter_misc":{"Geschreven door":"Tobias","Verwachte leestijd":"2 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dreid.nl\/?p=2002#article","isPartOf":{"@id":"https:\/\/dreid.nl\/?p=2002"},"author":{"name":"Tobias","@id":"https:\/\/dreid.nl\/#\/schema\/person\/724765ca445bdd176b5dfa6f0f432741"},"headline":"Computing the accuracy of GNSS baselines","datePublished":"2022-02-03T17:53:50+00:00","dateModified":"2022-02-03T17:59:49+00:00","mainEntityOfPage":{"@id":"https:\/\/dreid.nl\/?p=2002"},"wordCount":392,"commentCount":0,"publisher":{"@id":"https:\/\/dreid.nl\/#organization"},"image":{"@id":"https:\/\/dreid.nl\/?p=2002#primaryimage"},"thumbnailUrl":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png","keywords":["GNSS","Least squares","Octave"],"articleSection":["Blog"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dreid.nl\/?p=2002#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dreid.nl\/?p=2002","url":"https:\/\/dreid.nl\/?p=2002","name":"Computing the accuracy of GNSS baselines - DreiD BV","isPartOf":{"@id":"https:\/\/dreid.nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dreid.nl\/?p=2002#primaryimage"},"image":{"@id":"https:\/\/dreid.nl\/?p=2002#primaryimage"},"thumbnailUrl":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png","datePublished":"2022-02-03T17:53:50+00:00","dateModified":"2022-02-03T17:59:49+00:00","breadcrumb":{"@id":"https:\/\/dreid.nl\/?p=2002#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dreid.nl\/?p=2002"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/dreid.nl\/?p=2002#primaryimage","url":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png","contentUrl":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/02\/x.png","width":593,"height":442},{"@type":"BreadcrumbList","@id":"https:\/\/dreid.nl\/?p=2002#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dreid.nl\/"},{"@type":"ListItem","position":2,"name":"Computing the accuracy of GNSS baselines"}]},{"@type":"WebSite","@id":"https:\/\/dreid.nl\/#website","url":"https:\/\/dreid.nl\/","name":"DreiD BV","description":"3D printen en meer","publisher":{"@id":"https:\/\/dreid.nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dreid.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/dreid.nl\/#organization","name":"DreiD B.V.","url":"https:\/\/dreid.nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/dreid.nl\/#\/schema\/logo\/image\/","url":"http:\/\/dreid.nl\/wp-content\/uploads\/2017\/11\/cropped-logo-vierkant.png","contentUrl":"http:\/\/dreid.nl\/wp-content\/uploads\/2017\/11\/cropped-logo-vierkant.png","width":512,"height":512,"caption":"DreiD B.V."},"image":{"@id":"https:\/\/dreid.nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreiDBV"]},{"@type":"Person","@id":"https:\/\/dreid.nl\/#\/schema\/person\/724765ca445bdd176b5dfa6f0f432741","name":"Tobias","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g","caption":"Tobias"},"url":"https:\/\/dreid.nl\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts\/2002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2002"}],"version-history":[{"count":4,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts\/2002\/revisions"}],"predecessor-version":[{"id":2008,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts\/2002\/revisions\/2008"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/media\/2004"}],"wp:attachment":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}