Index: /trunk/BNC/rinex/rnxobsfile.cpp
===================================================================
--- /trunk/BNC/rinex/rnxobsfile.cpp	(revision 3843)
+++ /trunk/BNC/rinex/rnxobsfile.cpp	(revision 3844)
@@ -502,2 +502,30 @@
 }
 
+// Set Header Information
+////////////////////////////////////////////////////////////////////////////
+void t_rnxObsFile::setHeader(const t_rnxObsHeader& header) {
+  _header._version     =  header._version;     
+  _header._interval    =  header._interval;    
+  _header._antennaName =  header._antennaName; 
+  _header._markerName  =  header._markerName;  
+  _header._antNEU      =  header._antNEU;      
+  _header._antXYZ      =  header._antXYZ;      
+  _header._antBSG      =  header._antBSG;      
+  _header._xyz         =  header._xyz;         
+  for (unsigned iPrn = 1; iPrn <= MAXPRN_GPS; iPrn++) {
+    _header._wlFactorsL1[iPrn] =  header._wlFactorsL1[iPrn]; 
+    _header._wlFactorsL2[iPrn] =  header._wlFactorsL2[iPrn]; 
+  }
+  _header._startTime   =  header._startTime;   
+  for (unsigned ii = 0; ii < header._obsTypesV2.size(); ii++) {
+    _header._obsTypesV2.push_back(header._obsTypesV2[ii]);
+  }
+  map<char, vector<QString> >::const_iterator it;
+  for (it = header._obsTypesV3.begin(); it != header._obsTypesV3.end(); it++) {
+    char                   sys     = it->first;
+    const vector<QString>& typesV3 = it->second;
+    for (unsigned ii = 0; ii < typesV3.size(); ii++) {
+      _header._obsTypesV3[sys].push_back(typesV3[ii]);
+    }
+  }
+}
Index: /trunk/BNC/rinex/rnxobsfile.h
===================================================================
--- /trunk/BNC/rinex/rnxobsfile.h	(revision 3843)
+++ /trunk/BNC/rinex/rnxobsfile.h	(revision 3844)
@@ -119,4 +119,9 @@
   };
 
+ public:
+  const t_rnxObsHeader& header() const {return _header;}
+  void setHeader(const t_rnxObsHeader& header);
+
+ private:
   const t_rnxEpo* nextEpochV2();
   const t_rnxEpo* nextEpochV3();
