当前位置: 首页>>代码示例>>C++>>正文


C++ SatIDSet类代码示例

本文整理汇总了C++中SatIDSet的典型用法代码示例。如果您正苦于以下问题:C++ SatIDSet类的具体用法?C++ SatIDSet怎么用?C++ SatIDSet使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了SatIDSet类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: checkLimits

      // This method checks the limits and modifies 'gData' accordingly.
   void SolverPPPFB::checkLimits( gnssRinex& gData,
                                  double codeLimit,
                                  double phaseLimit )
   {

         // Set to store rejected satellites
      SatIDSet satRejectedSet;

         // Let's check limits
      for( satTypeValueMap::iterator it = gData.body.begin();
           it != gData.body.end();
           ++it )
      {

            // Check postfit values and mark satellites as rejected
         if( std::abs((*it).second( TypeID::postfitC )) > codeLimit )
         {
            satRejectedSet.insert( (*it).first );
         }

         if( std::abs((*it).second( TypeID::postfitL )) > phaseLimit )
         {
            satRejectedSet.insert( (*it).first );
         }

      }  // End of 'for( satTypeValueMap::iterator it = gds.body.begin();...'


         // Update the number of rejected measurements
      rejectedMeasurements += satRejectedSet.size();

         // Remove satellites with missing data
      gData.removeSatID(satRejectedSet);

   }  // End of method 'SolverPPPFB::checkLimits()'
开发者ID:rwpenney,项目名称:GPSTk,代码行数:36,代码来源:SolverPPPFB.cpp

示例2: throw

      // Returns a satTypeValueMap object, filtering the target observables.
      //
      // @param gData     Data object holding the data.
      //
   satTypeValueMap& SimpleFilter::Process(satTypeValueMap& gData)
      throw(ProcessingException)
   {

      try
      {

         SatIDSet satRejectedSet;

            // Check all the indicated TypeID's
         TypeIDSet::const_iterator pos;
         for (pos = filterTypeSet.begin(); pos != filterTypeSet.end(); ++pos)
         {

            double value(0.0);

               // Loop through all the satellites
            satTypeValueMap::iterator it;
            for (it = gData.begin(); it != gData.end(); ++it) 
            {
               try
               {
                     // Try to extract the values
                  value = (*it).second(*pos);

                     // Now, check that the value is within bounds
                  if ( !( checkValue(value) ) )
                  {
                        // If value is out of bounds, then schedule this
                        // satellite for removal
                      satRejectedSet.insert( (*it).first );
                  }
               }
               catch(...)
               {
                     // If some value is missing, then schedule this satellite
                     // for removal
                  satRejectedSet.insert( (*it).first );
               }
            }

               // Before checking next TypeID, let's remove satellites with
               // data out of bounds
            gData.removeSatID(satRejectedSet);
         }

         return gData;

      }
      catch(Exception& u)
      {
            // Throw an exception if something unexpected happens
         ProcessingException e( getClassName() + ":"
                                + u.what() );

         GPSTK_THROW(e);

      }

   }  // End of 'SimpleFilter::Process()'
开发者ID:Milfhunter,项目名称:gpstk,代码行数:64,代码来源:SimpleFilter.cpp

