Skip to content
Snippets Groups Projects

Resolve "TDCP batch implementation"

Merged Joan Vallvé Navarro requested to merge 15-tdcp-batch-implementation into devel
1 file
+ 19
19
Compare changes
  • Side-by-side
  • Inline
+ 19
19
@@ -34,8 +34,9 @@ TdcpOutput Tdcp(SnapshotPtr snapshot_r,
auto nav_k = snapshot_k->getNavigation();
if (tdcp_params.tdcp.use_old_nav)
{
snapshot_k->getSatellites().clear();
snapshot_k->setNavigation(snapshot_r->getNavigation());
auto new_snapshot_k = std::make_shared<Snapshot>(std::make_shared<Observations>(*snapshot_k->getObservations()),
std::make_shared<Navigation>(*snapshot_k->getNavigation()));
snapshot_k = new_snapshot_k;
}
// COMPUTE SATELLITES POSITION
@@ -44,36 +45,35 @@ TdcpOutput Tdcp(SnapshotPtr snapshot_r,
if (not snapshot_k->satellitesComputed())
snapshot_k->computeSatellites(opt.sateph);
// FILTER SATELLITES (ALREADY DISCARDED, CORRUPTED DATA, WRONG POSITION, CONSTELLATION, ELEVATION and SNR)
snapshot_r->filterObservations(discarded_sats, x_r, false, true, opt);
snapshot_k->filterObservations(discarded_sats, x_r, false, true, opt);
// COMPUTE RANGES
if (not snapshot_r->rangesComputed())
snapshot_r->computeRanges(x_r, opt);
if (not snapshot_k->rangesComputed())
snapshot_k->computeRanges(x_r, opt); // the x_r is only used to compute Azels -> corrections
// FILTER SATELLITES (ALREADY DISCARDED, CORRUPTED DATA, WRONG POSITION, CONSTELLATION, ELEVATION and SNR)
snapshot_r->filterObservations(discarded_sats, x_r, false, true, opt);
snapshot_k->filterObservations(discarded_sats, x_r, false, true, opt);
// FIND COMMON SATELLITES
std::set<int> common_sats = Range::findCommonSatellites(snapshot_r->getRanges(),
snapshot_k->getRanges());
// COMPUTE TDCP
TdcpOutput output = Tdcp(snapshot_r,
snapshot_k,
x_r,
common_sats,
d_0,
tdcp_params);
// UNDO temporary change navigation
if (tdcp_params.tdcp.use_old_nav)
if (common_sats.empty())
{
snapshot_k->setNavigation(nav_k);
snapshot_k->computeSatellites(opt.sateph);
TdcpOutput output;
output.success = false;
output.msg = "No common satellites after filtering observations.";
return output;
}
return output;
// COMPUTE TDCP
return Tdcp(snapshot_r,
snapshot_k,
x_r,
common_sats,
d_0,
tdcp_params);
}
TdcpOutput Tdcp(SnapshotPtr snapshot_r,
Loading