{"id":2316,"date":"2016-09-30T22:57:22","date_gmt":"2016-09-30T22:57:22","guid":{"rendered":"\/?post_type=ht_kb&#038;p=2316"},"modified":"2018-04-29T15:25:35","modified_gmt":"2018-04-29T15:25:35","slug":"federating-data-streams","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/federating-data-streams\/","title":{"rendered":"Federating Data Streams"},"content":{"rendered":"<p>As a general rule, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> can federate data from other Casters (including other <strong><span style=\"color: #0000ff;\">SNIP<\/span><\/strong> installations) in any way you could care to connect such things.\u00a0 Use this ability to create the network you need, gather the set of data you need and to ensure that key data streams are distributed to others. Subject the license limit your copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> has for streams, there are no limits.<\/p>\n<p>You can think of each copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> as something like a single Lego building block.\u00a0 It is up to you what will connect to what.\u00a0 A few common variations of this are further described in this article.<\/p>\n<h4><strong>Single GNSS User<\/strong><\/h4>\n<p>The typical &#8220;single node&#8221; use of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> involves connecting a GNSS source (often from a local serial port) to <strong><span style=\"color: #0000ff;\">SNI<\/span>P<\/strong> and letting others (NTRIP Clients) then connect to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> to share the data stream.\u00a0 Any party that can reach the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node can connect to it (if allowed).\u00a0 This is perhaps the simplest use case.\u00a0 Variations of this involve\u00a0 connecting to other streams run by others (relay-remote streams) or having other devices send your <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node data (PUSH-In streams).<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2350\" src=\"\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-1024x920.png\" alt=\"typical_snip_wserialport\" width=\"460\" height=\"413\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-1024x920.png 1024w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-300x269.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-768x690.png 768w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-50x45.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-920x826.png 920w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-600x539.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort-320x287.png 320w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/10\/Typical_SNIP_wSerialPort.png 1129w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Many users who are new to using NTRIP start with such a configuration and then add additional data streams such as broadcasting improved orbital data or clock data, as their need grow.\u00a0 The low cost base station deployment referred to as\u00a0 &#8220;L1 only&#8221; or &#8220;uBlox + RTKLIB = base station&#8221; are also well served by <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> in its <em><strong>Lite<\/strong><\/em> form.<\/p>\n<p style=\"text-align: left;\">Variations of the above basic approach include a great many configurations where the local GNSS device must by connected by intermediate cables, adapter boxes, Bluetooth, and other means to create a basic serial port.\u00a0\u00a0 The rational for the use of these is often due to cost (many GNSS device makers charge an additional fee for the ability to send NTRIP Server data directly to a Caster).<\/p>\n<h4><strong>Single GNSS User, no static IP available<\/strong><\/h4>\n<p>The above use case works well if all your users can access the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node.\u00a0 This typically means that they all exist on the same sub-net, or that the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node has a static IP on the internet that other parties can reach.\u00a0 Variations of this also include using a commercial Dynamic DNS service (DDNS) to tell others where they can reach the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node.\u00a0 These are all variations of network connectivity issues which must be overcome to allow others to reach your <strong><span style=\"color: #0000ff;\">SNIP<\/span><\/strong> Caster.<\/p>\n<p>However, in the absence of one of these solutions, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> can be used to easily forward the data streams it has (one or more) to another NTCIP Caster (provided by <em>another<\/em> copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> or any other standards conformant Caster).\u00a0 This 2nd caster is then used as the public location where the NTRIP Clients can connect.\u00a0 This is most useful when firewalls are involved or when no static IP is available.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2327 aligncenter\" src=\"\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-320x159.png\" alt=\"singlegnss_noip\" width=\"585\" height=\"291\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-320x159.png 320w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-300x149.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-768x381.png 768w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-1024x508.png 1024w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-50x25.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-920x456.png 920w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP-600x297.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/SingleGNSS_noIP.png 1299w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><\/a><\/p>\n<p>In this image the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster on the left is using a PUSH-out mode stream to cross the firewall and\/or overcome the dynamic IP to reach the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster on the right.\u00a0\u00a0 The <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster on the right is accepting this data as a simple PUSH-In data stream.\u00a0 The <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster on the right can then provide this data (along with any other streams it has) to the NTRIP Clients.<\/p>\n<p>Note that the sending caster must also know the correct log-in credentials provided by the receiving caster.\u00a0 [Technically speaking, in this case the sending caster is connecting to the receiving caster as an NTRIP Server.]<\/p>\n<p>A final variation on this is to have the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> NTRIP Caster on the left connect using a relay-remote stream to the receiving caster and recover its own stream which is can then monitor for<em> end to end<\/em> quality assurance.\u00a0 This creates a &#8220;back haul&#8221; link to the original data source.\u00a0 This allows detecting issues such as message latency and drops out along the complete distribution route.\u00a0 [Technically speaking, in this case the final remote-relay connection to the right side NTRIP Caster as as an NTRIP Client device.]<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong>Hint:\u00a0<\/strong><\/span> If you need a public IP to send your corrections stream out to, consider using the <a href=\"http:\/\/RTK2go.com\">RTK2go.com<\/a> system.<\/p>\n<h4><strong>Federating Data Streams<\/strong><\/h4>\n<p>The easy ability to make these connections lends itself to creating <em>ad hoc<\/em> networks of data.\u00a0 Within reason such networks are to be encouraged.\u00a0 Here is an example where three <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Casters have been used to pass the data originally provided by the GNSS device shown on the bottom to each local user community.\u00a0 Note that each new layer adds (or drops) whatever content is needed.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/Federated.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2326 \" src=\"\/wp-content\/uploads\/2016\/09\/Federated-600x701.png\" alt=\"federated\" width=\"500\" height=\"584\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/Federated-600x701.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/Federated-257x300.png 257w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/Federated-43x50.png 43w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/Federated-320x374.png 320w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/Federated.png 741w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Keep in mind that users often do this without you (the Caster operator) being aware of it. Please keep in mind you may need to first obtain data rights to do this with private sector data streams.\u00a0 Many of the mountPt streams found on larger sites such as<strong> rtgpsout.unavco.org<\/strong> or <strong>rtcm-ntrip.org<\/strong> are also rebroadcast over different networks with slightly different names.\u00a0 The mountPt <strong>AZ01_RTCM3<\/strong>\u00a0found on our <a href=\"\/kb\/knowledge-base\/an-open-ntrip-caster\/\">open Caster<\/a> site at <a href=\"http:\/\/ntrip.use-snip.com:2101\">ntrip.use-snip.com\u00a0(on port 2101) <\/a>is a good example of this.\u00a0 This stream, which is located in the city of AZUSA, is a simple GPS only station located at one of our local high schools, yet it is rebroadcast in multiple international networks.<\/p>\n<p>A common problem to keep in mind when federating data streams from multiple other network is that they may be using different datums for the ECEF data they send.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Simple Data Logging<\/strong><\/h4>\n<p>Many users record corrections data from <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> for possible longer term use.\u00a0 <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> has several simple FTP abilities to gather, compress, and save files in support of this.\u00a0 And of course raw data from any stream can be logged for long term storage. So field servery team use a copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> operating at the office to gather duplicate corrections data from what will be needed in the field. This is a simple way to ensure an uninterrupted data stream for post processing use or as a recovery mechanism should field losses occur.\u00a0 In this use case <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is being used simply as digital tape recorder.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/09\/DataLogger.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2325\" src=\"\/wp-content\/uploads\/2016\/09\/DataLogger-320x226.png\" alt=\"datalogger\" width=\"434\" height=\"306\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-320x226.png 320w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-300x212.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-768x542.png 768w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-1024x723.png 1024w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-50x35.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-920x649.png 920w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger-600x424.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2016\/09\/DataLogger.png 1129w\" sizes=\"auto, (max-width: 434px) 100vw, 434px\" \/><\/a><\/p>\n<p>A variation on this is to take one copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> out to the field site, connect it to a stationary cellular link back to the desired corrections source (using a remote-rely stream connection), and then distribute this stream using local RF and WiFi \/ WiMax to all the local survey teams members during the campaign.\u00a0 This can be considerably cheaper then using dedicated radio links.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Self Connections<\/strong><\/h4>\n<p>It is also possible to send data from a <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> node back to itself.\u00a0 This has little practical value other then consuming your machine&#8217;s MIPS and bandwidth, but is not prevented by the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> control logic. The normal logic found in <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> to prevent duplicate mountPt names will be used when needed to ensure that every mountPt is unique (adding terms like &#8220;_02&#8221;, &#8220;_03&#8221; the the mountPt name as needed).<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a general rule, SNIP can federate data from other Casters (including other SNIP installations) in any way you could care to connect such things.\u00a0 Use this ability to create the network you need, gather the set of data you need and to ensure that key data streams are distributed [&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":[115],"ht-kb-tag":[361],"class_list":["post-2316","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-getting-started","ht_kb_tag-data-stream"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/2316","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=2316"}],"version-history":[{"count":19,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/2316\/revisions"}],"predecessor-version":[{"id":3900,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/2316\/revisions\/3900"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=2316"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=2316"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=2316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}