示例3: throw

      /* Returns a satTypeValueMap object, adding the new data generated
       *  when calling this object.
       *
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& ComputeMelbourneWubbena::Process(satTypeValueMap& gData)
      throw(ProcessingException)
   {

      try
      {

         double value1(0.0);
         double value2(0.0);
         double value3(0.0);
         double value4(0.0);

         SatIDSet satRejectedSet;

            // Loop through all the satellites
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it) 
         {
            try
            {
                  // Try to extract the values
               value1 = (*it).second(type1);
               value2 = (*it).second(type2);
               value3 = (*it).second(type3);
               value4 = (*it).second(type4);
            }
            catch(...)
            {
                  // If some value is missing, then schedule this satellite
                  // for removal
               satRejectedSet.insert( (*it).first );
               continue;
            }

               // If everything is OK, then get the new value inside
               // the structure
            (*it).second[resultType] = getCombination( value1,
                                                       value2,
                                                       value3,
                                                       value4 );
         }

            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {
            // Throw an exception if something unexpected happens
         ProcessingException e( getClassName() + ":"
                                + StringUtils::asString( getIndex() ) + ":"
                                + u.what() );

         GPSTK_THROW(e);

      }

   }  // End of method 'ComputeMelbourneWubbena::Process()'
开发者ID:loongfee,项目名称:ossim-svn,代码行数:65,代码来源:ComputeMelbourneWubbena.cpp

示例4: indexOfSat

   int GeneralConstraint::findIndexOfSat( const SatIDSet& satSet,
                                          const SatID& sat )
   {
      int indexOfSat(-1);

      int i(0);
      for(SatIDSet::const_iterator it=satSet.begin();
          it!=satSet.end();
          ++it)
      {
         if((*it)==sat) indexOfSat = i;

         i++;
      }

      return indexOfSat;

   }  // End of method 'GeneralConstraint::findIndexOfSat()'
开发者ID:Milfhunter,项目名称:gpstk,代码行数:18,代码来源:GeneralConstraint.cpp

示例5: getVariables

   VariableSet GeneralConstraint::getVariables( const SourceID& source, 
                                                const SatIDSet& satSet, 
                                                const TypeID& type )
   {
      VariableSet vset;

      VariableSet varSet = getVariables(source,type);
      for(VariableSet::iterator itv=varSet.begin();
         itv!=varSet.end();
         ++itv)
      {
         SatIDSet::const_iterator it = satSet.find(itv->getSatellite());
         if( it != satSet.end() ) vset.insert(*itv);
      }

      return vset;

   }  // End of method 'GeneralConstraint::getVariables(...'
开发者ID:Milfhunter,项目名称:gpstk,代码行数:18,代码来源:GeneralConstraint.cpp

示例6: throw

      /* Returns a satTypeValueMap object, adding the new data generated
       * when calling this object.
       *
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& ComputeIURAWeights::Process( const DayTime& time,
                                                 satTypeValueMap& gData )
      throw(ProcessingException)
   {

      try
      {

            // By default set the wight as a very small value
         double weight(0.000001);

         SatIDSet satRejectedSet;

               // Loop through all the satellites
         satTypeValueMap::iterator it;
         for( it = gData.begin(); it != gData.end(); ++it )
         {

            try
            {

                  // Try to extract the weight value
               if( pBCEphemeris != NULL )
               {
                  weight = getWeight( ((*it).first), time, pBCEphemeris );
               }
               else
               {

                  if( pTabEphemeris != NULL )
                  {
                     weight = getWeight( ((*it).first), time, pTabEphemeris );
                  }
               }
            }
            catch(...)
            {

                  // If some value is missing, then schedule this
                  // satellite for removal
               satRejectedSet.insert( (*it).first );

               continue;

            }

               // If everything is OK, then get the new value inside
               // the GDS structure
            (*it).second[TypeID::weight] = weight;

         }  // End of 'for( it = gData.begin(); it != gData.end(); ++it )'


            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {
            // Throw an exception if something unexpected happens
         ProcessingException e( getClassName() + ":"
                                + StringUtils::asString( getIndex() ) + ":"
                                + u.what() );

         GPSTK_THROW(e);

      }

   }  // End of method 'ComputeIURAWeights::Process()'
开发者ID:ianmartin,项目名称:GPSTk,代码行数:76,代码来源:ComputeIURAWeights.cpp

示例7: throw

      /* Returns a reference to a satTypeValueMap object after differencing
       * data type values given in 'diffTypes' field with respect to
       * reference station data in 'refData' field.
       *
       * @param gData      Data object holding the data.
       */
   satTypeValueMap& DeltaOp::Process(satTypeValueMap& gData)
      throw(ProcessingException)
   {

      try
      {

         SatIDSet satRejectedSet;

            // Loop through all the satellites in the station data set
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it)
         {

               // Let's find if the same satellite is present in refData
            satTypeValueMap::const_iterator itref;
            itref = refData.find((*it).first);

               // If we found the satellite, let's proceed with the differences
            if (itref != refData.end())
            {

                  // We must compute the difference for all the types in
                  // 'diffTypes' set
               TypeIDSet::const_iterator itType;
               for( itType = diffTypes.begin();
                    itType != diffTypes.end();
                    ++itType )
               {

                  double value1(0.0);
                  double value2(0.0);

                  try
                  {

                        // Let's try to compute the difference
                     value1 = gData((*it).first)(*itType);
                     value2 = refData((*it).first)(*itType);

                        // Get difference into data structure
                     gData((*it).first)((*itType)) =  value1 - value2;

                  }
                  catch(...)
                  {

                        // If some value is missing, then schedule this
                        // satellite for removal
                     satRejectedSet.insert( (*it).first );

                        // Skip this value if problems arise
                     continue;

                  }

               }  // End of 'for( itType = diffTypes.begin(); ...'

                  // update CSFlag
               if(updateCSFlag)
               {
                  double CSValue1 = gData[it->first][TypeID::CSL1] 
                                   +refData[it->first][TypeID::CSL1];
                  double CSValue2 = gData[it->first][TypeID::CSL2] 
                                   +refData[it->first][TypeID::CSL2];


                  gData[it->first][TypeID::CSL1] = (CSValue1 > 0.0) ? 1.0 : 0.0;
                  
                  gData[it->first][TypeID::CSL2] = (CSValue2 > 0.0) ? 1.0 : 0.0;

               }  // End of 'if(updateCSFlag)'

            }
            else
            {

                  // If we didn't find the same satellite in both sets, mark
                  // it for deletion
               satRejectedSet.insert( (*it).first );

               continue;

            }  // End of 'if (itref != refData.end())'

         }  // End of 'for (it = gData.begin(); it != gData.end(); ++it)'

            // If ordered so, delete the missing satellites
         if (deleteMissingSats)
         {
            gData.removeSatID(satRejectedSet);
         }

         return gData;
//.........这里部分代码省略.........
开发者ID:JC5005,项目名称:GPSTk,代码行数:101,代码来源:DeltaOp.cpp

示例8: throw

      /* Returns a satTypeValueMap object, adding the new data generated when
       * calling this object.
       *
       * @param time      Epoch corresponding to the data.
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& ComputeSatPCenter::Process(const DayTime& time,
                                           satTypeValueMap& gData)
      throw(ProcessingException)
   {

      try
      {

            // Compute Sun position at this epoch
         SunPosition sunPosition;
         Triple sunPos(sunPosition.getPosition(time));

            // Define a Triple that will hold satellite position, in ECEF
         Triple svPos(0.0, 0.0, 0.0);

         SatIDSet satRejectedSet;

            // Loop through all the satellites
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it)
         {

               // Use ephemeris if satellite position is not already computed
            if( ( (*it).second.find(TypeID::satX) == (*it).second.end() ) ||
                ( (*it).second.find(TypeID::satY) == (*it).second.end() ) ||
                ( (*it).second.find(TypeID::satZ) == (*it).second.end() ) )
            {

               if(pEphemeris==NULL)
               {

                     // If ephemeris is missing, then remove all satellites
                  satRejectedSet.insert( (*it).first );

                  continue;
               }
               else
               {

                     // Try to get satellite position
                     // if it is not already computed
                  try
                  {
                        // For our purposes, position at receive time
                        // is fine enough
                     Xvt svPosVel(pEphemeris->getXvt( (*it).first, time ));

                        // If everything is OK, then continue processing.
                     svPos[0] = svPosVel.x.theArray[0];
                     svPos[1] = svPosVel.x.theArray[1];
                     svPos[2] = svPosVel.x.theArray[2];

                  }
                  catch(...)
                  {

                        // If satellite is missing, then schedule it
                        // for removal
                     satRejectedSet.insert( (*it).first );

                     continue;
                  }

               }

            }
            else
            {

                  // Get satellite position out of GDS
               svPos[0] = (*it).second[TypeID::satX];
               svPos[1] = (*it).second[TypeID::satY];
               svPos[2] = (*it).second[TypeID::satZ];

            }  // End of 'if( ( (*it).second.find(TypeID::satX) == ...'


               // Let's get the satellite antenna phase correction value in
               // meters, and insert it in the GNSS data structure.
            (*it).second[TypeID::satPCenter] =
               getSatPCenter((*it).first, time, svPos, sunPos);

         }  // End of 'for (it = gData.begin(); it != gData.end(); ++it)'

            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {

            // Throw an exception if something unexpected happens
//.........这里部分代码省略.........
开发者ID:loongfee,项目名称:ossim-svn,代码行数:101,代码来源:ComputeSatPCenter.cpp

示例9: throw

      /* Returns a satTypeValueMap object, adding the new data
       * generated when calling this object.
       *
       * @param time      Epoch corresponding to the data.
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& ComputeSimpleWeights::Process( const CommonTime& time,
                                                 satTypeValueMap& gData )
      throw(ProcessingException)
   {

      try
      {

            // If we are using a 5th order Taylor-based differencing filter, the
            // corresponding scale factor to convert from covariance matrix to
            // double-differenced covariance matrix is 1.509551839.
         double scaleFact( 1.509551839 );

            // Declare some important constants
         double tropoVar( 0.0004 );    // (0.02 m)^2
         double multiVar( 0.000025 );  // (0.005 m)^2

            // We need a NBTropModel initialized with dummy values
         NBTropModel tropoObj(0.0, 0.0, 1);

         SatIDSet satRejectedSet;


            // Loop through all the satellites
         for( satTypeValueMap::iterator it = gData.begin();
              it != gData.end();
              ++it )
         {

            double elevP( 0.0 );

            try
            {
               elevP = gData.getValue( (*it).first, TypeID::elevation );
            }
            catch(...)
            {

                  // If some value is missing, then schedule this satellite
                  // for removal
               satRejectedSet.insert( (*it).first );

               continue;

            }

               // If everything is OK, then compute the weight value and
               // put it into the GDS structure
            double mt( tropoObj.dry_mapping_function(elevP) );

            double weight( 1.0 / ( scaleFact*( mt*mt*tropoVar + multiVar ) ) );

            (*it).second[TypeID::weight] = weight;

         }

            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {
            // Throw an exception if something unexpected happens
         ProcessingException e( getClassName() + ":"
                                + u.what() );

         GPSTK_THROW(e);

      }

   }  // End of method 'ComputeSimpleWeightsWeights::Process()'
开发者ID:PPNav,项目名称:GPSTk,代码行数:79,代码来源:ComputeSimpleWeights.cpp

示例10: throw

    // Returns a reference to a gnssSatTypeValue object after differencing the
    // data type values given in the diffTypes field with respect to reference
    // satellite data.
    //
    // @param gData     Data object holding the data.
    //
    satTypeValueMap& NablaOp::Process(satTypeValueMap& gData)
      throw(ProcessingException)
   {

      try
      {

         double maxElevation(0.0);


            // If configured to do so, let's look for reference satellite
         if (lookReferenceSat)
         {

               // Loop through all satellites in reference station data set,
               // looking for reference satellite
            satTypeValueMap::iterator it;
            for (it = gData.begin(); it != gData.end(); ++it)
            {

                  // The satellite with the highest elevation will usually be
                  // the reference satellite
               if ( gData((*it).first)(TypeID::elevation) > maxElevation )
               {

                  refSat = (*it).first;
                  maxElevation = gData((*it).first)(TypeID::elevation);

               }

            }

         }  // End of 'if (lookReferenceSat)'


            // We will use reference satellite data as reference data
         satTypeValueMap refData(gData.extractSatID(refSat));

            // We must remove reference satellite data from data set
         gData.removeSatID(refSat);


         SatIDSet satRejectedSet;


            // Loop through all the satellites in station data set
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it)
         {

               // We must compute the difference for all types in
               // 'diffTypes' set
            TypeIDSet::const_iterator itType;
            for(itType = diffTypes.begin(); itType != diffTypes.end(); ++itType)
            {

               double value1(0.0);
               double value2(0.0);

               try
               {

                     // Let's try to compute the difference
                  value1 = gData((*it).first)(*itType);
                  value2 = refData(refSat)(*itType);

                     // Get difference into data structure
                  gData((*it).first)((*itType)) =  value1 - value2;

               }
               catch(...)
               {

                     // If some value is missing, then schedule this satellite
                     // for removal
                  satRejectedSet.insert( (*it).first );

                  continue;

               }

            }  // End of 'for(itType = diffTypes.begin(); ...'

         }  // End of 'for (it = gData.begin(); it != gData.end(); ++it)'


            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {
//.........这里部分代码省略.........
开发者ID:etschneider,项目名称:GPSTk,代码行数:101,代码来源:NablaOp.cpp

示例11: throw

      /* Returns a satTypeValueMap object, adding the new data generated
       *  when calling this object.
       *
       * @param epoch     Time of observations.
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& EclipsedSatFilter::Process( const CommonTime& epoch,
                                                satTypeValueMap& gData )
      throw(ProcessingException)
   {

      try
      {

         SatIDSet satRejectedSet;

            // Set the threshold to declare that satellites are in eclipse
            // threshold = cos(180 - coneAngle/2)
         double threshold( std::cos(PI - coneAngle/2.0*DEG_TO_RAD) );

            // Compute Sun position at this epoch, and store it in a Triple
         SunPosition sunPosition;
         Triple sunPos(sunPosition.getPosition(epoch));

            // Define a Triple that will hold satellite position, in ECEF
         Triple svPos(0.0, 0.0, 0.0);

            // Loop through all the satellites
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it) 
         {
               // Check if satellite position is not already computed
            if( ( (*it).second.find(TypeID::satX) == (*it).second.end() ) ||
                ( (*it).second.find(TypeID::satY) == (*it).second.end() ) ||
                ( (*it).second.find(TypeID::satZ) == (*it).second.end() ) )
            {

                  // If satellite position is missing, then schedule this 
                  // satellite for removal
               satRejectedSet.insert( (*it).first );
               continue;
            }
            else
            {
                  // Get satellite position out of GDS
               svPos[0] = (*it).second[TypeID::satX];
               svPos[1] = (*it).second[TypeID::satY];
               svPos[2] = (*it).second[TypeID::satZ];
            }

               // Unitary vector from Earth mass center to satellite
            Triple rk( svPos.unitVector() );

               // Unitary vector from Earth mass center to Sun
            Triple ri( sunPos.unitVector() );

               // Get dot product between unitary vectors = cosine(angle)
            double cosAngle(ri.dot(rk));

               // Check if satellite is within shadow
            if(cosAngle <= threshold)
            {
                  // If satellite is eclipsed, then schedule it for removal
               satRejectedSet.insert( (*it).first );

                  // Keep track of last known epoch the satellite was in eclipse
               shadowEpoch[(*it).first] = epoch;

               continue;
            }
            else
            {
                  // Maybe the satellite is out fo shadow, but it was recently
                  // in eclipse. Check also that.
               if( shadowEpoch.find( (*it).first ) != shadowEpoch.end() )
               {
                     // If satellite was recently in eclipse, check if elapsed
                     // time is less or equal than postShadowPeriod
                  if( std::abs( ( epoch - shadowEpoch[(*it).first] ) ) <=
                                postShadowPeriod )
                  {
                        // Satellite left shadow, but too recently. Delete it
                     satRejectedSet.insert( (*it).first );
                  }
                  else
                  {
                        // If satellite left shadow a long time ago, set it free
                     shadowEpoch.erase( (*it).first );
                  }
               }
            }

         }

            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
//.........这里部分代码省略.........
开发者ID:PPNav,项目名称:GPSTk,代码行数:101,代码来源:EclipsedSatFilter.cpp

示例12: prepareCurrentSourceSat

      // Prepare set of current unknowns and list of current equations
   VariableSet EquationSystem::prepareCurrentUnknownsAndEquations(
                                                         gnssDataMap& gdsMap )
   {

         // Let's clear the current equations list
      currentEquationsList.clear();

         // Let's create 'currentUnkSet' set
      VariableSet currentUnkSet;

         // Get "currentSatSet" and "currentSourceSet"
         // and stored in currentSourceSet and currentSatSet
      prepareCurrentSourceSat( gdsMap );


         // Visit each "Equation" in "equationDescriptionList"
      for( std::list<Equation>::const_iterator itEq =
                                                equationDescriptionList.begin();
           itEq != equationDescriptionList.end();
           ++itEq )
      {

            // First, get the SourceID set for this equation description
         SourceIDSet equSourceSet;

            // Check if current equation description is valid for all sources
         if ( (*itEq).getEquationSource() == Variable::allSources )
         {
            equSourceSet = currentSourceSet;
         }
         else
         {

               // Check if equation description is valid for some sources
            if ( (*itEq).getEquationSource() == Variable::someSources )
            {

                  // We have to find the intersection between equation
                  // description SourceID's and available SourceID's.
               SourceIDSet tempSourceSet( (*itEq).getSourceSet() );

                  // Declare an 'insert_iterator' to be used by
                  // 'set_intersection' algorithm (provided by STL)
               std::insert_iterator< SourceIDSet >
                                 itOut( equSourceSet, equSourceSet.begin() );

                  // Let's intersect both sets
               set_intersection( tempSourceSet.begin(), tempSourceSet.end(),
                              currentSourceSet.begin(), currentSourceSet.end(),
                              itOut );

            }
            else
            {
                  // In this case, we take directly the source into the
                  // equation source set
               equSourceSet.insert( (*itEq).getEquationSource() );
            }

         }  // End of 'if ( (*itEq).getEquationSource() == ...'
         
            // Second, get the SatID set for this equation description
         SatIDSet equSatSet = (*itEq).getSatSet();
         

            // We have the SourceID set that is applicable to this
            // equation description.

            // Now we must get the satellites visible from each
            // particular SourceID
         for( SourceIDSet::const_iterator itSource = equSourceSet.begin();
              itSource != equSourceSet.end();
              ++itSource )
         {

               // Get visible satellites from this SourceID
            SatIDSet visibleSatSet;

               // Iterate through all items in the gnssDataMap
            for( gnssDataMap::const_iterator it = gdsMap.begin();
                 it != gdsMap.end();
                 ++it )
            {

                  // Look for current SourceID
               sourceDataMap::const_iterator sdmIter(
                                             (*it).second.find( (*itSource) ) );

                  // If SourceID was found, then look for satellites
               if( sdmIter != (*it).second.end() )
               {

                     // Iterate through corresponding 'satTypeValueMap'
                  for( satTypeValueMap::const_iterator stvmIter =
                                                      (*sdmIter).second.begin();
                       stvmIter != (*sdmIter).second.end();
                       stvmIter++ )
                  {
                        // for some sat   
//.........这里部分代码省略.........
开发者ID:rwpenney,项目名称:GPSTk,代码行数:101,代码来源:EquationSystem.cpp

示例13: throw

      /* Returns a satTypeValueMap object, adding the new data generated
       *  when calling this object.
       *
       * @param epoch     Time of observations.
       * @param gData     Data object holding the data.
       * @param epochflag Epoch flag.
       */
   satTypeValueMap& LICSDetector::Process( const CommonTime& epoch,
                                           satTypeValueMap& gData,
                                           const short& epochflag )
      throw(ProcessingException)
   {

      try
      {

         double value1(0.0);
         double lli1(0.0);
         double lli2(0.0);

         SatIDSet satRejectedSet;

            // Loop through all the satellites
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it)
         {
            try
            {
                  // Try to extract the values
               value1 = (*it).second(obsType);
            }
            catch(...)
            {
                  // If some value is missing, then schedule this satellite
                  // for removal
               satRejectedSet.insert( (*it).first );
               continue;
            }

            if (useLLI)
            {
               try
               {
                     // Try to get the LLI1 index
                  lli1  = (*it).second(lliType1);
               }
               catch(...)
               {
                     // If LLI #1 is not found, set it to zero
                     // You REALLY want to have BOTH LLI indexes properly set
                  lli1 = 0.0;
               }

               try
               {
                     // Try to get the LLI2 index
                  lli2  = (*it).second(lliType2);
               }
               catch(...)
               {
                     // If LLI #2 is not found, set it to zero
                     // You REALLY want to have BOTH LLI indexes properly set
                  lli2 = 0.0;
               }
            }

               // If everything is OK, then get the new values inside the
               // structure. This way of computing it allows concatenation of
               // several different cycle slip detectors
            (*it).second[resultType1] += getDetection( epoch,
                                                       (*it).first,
                                                       (*it).second,
                                                       epochflag,
                                                       value1,
                                                       lli1,
                                                       lli2 );

            if ( (*it).second[resultType1] > 1.0 )
            {
               (*it).second[resultType1] = 1.0;
            }

               // We will mark both cycle slip flags
            (*it).second[resultType2] = (*it).second[resultType1];

         }

            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {
            // Throw an exception if something unexpected happens
         ProcessingException e( getClassName() + ":"
                                + u.what() );

         GPSTK_THROW(e);
//.........这里部分代码省略.........
开发者ID:Milfhunter,项目名称:gpstk,代码行数:101,代码来源:LICSDetector.cpp

示例14: throw

      /* Returns a satTypeValueMap object, adding the new data generated
       * when calling this object.
       *
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& CodeSmoother::Process(satTypeValueMap& gData)
      throw(ProcessingException)
   {

      try
      {

         double codeObs(0.0);
         double phaseObs(0.0);
         double flagObs(0.0);

         SatIDSet satRejectedSet;

            // Loop through all satellites
         satTypeValueMap::iterator it;
         for (it = gData.begin(); it != gData.end(); ++it)
         {

            try
            {

                  // Try to extract the values
               codeObs  = (*it).second(codeType);
               phaseObs = (*it).second(phaseType);
               flagObs  = (*it).second(csFlag);

            }
            catch(...)
            {

                  // If some value is missing, then schedule this satellite
                  // for removal
               satRejectedSet.insert( (*it).first );

               continue;

            }

               // If everything is OK, then call smoothing function
            (*it).second[resultType] = getSmoothing( (*it).first,
                                                     codeObs,
                                                     phaseObs,
                                                     flagObs );
         }

            // Remove satellites with missing data
         gData.removeSatID(satRejectedSet);

         return gData;

      }
      catch(Exception& u)
      {
            // Throw an exception if something unexpected happens
         ProcessingException e( getClassName() + ":"
                                + StringUtils::asString( getIndex() ) + ":"
                                + u.what() );

         GPSTK_THROW(e);

      }

   }  // End of method 'CodeSmoother::Process()'
开发者ID:ianmartin,项目名称:GPSTk,代码行数:68,代码来源:CodeSmoother.cpp

示例15: throw

      /* Returns a satTypeValueMap object, adding the new data generated
       *  when calling this object.
       *
       * @param epoch     Time of observations.
       * @param gData     Data object holding the data.
       */
   satTypeValueMap& PhaseCodeAlignment::Process( const CommonTime& epoch,
                                           satTypeValueMap& gData )
      throw(ProcessingException)
   {

      try
      {

         SatIDSet satRejectedSet;

            // Loop through all the satellites
         for( satTypeValueMap::iterator it = gData.begin();
              it != gData.end();
              ++it )
         {

               // Check if satellite currently has entries
            std::map<SatID, alignData>::const_iterator itDat(
                                                svData.find( (*it).first ) );
            if( itDat == svData.end() )
            {

                  // If it doesn't have an entry, insert one
               alignData aData;

               svData[ (*it).first ] = aData;

            }


               // Place to store if there was a cycle slip. False by default
            bool csflag(false);


               // Check if we want to use satellite arcs of cycle slip flags
            if(useSatArcs)
            {

               double arcN(0.0);

               try
               {

                     // Try to extract the satellite arc value
                  arcN = (*it).second(TypeID::satArc);

               }
               catch(...)
               {

                     // If satellite arc is missing, then schedule this
                     // satellite for removal
                  satRejectedSet.insert( (*it).first );

                  continue;

               }


                  // Check if satellite arc has changed
               if( svData[(*it).first].arcNumber != arcN )
               {

                     // Set flag
                  csflag = true;

                     // Update satellite arc information
                  svData[(*it).first].arcNumber = arcN;
               }

            }  // End of first part of 'if(useSatArcs)'
            else
            {

               double flag(0.0);

               try
               {

                     // Try to extract the CS flag value
                  flag = (*it).second(watchCSFlag);

               }
               catch(...)
               {

                     // If flag is missing, then schedule this satellite
                     // for removal
                  satRejectedSet.insert( (*it).first );

                  continue;

               }

//.........这里部分代码省略.........
开发者ID:etschneider,项目名称:GPSTk,代码行数:101,代码来源:PhaseCodeAlignment.cpp


注:本文中的SatIDSet类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。