44 #ifndef GNSSTK_RINEX3OBSFILTEROPERATORS_HPP
45 #define GNSSTK_RINEX3OBSFILTEROPERATORS_HPP
68 public std::binary_function<Rinex3ObsData, Rinex3ObsData, bool>
111 if (l.
obs.size() < r.
obs.size())
116 if (l.
obs.size() > r.
obs.size())
123 Rinex3ObsData::DataMap::const_iterator lItr;
124 for (lItr = l.
obs.begin(); lItr != l.
obs.end(); lItr++)
126 SatID sat = lItr->first;
127 Rinex3ObsData::DataMap::const_iterator rItr = r.
obs.find(sat);
128 if (rItr == r.
obs.end())
133 std::vector<RinexDatum> lObs = lItr->second,
135 Rinex3ObsHeader::RinexObsMap::const_iterator romItr;
136 for(romItr =
rom.begin(); romItr !=
rom.end(); romItr++)
138 Rinex3ObsHeader::RinexObsVec::const_iterator rvItr;
139 for(rvItr = romItr->second.begin();
140 rvItr != romItr->second.end();
144 lData = lObs[lheader.
getObsIndex(romItr->first,*rvItr)];
145 rData = rObs[rheader.
getObsIndex(romItr->first,*rvItr)];
147 if (lData.
data + epsilon < rData.
data)
152 if (lData.
lli != 0 && rData.
lli != 0)
if (lData.
lli <
158 if (lData.
ssi != 0 && rData.
ssi != 0)
if (lData.
ssi <
177 public std::binary_function<Rinex3ObsData, Rinex3ObsData, bool>
191 public std::binary_function<Rinex3ObsData, Rinex3ObsData, bool>
210 public std::unary_function<Rinex3ObsHeader, bool>
228 std::set<std::string> commentSet;
234 std::inserter(commentSet, commentSet.begin()));
237 std::inserter(commentSet, commentSet.begin()));
240 std::copy(commentSet.begin(), commentSet.end(),
244 Rinex3ObsHeader::RinexObsMap::const_iterator i;
245 Rinex3ObsHeader::RinexObsVec::const_iterator j, k;
249 const std::string& sys = i->first;
251 if (rom.count(sys) ==0)
253 for (j = rov.begin(); j != rov.end(); j++)
255 k = std::find(rom[sys].begin(), rom[sys].end(), *j);
256 if (k == rom[sys].end())
258 std::cout <<
"Adding " << *j << std::endl;
259 rom[sys].push_back(*j);
275 #endif // GNSSTK_RINEX3OBSFILTEROPERATORS_HPP