{"id":9293,"date":"2025-12-16T22:40:45","date_gmt":"2025-12-16T22:40:45","guid":{"rendered":"https:\/\/www.use-snip.com\/kb\/?post_type=ht_kb&#038;p=9293"},"modified":"2025-12-20T21:40:42","modified_gmt":"2025-12-20T21:40:42","slug":"processing-rinex-files-from-within-snip","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/processing-rinex-files-from-within-snip\/","title":{"rendered":"Processing RINEX files from within SNIP"},"content":{"rendered":"<p>From <strong>Rev 3.19<\/strong> onward, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> contains processing tools to automate the creation of RINEX files from the raw files that can be saved for each stream \u00a0(typically binary RTCM3.x messages).\u00a0 [<span style=\"color: #008000;\"><strong>Hint:<\/strong><\/span> To save a raw file from a given data stream, right click on it and select the menu item \u201c<strong>Log raw data<\/strong>\u201d]\u00a0 The various setting and controls used for this are organized as part of the <strong>Data Logging Settings<\/strong> dialog and are discussed further in <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-can-snip-be-used-as-a-data-logger\/\" target=\"_blank\" rel=\"noopener\">this article<\/a>.<\/p>\n<h2><strong>Background<\/strong><\/h2>\n<p>RINEX, which stands for <em>Receiver Independent Exchange Format<\/em>, was developed by the International GNSS Service (IGS) and is now standardized by both the <a href=\"https:\/\/igs.org\/wg\/rinex\/\" target=\"_blank\" rel=\"noopener\">IGS RINEX Committee<\/a> and by <a href=\"https:\/\/www.rtcm.org\/publications\" target=\"_blank\" rel=\"noopener\">RTCM SC104<\/a>. RINEX is a textual (human readable) way to express common GNSS measurements such as the range and phase observations regardless of the GNSS model or manufacturer being used.\u00a0 When you submit your base station file to a third party processing site such as <a href=\"https:\/\/geodesy.noaa.gov\/OPUS\/\" target=\"_blank\" rel=\"noopener\">OPUS<\/a>\u00a0or <a href=\"https:\/\/webapp.csrs-scrs.nrcan-rncan.gc.ca\/geod\/tools-outils\/ppp.php\" target=\"_blank\" rel=\"noopener\">NRCan<\/a> to obtain the precise position of the antenna, the format needed by such tools is RINEX (<a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/how-to-quickly-locate-your-own-reference-ant\/\" target=\"_blank\" rel=\"noopener\">this article<\/a> describes the process of locating your antenna in more detail).\u00a0 RINEX is a mature format and is widely supported.\u00a0 The current release is version 4.02 (Oct 2024) but older release formats (such as versions 3.x and 2.11) still enjoy wide support.\u00a0 See also: <a href=\"https:\/\/en.wikipedia.org\/wiki\/RINEX\">https:\/\/en.wikipedia.org\/wiki\/RINEX<\/a><\/p>\n<h2><strong>The Dialog Box<\/strong><\/h2>\n<p>Here we are concerned with the section of the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/saving-data-into-log-files\/\"><strong>Data Logging Settings<\/strong><\/a> dialog enclosed by the checkbox marked <strong>Post-Process to Create RINEX files<\/strong>.<\/p>\n<p><a href=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2025\/12\/DataLoggingDialog-hilite.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9296 size-full\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2025\/12\/DataLoggingDialog-hilite.png\" alt=\"Dialog Box\" width=\"470\" height=\"620\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2025\/12\/DataLoggingDialog-hilite.png 470w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2025\/12\/DataLoggingDialog-hilite-227x300.png 227w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2025\/12\/DataLoggingDialog-hilite-38x50.png 38w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2025\/12\/DataLoggingDialog-hilite-320x422.png 320w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>RINEX Processing Flow<\/strong><\/h2>\n<p>The basic process flow for any base station data stream which is being logged is as follows:<\/p>\n<ol>\n<li>When new data from the base arrives, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> logs that data to the current logging file.[spacer height=&#8221;20px&#8221;]<\/li>\n<li>When the \u201cLog Interval\u201d has been reached (aligned with the local clock), the raw data file is closed and another one is opened. These files are named using the stream name (base station mountPt name) as well as appending a date and time to make identifying them easier.[spacer height=&#8221;20px&#8221;]<\/li>\n<li>If the checkbox <strong><em>Post Process to Create RINEX files<\/em><\/strong> has been checked (indicating that RINEX processing is active) then every time a raw data file is completed, a copy of it is placed into the folder indicated by the <strong><em>Save Raw Files to.<\/em><\/strong> The RINEX process will operate on the files found in this directory. \u00a0This file is deleted when processing is completed, but this can be controlled in the script file.[spacer height=&#8221;20px&#8221;]<\/li>\n<li>When the RINEX run time interval has been reached, the batch script or program indicated by the <strong><em>RINEX Bat File location<\/em><\/strong> will be run. This allows the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> operator to run (and customize) any tool desired for the processing.\u00a0 Many GNSS vendors (if not most) have a RINEX processing tool they can provide, and there are many such free tools widely available.\u00a0 In the section below we discuss settings using the common rtkconv.exe tool that is part of the popular RTKLIB tools\u00a0 (available for download at http:\/\/rtkexplorer.com\/ \u00a0or at\u00a0 https:\/\/www.rtklib.com\/ ). Formatting details and data decimation rates are easily set in the batch file and passed in the command line to the program to be run.[spacer height=&#8221;20px&#8221;]<\/li>\n<li>When the RINEX processing tool is run, it will then convert all matching files that are found in the <strong><em>Save Raw Files to.<\/em><\/strong> The resulting output files, in the desired RINEX format, are then placed into the folder defined by the control marked <strong><em>Put RINEX File in<\/em><\/strong>. \u00a0The <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> console log also reflects the status of the processing as the script runs.[spacer height=&#8221;20px&#8221;]<\/li>\n<li>These files can then be submitted to another site (OPUS, NRCan or others) for processing. In some deployments the folder <strong><em>Put RINEX File in<\/em><\/strong> is also made into an FTP site to allow other parties to gather the RINEX files.[spacer height=&#8221;20px&#8221;]<\/li>\n<\/ol>\n<p>Once set up, this process will update and complete without operator intervention.\u00a0 But the accumulation of large data files may be an issue that will require periodic maintenance to avoid running out of disk space.<\/p>\n<p>A few further remarks can be made about the three control settings&#8230;<\/p>\n<h3>Saving the Files<\/h3>\n<p>Select a folder with sufficient room to save the anticipated files.\u00a0 Ensure that <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> can write to this location.\u00a0 Do not select a drive that has slow file write rates (such as various attached long term storage that some Virtual machine configurations may offer). Slow hard drives will in turn cause <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> to be slower when potentially many files must be copied at the top of the hour (or whatever interval you have set).\u00a0 This is particularly important if you will be logging data from dozens of streams at the same time.<\/p>\n<h3>Post Processing the output Files<\/h3>\n<p>Similar advice can be made for the output side (have sufficient space, avoid slow drives).\u00a0 You may wish to create lines in the batch file to compress the RINEX file.\u00a0 As it is a simple text file, the common ZIP file process will provide ~90% compression rates.<\/p>\n<p>It can be very useful to set up an FTP or SFTP server for the output folder as well.\u00a0 There are many tools to allow you to do this. One tool we have successfully used and would highly recommend is <strong>Cerberus<\/strong> available from <a href=\"https:\/\/www.cerberusftp.com\/\">https:\/\/www.cerberusftp.com\/<\/a>\u00a0 who also make the popular <a href=\"https:\/\/filezilla-project.org\/download.php\" target=\"_blank\" rel=\"noopener\"><strong>FileZilla<\/strong> FTP client<\/a> tool.<\/p>\n<h3>The Program and Batch file<\/h3>\n<p>The heart of the process is the batch script file.\u00a0 This file is run (once) when the RINEX run time interval has been reached.\u00a0 It gathers a list of matching files from the folder and then runs the RINEX conversion tool for each file, passing in various command line arguments needed to produce the desired output.<\/p>\n<p>It is described in further detail in a <em>line by line<\/em> fashion in this related article (link to be provided).\u00a0 It is likely you will need to edit it to fit your own unique needs.<\/p>\n<p>Note that you can use the script <em>as is<\/em> but will need to download and install the RTKLIB rtkconv.exe tool from one of the links mentioned above.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #008000;\"><strong>Hint:<\/strong><\/span> At the bottom of the <strong><em>Data Logging Settings<\/em><\/strong> dialog is a checkbox marked <em>Add Debug Time Stamps Line\u00a0\u00a0 <\/em>When checked this will add a precise UTC time stamp to every line written to the raw file.\u00a0 This can be of value when debugging.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A short summary of the controls used to run a RINEX conversion process on raw data saved by your SNIP NTRIP Caster.<\/p>\n","protected":false},"author":13,"comment_status":"closed","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":[112,113],"ht-kb-tag":[266,265,264],"class_list":["post-9293","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-general","ht_kb_category-rtk-lib","ht_kb_tag-opus","ht_kb_tag-post-process","ht_kb_tag-rinex"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/9293","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=9293"}],"version-history":[{"count":6,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/9293\/revisions"}],"predecessor-version":[{"id":9315,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/9293\/revisions\/9315"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=9293"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=9293"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=9293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}