Tags give the ability to mark specific points in history as being important
  • v3.0.0   GPSTk v3.0.0
    f8febf70 · GPSTk v3.0.0 ·
    Release v3.0.0

    GPSTk 3.0.0 Release Notes

    • Major version bump triggered by migration of MDH code from SGLTk into its own repository - MDHTk

    Updates since v2.12.2

    Build System and Test Suite

    • Added conda recipes for compiling GPSTK conda packages.

    Gitlab CI

    • Added job to the CI pipeline to verify that those recipes compile.

    Library Changes

    • Added parityStatus flag to PackedNavBits. REASON: Needed to support proper conversion of raw receiver files to MDH.

    Fixes since v2.12.2

    • Fixed a bug that prevented some compiler arguments to be passed through build.sh

    Removed Code due to Deprecation

    • /apps
      • /clocktools
        • rmoutlier
        • dallandev
        • ffp
        • mallandev
        • nallandev
        • oallandev
        • ohadamarddev
        • ORDPhaseParser
        • pff
        • scale
        • tallandev
        • TIAPhaseParser
        • trunc
        • allanplot.py
      • /differential
        • vecsol
      • /filetools
        • GloDump
        • rinexthin
      • /positioning
        • posInterp
    • /lib
      • /Geodyn
        • ASConstant.hpp
        • AtmosphericDrag
        • CiraExpotentialDrag
        • EarthBody
        • EarthOceanTide
        • EarthPoleTide
        • EarthSolidTide
        • EGM96GravityModel
        • EquationOfMotion.hpp
        • ForceModel.hpp
        • ForceModelList
        • HarrisPriesterDrag
        • IERS
        • IERSConventions
        • Integrator.hpp
        • JGM3GravityModel
        • KeplerOrbit
        • MoonForce
        • Msise00Drag
        • PvtStore
        • ReferenceFrames
        • RelativityEffect
        • RungeKuttaFehlberg
        • SatOrbit
        • SatOrbitPropogator
        • SolarRadiationPressure
        • Spacecraft
        • SphericalHarmonicGravity
        • SunForce
        • UTCTime
  • v2.12.2   GPSTk v2.12.2
    d4ba3da3 · GPSTk v2.12.2 Released ·
    Release v2.12.2

    GPSTk 2.12.2 Release Notes

    Updates since v2.12.1

    Build System and Test Suite

    • Updated build code to build static libraries on Windows, Static and Dynamic on all other platforms.

    Gitlab CI

    • Updating the CI Pipeline to use docker workers rather than VM workers. REASON: Docker images are more isolated and less accidental state carried between pipelines.

    Library Changes

    • Updated SVN-PRN References - Updating PRN 4 assignments. REASON: PRN 4 was taken away from SVN 36 and later re-assigned to SVN 74
    • Added atmospheric loading to geomatics library. Includes a store for coefficients for multiple sites, a computeDisplacement routine and a new test in ext/apps/geomatics/iers_test/test_tides.cpp. REASON: This is needed in precise positioning, PPP and differential
    • Change in core/lib/GNSSEph/OrbElemStore findOrbElem selection logic. REASON: In the event the time of interest corresponds EXACTLY to a key in the map, it will now return that element instead of the previous element. The previous logic was an attempt to more closely replicate the user experience by delaying cutovers between message sets until after transmission was complete. However, this has proven to be confusing to users and would be very difficult to extend generally across all multi-GNSS message structures.

    New Library Classes

    • ext/lib/Geomatics/AtmLoadTides.*

    SWIG Bindings & Python

    • Added a flag to the gpstk setup.py file to ensure that the python module is installed as an egg directory. REASON: Some users were reporting problems with the python installation that traced back to the fact that the gpstk python module was being installed as a compressed egg file rather than an egg directory. Apparently, if the zip_safe flag is not specified, SetupTools will attempt to guess the best solution and some users were seeing it choose the archive file rather than directory. Setting the flag to false, should cause all users to see the expanded directory.
    • Python 3.6 Functionality has been added, while still supporting Python 2.7. REASON: Python 2.7 will be deprecated as of January 2020

    Test Changes

    New/Updated Tests

    • core/tests/FileHandling/Rinex3Obs_T.cpp
    • core/tests/AppFrame/CMakeLists.txt
    • core/tests/GNSSCore/CMakeLists.txt
    • core/tests/Rinextools/CMakeLists.txt
    • core/tests/checktools/CMakeLists.txt
    • core/tests/difftools/CMakeLists.txt
    • core/tests/filetools/CMakeLists.txt
    • core/tests/mergetools/CMakeLists.txt
    • core/tests/positioning/CMakeLists.txt
    • core/tests/testsuccexp.cmake
    • ext/apps/geomatics/rstats_test/CMakeLists.txt
    • ext/tests/GNSSEph/CMakeLists.txt
    • ext/tests/geomatics/CMakeLists.txt

    Truth Data Changes

    Updated Truth Data

    • data/EarthTides_IERS.exp
    • data/testocean.blq

    New Data Files

    • data/mixed211.05o
    • data/testatm.atl

    Fixes since v2.11

    • Fixed Issue 375 - FileHunter cannot follow links.
    • Fixed Issue 394 - Rinex3ObsData does not properly handle header records - When processing the sample data in the RINEX 2.11 document (mixed obs), I found that Rinex3ObsData was not reading header records properly when encountering epoch flag 4 ("header records follow"). Instead, the header reacords are being attached to the subsequent object read.
    • Fixed Issue 399 - Xvt.hpp does not compile on Debian 8 with HealthStatus:: on line 102
    • Fixed an issue with PRSolve - which failed when given a dual frequency solution descriptor where code1 is valid only on freq1, and code2 is valid only on freq2. Example: GAL:15:BI
  • v2.12.1   GPSTk v2.12.1
    Release v2.12.1

    GPSTk 2.12.1 Release Notes

    Updates since v2.12

    Library Changes

    • Since the existing ObsID definitions for the E5 signals predate the current Galileo ICD, Updates to core/lib/GNSSCore/ObsID.* are needed to correctly process the cuxrrent E5a, E5b, and E5a+b signals. Reason: The track codes need to reflect the current definitions to support processing the current signals.
    • Added a more robust and consistent implementation for handling and retrieving satellite health (via getSVHealth) information to the various satellite position/alm/ephemeris stores. Also added a computeXvt method that works without throwing exceptions (in contrast to getXvt). Reason: Health information is needed in many use cases but up to this point was not available across all given stores and was implemented in a different way in the few stores that had it.

    Application Changes

    • Trivial Changes made to rstats.cpp

    Test Changes New/Added Tests

    • ext/tests/geomatics/StatsFilter_T.cpp
    • core/tests/GNSSCore/Xvt_T.cpp
    • core/tests/GNSSEph/GloEphemerisStore_T.cpp
    • core/tests/GNSSEph/OrbElemStore_T.cpp
    • core/tests/GNSSEph/OrbitEphStore_T.cpp
    • core/tests/GNSSEph/RinexEphemerisStore_T.cpp
    • core/tests/GNSSEph/SP3EphemerisStore_T.cpp
    • ext/tests/GNSSEph/OrbAlmStore_T.cpp

    Truth Data Changes Updated Truth Data

    • data/test_rstats.exp
    • data/outputs/RinSum_obspath_v211.exp
    • data/outputs/RinSum_v211_kerg.exp
    • data/outputs/RinSum_v211_nklg.exp
    • data/outputs/RinSum_v302_FAA1.exp

    New Data Files

    • data/inputs/igs/igr20354.sp3
    • data/mixed.06n

    Fixes since v2.12

    • Made slight improvement to the lib/Geomatics/FDiffFilter.cpp by computing and considering the slopes.
    • Tweaks also made to lib/Geomatics/SpecialFuncs.*
  • v2.12   GPSTk v2.12
    e05f4db8 · GPSTk v2.12 Released ·
    Release v2.12

    GPSTk 2.12 Release Notes

    Updates since v2.11

    General Codebase Changes

    • File Deprecation and Ext Cleanup - Lists can be found at the end of this doc
    • Updated license and copyright headers on all relevant files.

    Build System and Test Suite

    • Added a -n flag to build.sh to allow address sanitizer to be turned off for debug builds. REASON: Address sanitizer breaks some project builds that have the gpstk as a dependency. Some people may not want the performance hit for every debug build.

    Gitlab CI

    • Changes to .gitlab-ci.yml to remove some coverage metrics
    • Updated debian package build stage to only happen on master branch.
    • Updating the YML file for Gitlab CI builds to add Solaris, OSX, and Windows in as Nightly-only builds. This means that a normal continuous gitlab ci pipeline will only build for debian and redhat. REASON: While Windows, OSX, and Solaris are important and supported platforms, they consistently provide issues when ran in a continuous pipeline and are of less priority than Redhat and Debian. Currently, CDash was used for nightly builds, but migrating everything to a single gitlab platform is best.
    • Added RPM generation to CI, to trigger with master builds as does the debian package generation. Packages are saved as artifacts.

    Library Changes

    • Updated SVNumsXRef for new SV. Also added end date to SVN 36/PRN 4 and added start date for SVN 74/PRN 4 Added "III" Block type.
    • Added handling for GPS CNAV/CNAV-2 joint nav data such as reduced almanac and data correction packets. REASON: Need to support these messages in the data format. ALSO: This change is coupled with sgltk branch issue_240_CNAV2. Once this is merged the sgltk master build will be broken until that branch is also merged.
    • Set the return value in OrbAlmFactory convert default case of no match. REASON: Allows checking the return value to determine if and OrbAlm instance was successfully created from PackedNavBits.
    • Updated GNSSEph classes related to LNAV to handle LNAV fit intervals correctly. REASON: launch of GPS III SV 01 revealed misunderstandings in how GPS fit intervals work. Previous code worked fine before GPS III. GPS III is ICD-compliant, but takes advantage of options that previous SVs did not.
    • Initialized Rinex3NavHeader class variables to allow comparisons to work better with optional fields.
    • Added L1C RINEX character codes to ObsID data structure as ObsIDInitializer did not provide character code translation for the special case of L1 carrier and CD / CP / CD+CP ranging code. REASON: Writing L1C data to a RINEX file was not possible.
    • Needed additional interfaces to query the OrbSysStore in order to:
    • Know which NavIDs are in a store.
    • Know which GNSS systems are in a store.
    • Obtain a list<const OrbDataSys*> of all messages in the store that correspond to a given NavID/UID, regardless of the SV that transmitted them.
    • REASON: Existing interfaces returned a list of objects for a given SV or a given time range. Downstream applications needed a list of all objects of a given data type (e.g., UTC corrections) in the store. The interface was extended with a new method, but all existing interfaces were maintained unchanged.
    • Provided update to correctly differentiate between BeiDou D1 and D2 data, as per Issue 374. REASON: Can't do this downstream as the differentiation is detected by data rates and lost by the time we reach VUB files except for the NavID in the header. Also made OrbElem.svXvt() virtual to allow downstream override for unusual satellite systems.
    • Fixed OrbitEphStore::findNearOrbitEph( ) to match expected selection behavior. Also fixed such that it will only return nav data sets that have a fit interval covering the requested time.
    • Trivial updates to Geomatics library to further PRSolve development.
    • Made getInterpolationOrder const
    • Updated core/lib/Math/Matrix/MatrixFunctors.hpp to allow 1x1 matrix, also removed unused variable
    • Add toggle bool to CommandLine.*, also count()
    • Geomatics Updates:
    • SRI: make retriangularize its own function, add a few convenience routines, and add to doc
    • SRIMatrix: Better Cholesky, add LDL and UDU
    • SatPass: add a single frequency version of smooth()
    • KalmanFilter: upgrade test
    • StatsFilter: split into two, and add a better first difference filter FDiffFilter, upgrade test
    • RINEX obs file loader - Add a class which is used to "load" i.e. read and summarize content, of a Rinex obs file (2 or 3). This is used to 'pre-read' the file to prevent stumbling because of incorrect/missing header information. Add tests of RINEX 3.03, 2.11 and 2.10 obs files. REASON: Used in PPP and differential postitioning
    • Orb Sys Store Updates - added bool function hasSignal to find out which signal the sv is using
    • Updating SVNumXRef. PRN 4 moved from SVN 74 to SVN 36.
    • Added generalized ability to find UTCOffset

    New Library Classes

    • ext/lib/GNSSEph/CNavMidiAlm.*
    • ext/lib/GNSSEph/CNavReducedAlm.*
    • ext/lib/GNSSEph/DiffCorrBase.*
    • ext/lib/GNSSEph/DiffCorrClk.*
    • ext/lib/GNSSEph/DiffCorrEph.*
    • ext/lib/Geomatics/MostCommonValue.hpp
    • ext/lib/Geomatics/Rinex3ObsFileLoader.cpp
    • ext/lib/Geomatics/WNJfilter.hpp

    Application Changes

    • Added simpler interface to RAIMCompute, RAIMComputeSimple, by deleting the two GPSTk classes/types that aren't exposed to Python via swig: the Matrix class and a vector of SatID::SatelliteSystem enums. RAIMComputeSimple simply declares instances of both types and then calls RAIMCompute with everything. PRSolution builds both objects if they aren't supplied, so the code already could handle not being supplied this information. REASON: Per MDH Tools Tech Jam on 07 Jan 2019, this is the agreed temporary solution to making PRSolution accessible to PySGLTk. The simpler interface may be deprecated upon swig modification, if deemed appropriate.
      1. Changed all of the Rinex usage to Rinex3 within mergeRinNav.cpp & 2. Changed the .exp files used by mergeRinNav.cpp to expect one less significant figure in the header. REASON: Changes for (1) is needed so that the result would be written in scientific notation instead of D notation as per requested in MSN-5790. Changes for (2) is needed because increasing the amount of significant figures that Rinex3 headers writes out ensures that the new version of mergeRinNav passes its application tests. However, it causes issues in other tests. Changing to the expected files allows mergeRinNav to pass its test and other tests to pass. Also, the creation of the new mergeRinNav_1.exp and mergeRinNav_2.exp use the same input.
    • Refactored rstats.cpp and added tests. REASON: rstats evolved from a small tool to compute robust stats into a much larger toolset, a mess.
    • dfix is a new implementation of cycleslip detection and fixing, with tests.

    Updated Applications

    • core/apps/positioning/PRSolve.cpp
    • core/apps/mergetools/mergeRinNav.cpp
    • ext/apps/geomatics/robust/rstats.cpp

    SWIG Bindings & Python

    • A hard-coded value in FileIO.i is changed so that non-GPS RINEX data can be written with the RINEX3 classes
    • Disabled rpath for swig python binaries by forcing CMake to not include RPATH arguments when building SWIG binaries. REASON: This integrates better with our isolated python environments. (e.g. conda)
    • Add sdist python target for standalone installation by: 1) Updating the CMake files to produce an "wheel" package for python installation that contains the libgstk.so in addition to the swig'ed library and 2) Modified the init.py script to load the local libgpstk.so before importing _gpstk, bypassing the ld library search. REASON: This should allows preparing a distributable tar ball that can be installed into a python environment, that contains a pre-compiled libgpstk.so library.
    • Python CI changes & package build fix - 1) Added an additional check to ensure python is installed correctly after install step completes. 2) Changed the CMake python installation command to use --root instead of --prefix. This is more friendly to the debian package builder, and doesn't appear to break the conda build/install process. 3) Made gpstk import warnings more verbose.
    • Added CMAKE flag to install python differently when preparing a package. REASON: Using the --root argument works for a debian package but causes problems with a "normal" installation.

    Test Changes

    New/Added Tests

    • ext/tests/GNSSEph/CNavPackets_T.cpp
    • core/tests/GNSSEph/OrbElemLNav_valid_T.cpp
    • ext/tests/GNSSEph/OrbSysStore_T.cpp
    • core/tests/FileDirProc/FileHunter_T.cpp
    • ext/apps/geomatics/RinexObsLoader_test/Rinex3ObsLoader_T.cpp
    • ext/apps/geomatics/rstats_test/SDexam01.txt
    • ext/apps/geomatics/rstats_test/rstats_T.py

    Truth Data Changes

    Updated Truth Data

    • data/outputs/RinSum_obspath_v211.exp
    • data/outputs/RinSum_v210_osn3.exp
    • data/outputs/RinSum_v211_cags.exp
    • data/outputs/RinSum_v211_kerg.exp
    • data/outputs/RinSum_v211_nklg.exp
    • data/outputs/RinSum_v302_FAA1.exp
    • data/PRSolve_Required.exp

    Modified Truth Data

    • data/mergeRinNav_1.exp
    • data/mergeRinNav_2.exp
    • data/test_output_OrbDataSys_T_GPS_CNAV.exp
    • data/test_output_OrbDataSys_T_GPS_LNAV.exp

    New Data Files

    • data/Rinex3ObsLoader210.obs
    • data/Rinex3ObsLoader211.obs
    • data/Rinex3ObsLoader303.obs
    • data/Rinex3ObsLoader_R210.obs
    • data/Rinex3ObsLoader_R211.obs
    • data/Rinex3ObsLoader_R303.obs
    • data/test_rstats.exp
    • ext/apps/geomatics/rstats_test/testfft.data
    • data/test_dfix_job4131.ed.obs
    • data/test_dfix_job4131.ed.obs
    • data/test_dfix_job4131.exp
    • data/test_dfix_karr.exp
    • data/test_dfix_karr0880.ed.10o
    • data/test_dfix_tower.exp
    • data/test_dfix_tower239.ed.15o
    • data/test_dfix_txau.exp
    • data/test_dfix_txau047.ed.12o

    Fixes since v2.11

    • RinSum now prints the Marker name as part of the output. PRSolve also no longer prints an extra line in the output on Windows. It was a matter of using LOGstrm instead of LOG(INFO) in the timing output. REASON: See issues #355 & #356
    • Modified the swig build to include the gpstk version as a top-level variable in the python module as installed tools could not determine version.
    • Fixed FileHunter::find() time system bug and added relevant unit tests.
    • Fixed Issue 375 (erroneously treating files as directories) and mostly addressed Issue 229 (added progressive time filtering for better performance). Also performed some general code cleanup and improved exception handling and doxygen.
    • Fixed 8-bit week rollover error in ext/lib/GNSSEph/OrbSysGpsL_51.cpp. REASON: 127 is not 28, 256 is 28
    • Fixed Windows compiler errors that were preventing building on Windows.
    • Fixed bug in RobustStats:: stem-and-leaf plot
    • Fixed debian package creation for gpstk-python. REASON: Adding the python wheel build option in advertently broke the debian package creation for gpstk-python.

    Code Staged for Future Deprecation

    • /apps
      • /clocktools
        • rmoutlier
        • dallandev
        • ffp
        • mallandev
        • nallandev
        • oallandev
        • ohadamarddev
        • ORDPhaseParser
        • pff
        • scale
        • tallandev
        • TIAPhaseParser
        • trunc
        • allanplot.py
      • /differential
        • vecsol
      • /filetools
        • GloDump
        • rinexthin
      • /positioning
        • posInterp
    • /lib
      • /Geodyn
        • ASConstant.hpp
        • AtmosphericDrag
        • CiraExpotentialDrag
        • EarthBody
        • EarthOceanTide
        • EarthPoleTide
        • EarthSolidTide
        • EGM96GravityModel
        • EquationOfMotion.hpp
        • ForceModel.hpp
        • ForceModelList
        • HarrisPriesterDrag
        • IERS
        • IERSConventions
        • Integrator.hpp
        • JGM3GravityModel
        • KeplerOrbit
        • MoonForce
        • Msise00Drag
        • PvtStore
        • ReferenceFrames
        • RelativityEffect
        • RungeKuttaFehlberg
        • SatOrbit
        • SatOrbitPropogator
        • SolarRadiationPressure
        • Spacecraft
        • SphericalHarmonicGravity
        • SunForce
        • UTCTime

    Removed Code due to Deprecation

    • Deprecated code that was in ext and causing build failures in debian stretch.
      • changed auto_ptr to unique_ptr
      • added -std=c++11 flag to linux build (sorry solaris)
      • replaced google-mock with googletest in SGL_BASE in fai for stretch
      • made google mock look in /usr/src/googletest/googlemock for gmock
      • added /deprecated dir for deprecated code
      • deprecated several libs/apps in ext that were causing some failures due to c++ deprecations.
    • /apps/multipath/CMakeLists.txt
    • /apps/multipath/DenseBinnedStats.hpp
    • /apps/multipath/ObsArray.*
    • /apps/multipath/SparseBinnedStats.hpp
    • /apps/multipath/ValarrayUtils.hpp
    • /apps/multipath/mpsim.cpp
    • /apps/multipath/mpsolve.cpp
    • /apps/multipath/testObsArray.cpp
    • /apps/multipath/testSparseBinnedStats.cpp
    • /apps/multipath/testValarrayUtils.cpp
    • /apps/receiver/AshtechMessage.*
    • /apps/receiver/CMakeLists.txt
    • /apps/receiver/ScreenControl.*
    • /apps/receiver/TODO.txt
    • /apps/receiver/getUnixSerialInfo.cpp
    • /apps/receiver/rinex.nav.template
    • /apps/receiver/rinex.obs.template
    • /apps/receiver/rtAshtech.cpp
    • /apps/swrx/CACodeGenerator.hpp
    • /apps/swrx/CCReplica.*
    • /apps/swrx/CMakeLists.txt
    • /apps/swrx/CodeGenerator.hpp
    • /apps/swrx/ConstLinearRecurrentSequence.*
    • /apps/swrx/EMLTracker.*
    • /apps/swrx/IQStream.*
    • /apps/swrx/NAVCodeGenerator.hpp
    • /apps/swrx/NavFramer.*
    • /apps/swrx/P0CodeGenerator.*
    • /apps/swrx/RX.cpp
    • /apps/swrx/SVSource.hpp
    • /apps/swrx/SimpleCorrelator.hpp
    • /apps/swrx/acquire.cpp
    • /apps/swrx/codeDump.cpp
    • /apps/swrx/complex_math.h
    • /apps/swrx/corltr.cpp
    • /apps/swrx/gpsSim.cpp
    • /apps/swrx/hilbert.cpp
    • /apps/swrx/iqdump.cpp
    • /apps/swrx/normal.*
    • /apps/swrx/plot
    • /apps/swrx/position.cpp
    • /apps/swrx/simpleNav.cpp
    • /apps/swrx/tracker.cpp
    • /apps/swrx/trackerMT.cpp
    • /apps/time/CMakeLists.txt
    • /apps/time/calgps_svg.cpp
    • /apps/time/generateCalendars.bash
    • /examples/example10.cpp
    • /examples/example11.cpp
    • /examples/example13.cpp
    • /examples/example14.cpp
    • /examples/example16.cpp
    • /examples/example17.cpp
    • /examples/example18.cpp
    • /examples/example5.cpp
    • /examples/example6.cpp
    • /examples/example7.cpp
    • /examples/example8.cpp
    • /examples/example9.cpp
    • /lib/CNAV2EphClk.*
    • /lib/CNAVClock.*
    • /lib/CNAVEphemeris.*
    • /lib/Math/RungeKutta4.*
    • /lib/Math/SimpleKalmanFilter.*
    • /lib/Procframe/Antenna.*
    • /lib/Procframe/AntexReader.*
    • /lib/Procframe/BasicModel.*
    • /lib/Procframe/CheckPRData.hpp
    • /lib/Procframe/CodeKalmanSolver.*
    • /lib/Procframe/CodeSmoother.*
    • /lib/Procframe/ComputeCombination.*
    • /lib/Procframe/ComputeDOP.*
    • /lib/Procframe/ComputeIURAWeights.*
    • /lib/Procframe/ComputeIonoModel.*
    • /lib/Procframe/ComputeLC.*
    • /lib/Procframe/ComputeLI.*
    • /lib/Procframe/ComputeLdelta.*
    • /lib/Procframe/ComputeLinear.*
    • /lib/Procframe/ComputeMOPSWeights.*
    • /lib/Procframe/ComputeMelbourneWubbena.*
    • /lib/Procframe/ComputePC.*
    • /lib/Procframe/ComputePI.*
    • /lib/Procframe/ComputePdelta.*
    • /lib/Procframe/ComputeSatPCenter.*
    • /lib/Procframe/ComputeSimpleWeights.*
    • /lib/Procframe/ComputeTropModel.*
    • /lib/Procframe/ComputeWindUp.*
    • /lib/Procframe/ConfData.hpp
    • /lib/Procframe/ConfDataItem.hpp
    • /lib/Procframe/ConfDataSection.hpp
    • /lib/Procframe/ConfDataStructures.hpp
    • /lib/Procframe/ConstraintSystem.*
    • /lib/Procframe/ConvertC1ToP1.*
    • /lib/Procframe/CorrectCodeBiases.*
    • /lib/Procframe/CorrectObservables.*
    • /lib/Procframe/DataHeaders.*
    • /lib/Procframe/DataStructures.*
    • /lib/Procframe/Decimate.*
    • /lib/Procframe/DeltaOp.*
    • /lib/Procframe/Differentiator.*
    • /lib/Procframe/DoubleOp.*
    • /lib/Procframe/Dumper.*
    • /lib/Procframe/EclipsedSatFilter.*
    • /lib/Procframe/Equation.*
    • /lib/Procframe/EquationSystem.*
    • /lib/Procframe/ExtractCombinationData.*
    • /lib/Procframe/ExtractData.*
    • /lib/Procframe/ExtractLC.hpp
    • /lib/Procframe/ExtractPC.hpp
    • /lib/Procframe/GDSUtils.hpp
    • /lib/Procframe/GeneralConstraint.*
    • /lib/Procframe/GeneralEquations.*
    • /lib/Procframe/GravitationalDelay.*
    • /lib/Procframe/IonexModel.*
    • /lib/Procframe/Keeper.*
    • /lib/Procframe/LICSDetector.*
    • /lib/Procframe/LICSDetector2.*
    • /lib/Procframe/LinearCombinations.*
    • /lib/Procframe/MOPSWeight.*
    • /lib/Procframe/MWCSDetector.*
    • /lib/Procframe/MemoryUtils.hpp
    • /lib/Procframe/ModelObs.*
    • /lib/Procframe/ModelObsFixedStation.*
    • /lib/Procframe/ModeledPR.*
    • /lib/Procframe/ModeledPseudorangeBase.hpp
    • /lib/Procframe/ModeledReferencePR.*
    • /lib/Procframe/NablaOp.*
    • /lib/Procframe/NetworkObsStreams.*
    • /lib/Procframe/OneFreqCSDetector.*
    • /lib/Procframe/PCSmoother.*
    • /lib/Procframe/PhaseCodeAlignment.*
    • /lib/Procframe/ProblemSatFilter.*
    • /lib/Procframe/ProcessingClass.hpp
    • /lib/Procframe/ProcessingList.*
    • /lib/Procframe/ProcessingVector.*
    • /lib/Procframe/Pruner.*
    • /lib/Procframe/RequireObservables.*
    • /lib/Procframe/SatArcMarker.*
    • /lib/Procframe/SimpleFilter.*
    • /lib/Procframe/SimpleIURAWeight.*
    • /lib/Procframe/SolverBase.hpp
    • /lib/Procframe/SolverGeneral.*
    • /lib/Procframe/SolverLMS.*
    • /lib/Procframe/SolverPPP.*
    • /lib/Procframe/SolverPPPFB.*
    • /lib/Procframe/SolverWMS.*
    • /lib/Procframe/SourceID.*
    • /lib/Procframe/StochasticModel.*
    • /lib/Procframe/Synchronize.*
    • /lib/Procframe/TypeID.*
    • /lib/Procframe/Variable.*
    • /lib/Procframe/WeightBase.hpp
    • /lib/Procframe/XYZ2NED.*
    • /lib/Procframe/XYZ2NEU.*
    • /lib/SVExclusionList.*
    • /lib/Vdraw/Adler32.*
    • /lib/Vdraw/Base64Encoder.*
    • /lib/Vdraw/BasicShape.hpp
    • /lib/Vdraw/Bitmap.*
    • /lib/Vdraw/BorderLayout.*
    • /lib/Vdraw/CRC32.*
    • /lib/Vdraw/Canvas.*
    • /lib/Vdraw/Circle.hpp
    • /lib/Vdraw/Color.*
    • /lib/Vdraw/ColorMap.*
    • /lib/Vdraw/Comment.*
    • /lib/Vdraw/EPSImage.*
    • /lib/Vdraw/Fillable.hpp
    • /lib/Vdraw/Frame.*
    • /lib/Vdraw/GraphicsConstants.*
    • /lib/Vdraw/GridLayout.*
    • /lib/Vdraw/HLayout.*
    • /lib/Vdraw/Helper.hpp
    • /lib/Vdraw/InterpolatedColorMap.*
    • /lib/Vdraw/Layout.hpp
    • /lib/Vdraw/Line.*
    • /lib/Vdraw/Markable.hpp
    • /lib/Vdraw/Marker.*
    • /lib/Vdraw/PNG.*
    • /lib/Vdraw/PSImage.*
    • /lib/Vdraw/PSImageBase.*
    • /lib/Vdraw/Palette.*
    • /lib/Vdraw/Path.*
    • /lib/Vdraw/Polygon.hpp
    • /lib/Vdraw/Rectangle.*
    • /lib/Vdraw/SVGImage.*
    • /lib/Vdraw/StrokeStyle.*
    • /lib/Vdraw/Text.*
    • /lib/Vdraw/TextStyle.*
    • /lib/Vdraw/VDrawException.hpp
    • /lib/Vdraw/VGImage.*
    • /lib/Vdraw/VGState.hpp
    • /lib/Vdraw/VLayout.*
    • /lib/Vdraw/ViewerManager.*
    • /lib/Vplot/Axis.*
    • /lib/Vplot/AxisStyle.hpp
    • /lib/Vplot/LinePlot.*
    • /lib/Vplot/Plot.*
    • /lib/Vplot/ScatterPlot.*
    • /lib/Vplot/SeriesList.*
    • /lib/Vplot/Splitter.*
    • /lib/Vplot/SurfacePlot.*
    • /lib/Vplot/plottypes.hpp
    • /lib/Xv.hpp
    • /lib/compass_constants.hpp
    • /lib/geometry.hpp
    • /tests/multipath/CMakeLists.txt
    • /tests/multipath/testmpsolve.cmake
    • /tests/oldtests/AnotherFileFilterTest.cpp
    • /tests/oldtests/EphComp.cpp
    • /tests/oldtests/EphCompWin.gp
    • /tests/oldtests/FileSpecTest.cpp
    • /tests/oldtests/Jamfile
    • /tests/oldtests/Makefile.am
    • /tests/oldtests/MinSfTest.cpp
    • /tests/oldtests/Rinex_dl.pl
    • /tests/oldtests/RungeKuttaTest.cpp
    • /tests/oldtests/Xbegweek.cpp
    • /tests/oldtests/Xendweek.cpp
    • /tests/oldtests/configfile.txt
    • /tests/oldtests/configfile_readme.txt
    • /tests/oldtests/data/405_077A.02M
    • /tests/oldtests/data/MatrixTest.ref
    • /tests/oldtests/data/MatrixTest.ref.Win32
    • /tests/oldtests/data/Xbegweek.can
    • /tests/oldtests/data/Xendweek.can
    • /tests/oldtests/data/anotsym.dat
    • /tests/oldtests/data/cov.dat
    • /tests/oldtests/data/dia.dat
    • /tests/oldtests/data/lt.dat
    • /tests/oldtests/data/nga12600.apc
    • /tests/oldtests/data/nga12601.apc
    • /tests/oldtests/data/partials.dat
    • /tests/oldtests/data/positiontest.ref
    • /tests/oldtests/data/squ.dat
    • /tests/oldtests/data/stringutiltest.ref
    • /tests/oldtests/data/sym.dat
    • /tests/oldtests/data/tmatrix.dat
    • /tests/oldtests/data/ut.dat
    • /tests/oldtests/delFileSpecTestDirs.pl
    • /tests/oldtests/exceptiontest.cpp
    • /tests/oldtests/genFileSpecTestDirs.pl
    • /tests/oldtests/petest.cpp
    • /tests/oldtests/rinex_met_livetest.pl
    • /tests/oldtests/runAllTests
    • /tests/oldtests/runAllTests.bat
    • /tests/oldtests/svnKeyWordTest.txt
    • /tests/oldtests/testExpression.cpp
    • /tests/oldtests/testscript.pl
    • /tests/oldtests/testscript_readme.txt
    • /tests/time/CMakeLists.txt
  • v2.11.2   GPSTk v2.11.2
    3f82608b · GPSTk v2.11.2 ·
    Release v2.11.2

    GPSTk 2.11.2 Release Notes

    Updates since v2.11.1

    Gitlab CI

    • Updating the YML file for Gitlab CI builds to add Solaris, OSX, and Windows in as Nightly-only builds. This means that a normal continuous gitlab ci pipeline will only build for debian and redhat. REASON: While Windows, OSX, and Solaris are important and supported platforms, they consistently provide issues when ran in a continuous pipeline and are of less priority than Redhat and Debian. Currently, CDash was used for nightly builds, but migrating everything to a single gitlab platform is best.

    Library Changes

    • Initialized Rinex3NavHeader class variables to allow comparisons to work better with optional fields.
    • Added L1C RINEX character codes to ObsID data structure as ObsIDInitializer did not provide character code translation for the special case of L1 carrier and CD / CP / CD+CP ranging code. REASON: Writing L1C data to a RINEX file was not possible.
    • Needed additional interfaces to query the OrbSysStore in order to:
    • Know which NavIDs are in a store.
    • Know which GNSS systems are in a store.
    • Obtain a list<const OrbDataSys*> of all messages in the store that correspond to a given NavID/UID, regardless of the SV that transmitted them.
    • REASON: Existing interfaces returned a list of objects for a given SV or a given time range. Downstream applications needed a list of all objects of a given data type (e.g., UTC corrections) in the store. The interface was extended with a new method, but all existing interfaces were maintained unchanged.
    • Provided update to correctly differentiate between BeiDou D1 and D2 data, as per Issue 374. REASON: Can't do this downstream as the differentiation is detected by data rates and lost by the time we reach VUB files except for the NavID in the header. Also made OrbElem.svXvt() virtual to allow downstream override for unusual satellite systems.

    Application Changes

      1. Changed all of the Rinex usage to Rinex3 within mergeRinNav.cpp & 2. Changed the .exp files used by mergeRinNav.cpp to expect one less significant figure in the header. REASON: Changes for (1) is needed so that the result would be written in scientific notation instead of D notation as per requested in MSN-5790. Changes for (2) is needed because increasing the amount of significant figures that Rinex3 headers writes out ensures that the new version of mergeRinNav passes its application tests. However, it causes issues in other tests. Changing to the expected files allows mergeRinNav to pass its test and other tests to pass. Also, the creation of the new mergeRinNav_1.exp and mergeRinNav_2.exp use the same input.

    Updated Applications

    • core/apps/mergetools/mergeRinNav.cpp

    SWIG Bindings & Python

    • A hard-coded value in FileIO.i is changed so that non-GPS RINEX data can be written with the RINEX3 classes
    • Disabled rpath for swig python binaries by forcing CMake to not include RPATH arguments when building SWIG binaries. REASON: This integrates better with our isolated python environments. (e.g. conda)

    Test Changes

    New/Added Tests

    • ext/tests/GNSSEph/OrbSysStore_T.cpp
    • core/tests/FileDirProc/FileHunter_T.cpp

    Truth Data Changes

    Modified Truth Data

    • data/mergeRinNav_1.exp
    • data/mergeRinNav_2.exp
    • data/test_output_OrbDataSys_T_GPS_CNAV.exp
    • data/test_output_OrbDataSys_T_GPS_LNAV.exp

    Fixes since v2.11.1

    • Modified the swig build to include the gpstk version as a top-level variable in the python module as installed tools could not determine version.
    • Fixed FileHunter::find() time system bug and added relevant unit tests.
    • Fixed Issue 375 (erroneously treating files as directories) and mostly addressed Issue 229 (added progressive time filtering for better performance). Also performed some general code cleanup and improved exception handling and doxygen.
  • v2.11.1   GPSTk v2.11.1
    e6638cd0 · GPSTk v2.11.1 ·
    Release v2.11.1

    GPSTk 2.11.1 Release Notes

    Updates since v2.11

    Gitlab CI

    • Changes to .gitlab-ci.yml to remove some coverage metrics
    • Updated debian package build stage to only happen on master branch.

    Ext -> Deprecate Migration

    • Depricated code that was in ext and causing build failures in debian stretch.
      • changed auto_ptr to unique_ptr
      • added -std=c++11 flag to linux build (sorry solaris)
      • replaced google-mock with googletest in SGL_BASE in fai for stretch
      • made google mock look in /usr/src/googletest/googlemock for gmock
      • added /deprecated dir for deprecated code
      • deprecated several libs/apps in ext that were causing some failures due to c++ deprecations.
    • depricated/apps/multipath/CMakeLists.txt
    • depricated/apps/multipath/DenseBinnedStats.hpp
    • depricated/apps/multipath/ObsArray.*
    • depricated/apps/multipath/SparseBinnedStats.hpp
    • depricated/apps/multipath/ValarrayUtils.hpp
    • depricated/apps/multipath/mpsim.cpp
    • depricated/apps/multipath/mpsolve.cpp
    • depricated/apps/multipath/testObsArray.cpp
    • depricated/apps/multipath/testSparseBinnedStats.cpp
    • depricated/apps/multipath/testValarrayUtils.cpp
    • depricated/apps/receiver/AshtechMessage.*
    • depricated/apps/receiver/CMakeLists.txt
    • depricated/apps/receiver/ScreenControl.*
    • depricated/apps/receiver/TODO.txt
    • depricated/apps/receiver/getUnixSerialInfo.cpp
    • depricated/apps/receiver/rinex.nav.template
    • depricated/apps/receiver/rinex.obs.template
    • depricated/apps/receiver/rtAshtech.cpp
    • depricated/apps/swrx/CACodeGenerator.hpp
    • depricated/apps/swrx/CCReplica.*
    • depricated/apps/swrx/CMakeLists.txt
    • depricated/apps/swrx/CodeGenerator.hpp
    • depricated/apps/swrx/ConstLinearRecurrentSequence.*
    • depricated/apps/swrx/EMLTracker.*
    • depricated/apps/swrx/IQStream.*
    • depricated/apps/swrx/NAVCodeGenerator.hpp
    • depricated/apps/swrx/NavFramer.*
    • depricated/apps/swrx/P0CodeGenerator.*
    • depricated/apps/swrx/RX.cpp
    • depricated/apps/swrx/SVSource.hpp
    • depricated/apps/swrx/SimpleCorrelator.hpp
    • depricated/apps/swrx/acquire.cpp
    • depricated/apps/swrx/codeDump.cpp
    • depricated/apps/swrx/complex_math.h
    • depricated/apps/swrx/corltr.cpp
    • depricated/apps/swrx/gpsSim.cpp
    • depricated/apps/swrx/hilbert.cpp
    • depricated/apps/swrx/iqdump.cpp
    • depricated/apps/swrx/normal.*
    • depricated/apps/swrx/plot
    • depricated/apps/swrx/position.cpp
    • depricated/apps/swrx/simpleNav.cpp
    • depricated/apps/swrx/tracker.cpp
    • depricated/apps/swrx/trackerMT.cpp
    • depricated/apps/time/CMakeLists.txt
    • depricated/apps/time/calgps_svg.cpp
    • depricated/apps/time/generateCalendars.bash
    • depricated/examples/example10.cpp
    • depricated/examples/example11.cpp
    • depricated/examples/example13.cpp
    • depricated/examples/example14.cpp
    • depricated/examples/example16.cpp
    • depricated/examples/example17.cpp
    • depricated/examples/example18.cpp
    • depricated/examples/example5.cpp
    • depricated/examples/example6.cpp
    • depricated/examples/example7.cpp
    • depricated/examples/example8.cpp
    • depricated/examples/example9.cpp
    • depricated/lib/CNAV2EphClk.*
    • depricated/lib/CNAVClock.*
    • depricated/lib/CNAVEphemeris.*
    • depricated/lib/Math/RungeKutta4.*
    • depricated/lib/Math/SimpleKalmanFilter.*
    • depricated/lib/Procframe/Antenna.*
    • depricated/lib/Procframe/AntexReader.*
    • depricated/lib/Procframe/BasicModel.*
    • depricated/lib/Procframe/CheckPRData.hpp
    • depricated/lib/Procframe/CodeKalmanSolver.*
    • depricated/lib/Procframe/CodeSmoother.*
    • depricated/lib/Procframe/ComputeCombination.*
    • depricated/lib/Procframe/ComputeDOP.*
    • depricated/lib/Procframe/ComputeIURAWeights.*
    • depricated/lib/Procframe/ComputeIonoModel.*
    • depricated/lib/Procframe/ComputeLC.*
    • depricated/lib/Procframe/ComputeLI.*
    • depricated/lib/Procframe/ComputeLdelta.*
    • depricated/lib/Procframe/ComputeLinear.*
    • depricated/lib/Procframe/ComputeMOPSWeights.*
    • depricated/lib/Procframe/ComputeMelbourneWubbena.*
    • depricated/lib/Procframe/ComputePC.*
    • depricated/lib/Procframe/ComputePI.*
    • depricated/lib/Procframe/ComputePdelta.*
    • depricated/lib/Procframe/ComputeSatPCenter.*
    • depricated/lib/Procframe/ComputeSimpleWeights.*
    • depricated/lib/Procframe/ComputeTropModel.*
    • depricated/lib/Procframe/ComputeWindUp.*
    • depricated/lib/Procframe/ConfData.hpp
    • depricated/lib/Procframe/ConfDataItem.hpp
    • depricated/lib/Procframe/ConfDataSection.hpp
    • depricated/lib/Procframe/ConfDataStructures.hpp
    • depricated/lib/Procframe/ConstraintSystem.*
    • depricated/lib/Procframe/ConvertC1ToP1.*
    • depricated/lib/Procframe/CorrectCodeBiases.*
    • depricated/lib/Procframe/CorrectObservables.*
    • depricated/lib/Procframe/DataHeaders.*
    • depricated/lib/Procframe/DataStructures.*
    • depricated/lib/Procframe/Decimate.*
    • depricated/lib/Procframe/DeltaOp.*
    • depricated/lib/Procframe/Differentiator.*
    • depricated/lib/Procframe/DoubleOp.*
    • depricated/lib/Procframe/Dumper.*
    • depricated/lib/Procframe/EclipsedSatFilter.*
    • depricated/lib/Procframe/Equation.*
    • depricated/lib/Procframe/EquationSystem.*
    • depricated/lib/Procframe/ExtractCombinationData.*
    • depricated/lib/Procframe/ExtractData.*
    • depricated/lib/Procframe/ExtractLC.hpp
    • depricated/lib/Procframe/ExtractPC.hpp
    • depricated/lib/Procframe/GDSUtils.hpp
    • depricated/lib/Procframe/GeneralConstraint.*
    • depricated/lib/Procframe/GeneralEquations.*
    • depricated/lib/Procframe/GravitationalDelay.*
    • depricated/lib/Procframe/IonexModel.*
    • depricated/lib/Procframe/Keeper.*
    • depricated/lib/Procframe/LICSDetector.*
    • depricated/lib/Procframe/LICSDetector2.*
    • depricated/lib/Procframe/LinearCombinations.*
    • depricated/lib/Procframe/MOPSWeight.*
    • depricated/lib/Procframe/MWCSDetector.*
    • depricated/lib/Procframe/MemoryUtils.hpp
    • depricated/lib/Procframe/ModelObs.*
    • depricated/lib/Procframe/ModelObsFixedStation.*
    • depricated/lib/Procframe/ModeledPR.*
    • depricated/lib/Procframe/ModeledPseudorangeBase.hpp
    • depricated/lib/Procframe/ModeledReferencePR.*
    • depricated/lib/Procframe/NablaOp.*
    • depricated/lib/Procframe/NetworkObsStreams.*
    • depricated/lib/Procframe/OneFreqCSDetector.*
    • depricated/lib/Procframe/PCSmoother.*
    • depricated/lib/Procframe/PhaseCodeAlignment.*
    • depricated/lib/Procframe/ProblemSatFilter.*
    • depricated/lib/Procframe/ProcessingClass.hpp
    • depricated/lib/Procframe/ProcessingList.*
    • depricated/lib/Procframe/ProcessingVector.*
    • depricated/lib/Procframe/Pruner.*
    • depricated/lib/Procframe/RequireObservables.*
    • depricated/lib/Procframe/SatArcMarker.*
    • depricated/lib/Procframe/SimpleFilter.*
    • depricated/lib/Procframe/SimpleIURAWeight.*
    • depricated/lib/Procframe/SolverBase.hpp
    • depricated/lib/Procframe/SolverGeneral.*
    • depricated/lib/Procframe/SolverLMS.*
    • depricated/lib/Procframe/SolverPPP.*
    • depricated/lib/Procframe/SolverPPPFB.*
    • depricated/lib/Procframe/SolverWMS.*
    • depricated/lib/Procframe/SourceID.*
    • depricated/lib/Procframe/StochasticModel.*
    • depricated/lib/Procframe/Synchronize.*
    • depricated/lib/Procframe/TypeID.*
    • depricated/lib/Procframe/Variable.*
    • depricated/lib/Procframe/WeightBase.hpp
    • depricated/lib/Procframe/XYZ2NED.*
    • depricated/lib/Procframe/XYZ2NEU.*
    • depricated/lib/SVExclusionList.*
    • depricated/lib/Vdraw/Adler32.*
    • depricated/lib/Vdraw/Base64Encoder.*
    • depricated/lib/Vdraw/BasicShape.hpp
    • depricated/lib/Vdraw/Bitmap.*
    • depricated/lib/Vdraw/BorderLayout.*
    • depricated/lib/Vdraw/CRC32.*
    • depricated/lib/Vdraw/Canvas.*
    • depricated/lib/Vdraw/Circle.hpp
    • depricated/lib/Vdraw/Color.*
    • depricated/lib/Vdraw/ColorMap.*
    • depricated/lib/Vdraw/Comment.*
    • depricated/lib/Vdraw/EPSImage.*
    • depricated/lib/Vdraw/Fillable.hpp
    • depricated/lib/Vdraw/Frame.*
    • depricated/lib/Vdraw/GraphicsConstants.*
    • depricated/lib/Vdraw/GridLayout.*
    • depricated/lib/Vdraw/HLayout.*
    • depricated/lib/Vdraw/Helper.hpp
    • depricated/lib/Vdraw/InterpolatedColorMap.*
    • depricated/lib/Vdraw/Layout.hpp
    • depricated/lib/Vdraw/Line.*
    • depricated/lib/Vdraw/Markable.hpp
    • depricated/lib/Vdraw/Marker.*
    • depricated/lib/Vdraw/PNG.*
    • depricated/lib/Vdraw/PSImage.*
    • depricated/lib/Vdraw/PSImageBase.*
    • depricated/lib/Vdraw/Palette.*
    • depricated/lib/Vdraw/Path.*
    • depricated/lib/Vdraw/Polygon.hpp
    • depricated/lib/Vdraw/Rectangle.*
    • depricated/lib/Vdraw/SVGImage.*
    • depricated/lib/Vdraw/StrokeStyle.*
    • depricated/lib/Vdraw/Text.*
    • depricated/lib/Vdraw/TextStyle.*
    • depricated/lib/Vdraw/VDrawException.hpp
    • depricated/lib/Vdraw/VGImage.*
    • depricated/lib/Vdraw/VGState.hpp
    • depricated/lib/Vdraw/VLayout.*
    • depricated/lib/Vdraw/ViewerManager.*
    • depricated/lib/Vplot/Axis.*
    • depricated/lib/Vplot/AxisStyle.hpp
    • depricated/lib/Vplot/LinePlot.*
    • depricated/lib/Vplot/Plot.*
    • depricated/lib/Vplot/ScatterPlot.*
    • depricated/lib/Vplot/SeriesList.*
    • depricated/lib/Vplot/Splitter.*
    • depricated/lib/Vplot/SurfacePlot.*
    • depricated/lib/Vplot/plottypes.hpp
    • depricated/lib/Xv.hpp
    • depricated/lib/compass_constants.hpp
    • depricated/lib/geometry.hpp
    • depricated/tests/multipath/CMakeLists.txt
    • depricated/tests/multipath/testmpsolve.cmake
    • depricated/tests/oldtests/AnotherFileFilterTest.cpp
    • depricated/tests/oldtests/EphComp.cpp
    • depricated/tests/oldtests/EphCompWin.gp
    • depricated/tests/oldtests/FileSpecTest.cpp
    • depricated/tests/oldtests/Jamfile
    • depricated/tests/oldtests/Makefile.am
    • depricated/tests/oldtests/MinSfTest.cpp
    • depricated/tests/oldtests/Rinex_dl.pl
    • depricated/tests/oldtests/RungeKuttaTest.cpp
    • depricated/tests/oldtests/Xbegweek.cpp
    • depricated/tests/oldtests/Xendweek.cpp
    • depricated/tests/oldtests/configfile.txt
    • depricated/tests/oldtests/configfile_readme.txt
    • depricated/tests/oldtests/data/405_077A.02M
    • depricated/tests/oldtests/data/MatrixTest.ref
    • depricated/tests/oldtests/data/MatrixTest.ref.Win32
    • depricated/tests/oldtests/data/Xbegweek.can
    • depricated/tests/oldtests/data/Xendweek.can
    • depricated/tests/oldtests/data/anotsym.dat
    • depricated/tests/oldtests/data/cov.dat
    • depricated/tests/oldtests/data/dia.dat
    • depricated/tests/oldtests/data/lt.dat
    • depricated/tests/oldtests/data/nga12600.apc
    • depricated/tests/oldtests/data/nga12601.apc
    • depricated/tests/oldtests/data/partials.dat
    • depricated/tests/oldtests/data/positiontest.ref
    • depricated/tests/oldtests/data/squ.dat
    • depricated/tests/oldtests/data/stringutiltest.ref
    • depricated/tests/oldtests/data/sym.dat
    • depricated/tests/oldtests/data/tmatrix.dat
    • depricated/tests/oldtests/data/ut.dat
    • depricated/tests/oldtests/delFileSpecTestDirs.pl
    • depricated/tests/oldtests/exceptiontest.cpp
    • depricated/tests/oldtests/genFileSpecTestDirs.pl
    • depricated/tests/oldtests/petest.cpp
    • depricated/tests/oldtests/rinex_met_livetest.pl
    • depricated/tests/oldtests/runAllTests
    • depricated/tests/oldtests/runAllTests.bat
    • depricated/tests/oldtests/svnKeyWordTest.txt
    • depricated/tests/oldtests/testExpression.cpp
    • depricated/tests/oldtests/testscript.pl
    • depricated/tests/oldtests/testscript_readme.txt
    • depricated/tests/time/CMakeLists.txt

    Library Changes

    • Updated SVNumsXRef for new SV. Also added end date to SVN 36/PRN 4 and added start date for SVN 74/PRN 4 Added "III" Block type.
    • Added handling for GPS CNAV/CNAV-2 joint nav data such as reduced almanac and data correction packets. REASON: Need to support these messages in the data format. ALSO: This change is coupled with sgltk branch issue_240_CNAV2. Once this is merged the sgltk master build will be broken until that branch is also merged.
    • Set the return value in OrbAlmFactory convert default case of no match. REASON: Allows checking the return value to determine if and OrbAlm instance was successfully created from PackedNavBits.
    • Updated GNSSEph classes related to LNAV to handle LNAV fit intervals correctly. REASON: launch of GPS III SV 01 revealed misunderstandings in how GPS fit intervals work. Previous code worked fine before GPS III. GPS III is ICD-compliant, but takes advantage of options that previous SVs did not.

    New Library Classes

    • ext/lib/GNSSEph/CNavMidiAlm.*
    • ext/lib/GNSSEph/CNavReducedAlm.*
    • ext/lib/GNSSEph/DiffCorrBase.*
    • ext/lib/GNSSEph/DiffCorrClk.*
    • ext/lib/GNSSEph/DiffCorrEph.*

    Application Changes

    • Added simpler interface to RAIMCompute, RAIMComputeSimple, by deleting the two GPSTk classes/types that aren't exposed to Python via swig: the Matrix class and a vector of SatID::SatelliteSystem enums. RAIMComputeSimple simply declares instances of both types and then calls RAIMCompute with everything. PRSolution builds both objects if they aren't supplied, so the code already could handle not being supplied this information. REASON: Per MDH Tools Tech Jam on 07 Jan 2019, this is the agreed temporary solution to making PRSolution accessible to PySGLTk. The simpler interface may be deprecated upon swig modification, if deemed appropriate.

    Updated Applications

    • core/apps/positioning/PRSolve.cpp

    Test Changes

    New/Added Tests

    • ext/tests/GNSSEph/CNavPackets_T.cpp
    • core/tests/GNSSEph/OrbElemLNav_valid_T.cpp

    Truth Data Changes

    Updated Truth Data

    • data/outputs/RinSum_obspath_v211.exp
    • data/outputs/RinSum_v210_osn3.exp
    • data/outputs/RinSum_v211_cags.exp
    • data/outputs/RinSum_v211_kerg.exp
    • data/outputs/RinSum_v211_nklg.exp
    • data/outputs/RinSum_v302_FAA1.exp

    Fixes since v2.11

    • RinSum now prints the Marker name as part of the output. PRSolve also no longer prints an extra line in the output on Windows. It was a matter of using LOGstrm instead of LOG(INFO) in the timing output. REASON: See issues #355 & #356
  • v2.11   GPSTk v2.11
    Release v2.11

    GPSTk 2.11 Release Notes

    Updates since v2.10

    Build System and Test Suite

    • Remove inadequately explained lib directory override in CMakeLists.txt
    • Added line to GPSTKConfig.cmake to allow dependent projects to find header files regardless of implicit or explicit declaration.
    • Test coverage was added on the core-build using gcov and gcovr
    • Support for GootleTest/GoogleMock added.
    • Updated Debian configuration files for complete debian package building capability
    • Travis-CI yaml script added for external Github CI autobuilds.
    • Official deb packages are now build for master branch builds and available as artifacts.

    Gitlab CI

    • Changes to .gitlab-ci.yml to fix SGLTk downstream portion of the GPSTk Gitlab CI/CD pipeline.
    • Test coverage was added on the core-build using gcov and gcovr
    • Style compliance checking was added (as a new CI-Pipeline stage) using cpplint, but is not enforced.

    Library Changes

    • SunEarthSatGeometry: Added OrbitNormalAttitude function back in, which was originally added in commit 78e29c30, but accidentally deleted in commit 148a0180.
    • Added test in core/lib/Utilities/StringUtils:change() that returns immediately if either input string is empty. REASON: Empty input causes no change, and so the loop (numChanges = max unsigned int) is essentially infinite.
    • Added routines to core/lib/Utilities/stl_helpers.hpp that find the intersection of two vectors and the 'non-intersection'. NOTE: While there are STL routines that do this, they require sorting the vectors first, which is not good for my application (at least).
    • Make all geomatics tests in ext/tests/geomatics/CMakeLists.txt have the same label.
    • In core/lib/Geomatics/Namelist.* - Added operator+=(Namelist) for convenience. Found that randomize() does not do anything on Linux Debian (?!) so just replaced std:: call with simple code. Tiny improvements to the format of matrix/vector output.
    • Added debiasing before computing stats in core/lib/PosSol/PRSolution.hpp. REASON: Stats on the full PRS solution, which is an Earth-centered Earth-fixed position[3], often suffers numerically b/c the numbers are so large. This change simply debiases the numbers by the first value, so stats, in particular standard deviation, do not have noticeable numerical error.
    • Reverted core/lib/FileHandling/Rinex3NavData.cpp to output the xmitTime in the frame of the toe week (derived output week). REASON: Originally, stored xmitTime in the frame of the Rinex3NavData::weeknum which was the week of sf1 HOWtime. output week was derived from weeknum and the difference between xmitTime and toe. When the review was requested, stored xmitTime in the frame of Rinex3NavData::weeknum which was changed to be the toe week. I checked both the RINEX 2.11 (section 6.8) and 3.03 (section 6.13) specs and they agree with the change.
    • Added code to core/lib/GNSSEph/RationalizeRinex (used by core/apps/Rinextools/scanBrdcFile) to detect RINEX nav data sets tagged with the wrong SV PRN ID and to not copy such data sets to the output file. REASON: Latest IGS-generated merged RINEX nav (brdc) files contain data sets that are tagged with the incorrect PRN ID.
    • NavFilter updates/enhancements - Add a nav filter for forced ordering of data. Add methods for determining filter depth for buffer size computation. ITT receivers in particular do not always output nav subframes in time order or on time or with correct time stamps.
    • Added ObservationType for demodulator status codes, which will support changes to tools in SGLTk made in a future merge
    • ORD Refactor with CI Pipeline Changes - ord.cpp was exposed in the SWIG interface. Unit tests for coverage were written using GoogleTest/GoogleMock. Test coverage was measured on the core-build using gcov and gcovr. REASON: The ORD routines was considered general enough to add to GPSTk. The project driving it is the HRTR Web Development effort.
    • Updated references for 54/18 and 34/18 and updated PRN 4 gap
    • Added LNAVOrderFilter for forcing time-order of legacy nav subframe data. REASON: When processing data from multiple receivers, the data may not be sent by the receivers at the same time. This filter makes a "best effort" to enforce time ordering across multiple receivers going into the filter.
    • Added sp3d file format support. REASON: We care about sp3d because the IGS MGEX precise orbit files moved from sp3c to sp3d in fall 2017. Therefore, to support various multi-GNSS data experiments, we need to be able to access these files.
    • Adding Ellipsoid model for Galileo. REASON: Required for processing Galileo orbits
    • Change documentation of ObsID phase units. REASON: Most of the defined file formats and associated readers did not respect the prior documentation for phase observations. This changes the documentation to be consistent with the usage in (at least) MDP, NovAtel, RINEX, and MDH.
    • Added ability to use getXvt() calls on unhealthy SVs in XvtStore objects returned by EphReader. Changes include: Migrated onlyHealthy, getOnlyHealthyFlag(), and setOnlyHealthyFlag() from OrbitEphStore to XvtStore; Made sure that default behavior for OrbitEphStore and OrbElemStore was retained; Changed implementation of health status in GloEphemerisStore. REASON: The changes were made since there is a need to be able to call getXvt() on the unhealthy SVs in XvtStore objects returned by EphReader.
    • Adding/Clarifying support for Galileo E5a/E5b in ObsID. Adding Galileo F/NAV and I/NAV to NavID. REASON: Need these signals represented in the signal processing infrastructure. Part of Issue 341 - Update Galileo Signal Support.
    • Ensured full initialization of Stats objects and fixed a memory leak in OrbitEph::timeDisplay. REASON: This change ensures full initialization of Stats objects to eliminate undefined behavior. Also, this fix contains a fix for a small memory leak in OrbitEph::timeDisplay.
    • ORD Calculation Fixes - addressed defects in the new ORD Calculation discovered by Jason Vestuto in his testing. REASON: The calculation results were incorrect.
    • Added a base class for help-like command-line options with special processing in CommandOptionParser and BasicFramework. REASON: Too many applications in the MSN have needed this, and this is a better solution than trying to figure out if these help-like options were used after all the normal command-line option parsing.
    • Restored Missing GPSWeekZcount Math. REASON: When the time code was migrated to CommonTime/TimeTag implementations, several extremely useful methods were discarded from the GPSWeekZcount class.
    • Relaxed fit interval and health restrictions on ext/GNSSEph/OrbAlmStore. REASON: Existing code didn't address existing use cases.
    • Added recognition of Galileo antenna offsets to increase capability. REASON: Several other GNSSs are already implemented. This is adding yet another GNSS in the same pattern.
    • Create a simple class for applying 10-bit week rollover corrections, with room to expand for other similar capabilities
    • ext/lib/FileHandling/TimeNamedFileStream.hppnow creates directories for the files it outputs. REASON: ext/apps/rfw/rfw.cpp needed handholding to do its job. Now it doesn't.
    • Adding L1C to ObsID and QZSS to various places. REASON: Need L1C support for upcoming GPS III launch. QZSS already has a L1C broadcast, so it makes sense to look at that as well.
    • Added method that returns a reference to PtoNMap. Used to generate csv format of the map. REASON: Want to generate a CSV form of svNumXRef, and this method is used for that.
    • Added XvtStoreSatID shim class, which provides clear separation for the descendents of XvtStore that handle satellite data while avoiding any side effects for non-SatID XvtStore classes. REASON:The need for this has been apparent for a while, but the fact XvtStore is also implemented with classes other than SatID presented a problem. REASON: In several places, classes of XvtStore are used to store/retrieve satellite information. As more satellite systems are added and PRN space expands, there is a need to obtain a list of the satellites contained in a store in order to avoid having to do brute force searches over ranges of satellite systems and/or ranges of PRNs. This is already implemented in OrbElemStore (a descendent of XvtStore, but not in other parallel stores (e.g. SP3EphemerisStore). These changes will impact the following classes, but hopefully only by adding functionality.
      • SP3EphemrisStore
      • PositionSatStore
      • TabularSatStore
      • GPSEphemerisStore
      • OrbElemStore

    New Library Classes

    • core/lib/GNSSCore/GalileoEllipsoid.hpp
    • core/lib/NavFilter/CNav2SanityFilter.*
    • core/lib/NavFilter/LNavOrderFilter.*
    • core/lib/ORD/ord.*
    • core/lib/TimeHandling/TimeCorrection.*

    Application Changes

    • core/apps/Rinextools/scanBrdcFile updated to detect RINEX nav data sets tagged with the wrong SV PRN ID and to not copy such data sets to the output file.
    • Update core/apps/checktools/rowcheck.cpp & core/apps/checktools/rnwcheck.cpp to use newer RINEX classes for rowcheck and rnwcheck to make them RINEX3 compatible

    Updated Applications

    • core/apps/checktools/rnwcheck.cpp
    • core/apps/checktools/rowcheck.cpp
    • core/apps/Rinextools/scanBrdcFile

    SWIG Bindings & Python

    • Updated SWIG interface files for ORD refactor

    New/Added SWIG Files

    • swig/src/ord.i

    Test Changes

    New/Added Tests

    • core/tests/AppFrame/BasicFrameworkHelp_T.cpp
    • core/tests/GNSSEph/OrbElemStore_T.cpp
    • core/tests/GNSSEph/SP3EphemerisStore_T.cpp
    • core/tests/NavFilter/CNav2Filter_T.cpp
    • core/tests/ORD/GTestExperiments.cpp
    • core/tests/ORD/OrdMockClasses.hpp
    • core/tests/TimeHandling/TimeCorrection_T.cpp

    Modified Test files

    • core/tests/AppFrame/CMakeLists.txt
    • core/tests/FileHandling/SP3_T.cpp
    • core/tests/GNSSEph/NavID_T.cpp
    • core/tests/NavFilter/NavFilterMgr_T.cpp
    • core/tests/ORD/OrdRegressionChecks_T.cpp
    • core/tests/ORD/OrdUnitTests_T.cpp
    • core/tests/testsuccexp.cmake
    • core/tests/TimeHandling/GPSWeekZcount_T.cpp
    • ext/test/geomatics/CMakeLists.txt
    • ext/tests/GNSSEph/OrbAlm_T.cpp
    • ext/tests/GNSSEph/OrbAlmStore_T.cpp

    Truth Data Changes

    New Truth Data

    • data/BasicFrameworkHelp_T_1.err.exp
    • data/BasicFrameworkHelp_T_1.exp
    • data/BasicFrameworkHelp_T_3.err.exp
    • data/BasicFrameworkHelp_T_3.exp
    • data/BasicFrameworkHelp_T_4.err.exp
    • data/BasicFrameworkHelp_T_4.exp
    • data/BasicFrameworkHelp_T_8.err.exp
    • data/BasicFrameworkHelp_T_8.exp
    • data/BasicFrameworkHelpReq_T_1.err.exp
    • data/BasicFrameworkHelpReq_T_1.exp
    • data/test_input_SP3d.sp3
    • data/test_output_rinex3_clock_TestR3HeaderOutput.exp

    Updated Truth Data

    • data/outputs/RinSum_obspath_v211.exp
    • data/outputs/RinSum_v211_kerg.exp
    • data/outputs/RinSum_v211_nklg.exp
    • data/outputs/RinSum_v302_FAA1.exp

    Fixes since v2.10

    • Fixed a bug in core/lib/Math/Stats.hpp that produced unpredictable results when trying to add an empty object.
    • int -> unsigned int changes in ext/lib/Geomatics/StatsFilter.hpp
    • Freed memory returned by core/lib/GNSSEph/OrbitEphStore::addToList and updated comments for that method. This fixed memory leaks in core/lib/GNSSEph/GPSEphemerisStore::addToList and core/lib/GNSSEph/Rinex3EphemerisStore::addToList.
    • Corrected prettying print of eph health bits in core/lib/GNSSEph/EngEphemeris.cpp
    • Fixed incorrect end time for 54/18 in core/lib/GNSSCore/SVNumXRef.cpp
    • Fixing bug that introduced false positive on Downstream GPSTk Core build
    • Updated yuma reader to work without newline at end of file. REASON: Needed flexibility to handle files with and without newlines at the end without the reader breaking.
    • Replaced ICD-GPS-211 with IS-GPS-200 in several comments
  • v2.10.7   GPSTk v2.10.7
    a482a76d · GPSTk v2.10.7 ·
    Release v2.10.7

    GPSTk 2.10.7 Release Notes

    Updates since v2.10.6

    Gitlab/Github CI

    • Travis-CI yaml script added for external Github CI autobuilds.
    • Official deb packages are now build for master branch builds and available as artifacts.

    Library Changes

    • Adding L1C to ObsID and QZSS to various places. REASON: Need L1C support for upcoming GPS III launch. QZSS already has a L1C broadcast, so it makes sense to look at that as well.
    • Added method that returns a reference to PtoNMap. Used to generate csv format of the map. REASON: Want to generate a CSV form of svNumXRef, and this method is used for that.

    New Library Classes

    • core/lib/NavFilter/CNav2SanityFilter.*

    New/Added Tests

    • core/tests/NavFilter/CNav2Filter_T.cpp

    Modified Test files

    • core/tests/GNSSEph/NavID_T.cpp
  • v2.10.6   GPSTk v2.10.6
    2dfc4b7d · GPSTk v2.10.6 ·
    Release v2.10.6

    GPSTk 2.10.6 Release Notes

    Updates since v2.10.5

    *Library Changes

    • ext/lib/FileHandling/TimeNamedFileStream.hppnow creates directories for the files it outputs. REASON: ext/apps/rfw/rfw.cpp needed handholding to do its job. Now it doesn't.

    Fixes since v2.10.5

    • Replaced ICD-GPS-211 with IS-GPS-200 in several comments
  • v2.10.5   GPSTK v2.10.5
    ae6abe00 · GPSTk v2.10.5 ·
    Release v2.10.5

    GPSTk 2.10.5 Release Notes

    Updates since v2.10.4

    Library Changes

    • Create a simple class for applying 10-bit week rollover corrections, with room to expand for other similar capabilities

    New Library Classes

    • core/lib/TimeHandling/TimeCorrection.*

    New Tests

    • core/tests/TimeHandling/TimeCorrection_T.cpp
  • v2.10.4   GPSTk v2.10.4
    48015583 · GPSTK v2.10.4 ·
    Release v2.10.4

    GPSTk 2.10.4 Release Notes

    Updates since v2.10.3

    Build System & Packaging Changes

    • Updated Debian configuration files for complete debian package building capability

    New Truth Data

    • data/test_output_rinex3_clock_TestR3HeaderOutput.exp
  • v2.10.3   GPSTk v2.10.3
    a095a065 · GPSTk v2.10.3 ·
    Release v2.10.3

    GPSTk 2.10.3 Release Notes

    Updates since v2.10.2

    Library Changes

    • Adding Ellipsoid model for Galileo. REASON: Required for processing Galileo orbits
    • Change documentation of ObsID phase units. REASON: Most of the defined file formats and associated readers did not respect the prior documentation for phase observations. This changes the documentation to be consistent with the usage in (at least) MDP, NovAtel, RINEX, and MDH.
    • Added ability to use getXvt() calls on unhealthy SVs in XvtStore objects returned by EphReader. Changes include: Migrated onlyHealthy, getOnlyHealthyFlag(), and setOnlyHealthyFlag() from OrbitEphStore to XvtStore; Made sure that default behavior for OrbitEphStore and OrbElemStore was retained; Changed implementation of health status in GloEphemerisStore. REASON: The changes were made since there is a need to be able to call getXvt() on the unhealthy SVs in XvtStore objects returned by EphReader.
    • Adding/Clarifying support for Galileo E5a/E5b in ObsID. Adding Galileo F/NAV and I/NAV to NavID. REASON: Need these signals represented in the signal processing infrastructure. Part of Issue 341 - Update Galileo Signal Support.
    • Ensured full initialization of Stats objects and fixed a memory leak in OrbitEph::timeDisplay. REASON: This change ensures full initialization of Stats objects to eliminate undefined behavior. Also, this fix contains a fix for a small memory leak in OrbitEph::timeDisplay.
    • ORD Calculation Fixes - addressed defects in the new ORD Calculation discovered by Jason Vestuto in his testing. REASON: The calculation results were incorrect.
    • Added a base class for help-like command-line options with special processing in CommandOptionParser and BasicFramework. REASON: Too many applications in the MSN have needed this, and this is a better solution than trying to figure out if these help-like options were used after all the normal command-line option parsing.
    • Restored Missing GPSWeekZcount Math. REASON: When the time code was migrated to CommonTime/TimeTag implementations, several extremely useful methods were discarded from the GPSWeekZcount class.
    • Relaxed fit interval and health restrictions on ext/GNSSEph/OrbAlmStore. REASON: Existing code didn't address existing use cases.
    • Added recognition of Galileo antenna offsets to increase capability. REASON: Several other GNSSs are already implemented. This is adding yet another GNSS in the same pattern.

    New Library Classes

    • core/lib/GNSSCore/GalileoEllipsoid.hpp

    Test Changes

    New/Added Tests

    • core/tests/AppFrame/BasicFrameworkHelp_T.cpp

    Modified Test files

    • core/tests/GNSSEph/NavID_T.cpp
    • core/tests/ORD/OrdRegressionChecks_T.cpp
    • core/tests/ORD/OrdUnitTests_T.cpp
    • core/tests/AppFrame/CMakeLists.txt
    • core/tests/testsuccexp.cmake
    • core/tests/TimeHandling/GPSWeekZcount_T.cpp
    • ext/tests/GNSSEph/OrbAlmStore_T.cpp

    Truth Data Changes

    New Truth Data

    • data/BasicFrameworkHelpReq_T_1.err.exp
    • data/BasicFrameworkHelpReq_T_1.exp
    • data/BasicFrameworkHelp_T_1.err.exp
    • data/BasicFrameworkHelp_T_1.exp
    • data/BasicFrameworkHelp_T_3.err.exp
    • data/BasicFrameworkHelp_T_3.exp
    • data/BasicFrameworkHelp_T_4.err.exp
    • data/BasicFrameworkHelp_T_4.exp
    • data/BasicFrameworkHelp_T_8.err.exp
    • data/BasicFrameworkHelp_T_8.exp

    Updated Truth Data

    • data/outputs/RinSum_obspath_v211.exp
    • data/outputs/RinSum_v211_kerg.exp
    • data/outputs/RinSum_v211_nklg.exp
    • data/outputs/RinSum_v302_FAA1.exp

    Fixes since v2.10.2

    • Updated yuma reader to work without newline at end of file. REASON: Needed flexibility to handle files with and without newlines at the end without the reader breaking.
  • v2.10.2   GPSTk v2.10.2
    1f9f120a · GPSTk v2.10.2 ·
    Release v2.10.2

    GPSTk 2.10.2 Release Notes

    Updates since v2.10.1

    Build System and Test Suite

    • Test coverage was added on the core-build using gcov and gcovr
    • Support for GootleTest/GoogleMock added.

    Gitlab CI

    • Test coverage was added on the core-build using gcov and gcovr
    • Style compliance checking was added (as a new CI-Pipeline stage) using cpplint, but is not enforced.

    Library Changes

    • Added code to core/lib/GNSSEph/RationalizeRinex (used by core/apps/Rinextools/scanBrdcFile) to detect RINEX nav data sets tagged with the wrong SV PRN ID and to not copy such data sets to the output file. REASON: Latest IGS-generated merged RINEX nav (brdc) files contain data sets that are tagged with the incorrect PRN ID.
    • NavFilter updates/enhancements - Add a nav filter for forced ordering of data. Add methods for determining filter depth for buffer size computation. ITT receivers in particular do not always output nav subframes in time order or on time or with correct time stamps.
    • Added ObservationType for demodulator status codes, which will support changes to tools in SGLTk made in a future merge
    • ORD Refactor with CI Pipeline Changes - ord.cpp was exposed in the SWIG interface. Unit tests for coverage were written using GoogleTest/GoogleMock. Test coverage was measured on the core-build using gcov and gcovr. REASON: The ORD routines was considered general enough to add to GPSTk. The project driving it is the HRTR Web Development effort.
    • Updated references for 54/18 and 34/18 and updated PRN 4 gap
    • Added LNAVOrderFilter for forcing time-order of legacy nav subframe data. REASON: When processing data from multiple receivers, the data may not be sent by the receivers at the same time. This filter makes a "best effort" to enforce time ordering across multiple receivers going into the filter.
    • Added sp3d file format support. REASON: We care about sp3d because the IGS MGEX precise orbit files moved from sp3c to sp3d in fall 2017. Therefore, to support various multi-GNSS data experiments, we need to be able to access these files.

    New Library Classes

    • core/lib/ORD/ord.cpp
    • core/lib/ORD/ord.hpp
    • core/lib/NavFilter/LNavOrderFilter.cpp
    • core/lib/NavFilter/LNavOrderFilter.hpp

    Application Changes

    • core/apps/Rinextools/scanBrdcFile updated to detect RINEX nav data sets tagged with the wrong SV PRN ID and to not copy such data sets to the output file.
    • Update core/apps/checktools/rowcheck.cpp & core/apps/checktools/rnwcheck.cpp to use newer RINEX classes for rowcheck and rnwcheck to make them RINEX3 compatible

    Updated Applications

    • core/apps/Rinextools/scanBrdcFile
    • core/apps/checktools/rnwcheck.cpp
    • core/apps/checktools/rowcheck.cpp
    • core/tests/ORD/OrdRegressionChecks_T.cpp
    • core/tests/ORD/OrdUnitTests_T.cpp

    Test Changes

    New/Added Tests

    • core/tests/ORD/GTestExperiments.cpp
    • core/tests/ORD/OrdMockClasses.hpp

    Modified Test files

    • core/tests/NavFilter/NavFilterMgr_T.cpp
    • ext/tests/GNSSEph/OrbAlmStore_T.cpp
    • core/tests/FileHandling/SP3_T.cpp

    Truth Data Changes

    New Truth Data

    • data/test_input_SP3d.sp3

    SWIG Bindings & Python

    • Updated SWIG interface files for ORD refactor

    New/Added SWIG Files

    • swig/src/ord.i

    Fixes since v2.10.1

    • Corrected prettying print of eph health bits in core/lib/GNSSEph/EngEphemeris.cpp
    • Fixed incorrect end time for 54/18 in core/lib/GNSSCore/SVNumXRef.cpp
    • Fixing bug that introduced false positive on Downstream GPSTk Core build
  • v2.10.1   GPSTk v2.10.1
    ae8700ef · GPSTk v2.10.1 ·
    Release v2.10.1

    GPSTk 2.10.1 Release Notes

    Updates since v2.10

    Build System and Test Suite

    • Remove inadequately explained lib directory override in CMakeLists.txt
    • Added line to GPSTKConfig.cmake to allow dependent projects to find header files regardless of implicit or explicit declaration.

    Gitlab CI

    • Changes to .gitlab-ci.yml to fix SGLTk downstream portion of the GPSTk Gitlab CI/CD pipeline.

    Library Changes

    • SunEarthSatGeometry: Added OrbitNormalAttitude function back in, which was originally added in commit 78e29c30, but accidentally deleted in commit 148a0180.
    • Added test in core/lib/Utilities/StringUtils:change() that returns immediately if either input string is empty. REASON: Empty input causes no change, and so the loop (numChanges = max unsigned int) is essentially infinite.
    • Added routines to core/lib/Utilities/stl_helpers.hpp that find the intersection of two vectors and the 'non-intersection'. NOTE: While there are STL routines that do this, they require sorting the vectors first, which is not good for my application (at least).
    • Make all geomatics tests in ext/tests/geomatics/CMakeLists.txt have the same label.
    • In core/lib/Geomatics/Namelist.* - Added operator+=(Namelist) for convenience. Found that randomize() does not do anything on Linux Debian (?!) so just replaced std:: call with simple code. Tiny improvements to the format of matrix/vector output.
    • Added debiasing before computing stats in core/lib/PosSol/PRSolution.hpp. REASON: Stats on the full PRS solution, which is an Earth-centered Earth-fixed position[3], often suffers numerically b/c the numbers are so large. This change simply debiases the numbers by the first value, so stats, in particular standard deviation, do not have noticeable numerical error.
    • Reverted core/lib/FileHandling/Rinex3NavData.cpp to output the xmitTime in the frame of the toe week (derived output week). REASON: Originally, stored xmitTime in the frame of the Rinex3NavData::weeknum which was the week of sf1 HOWtime. output week was derived from weeknum and the difference between xmitTime and toe. When the review was requested, stored xmitTime in the frame of Rinex3NavData::weeknum which was changed to be the toe week. I checked both the RINEX 2.11 (section 6.8) and 3.03 (section 6.13) specs and they agree with the change.

    Modified Test files

    • ext/test/geomatics/CMakeLists.txt

    Fixes since v2.10

    • Fixed a bug in core/lib/Math/Stats.hpp that produced unpredictable results when trying to add an empty object.
    • int -> unsigned int changes in ext/lib/Geomatics/StatsFilter.hpp
    • Freed memory returned by core/lib/GNSSEph/OrbitEphStore::addToList and updated comments for that method. This fixed memory leaks in core/lib/GNSSEph/GPSEphemerisStore::addToList and core/lib/GNSSEph/Rinex3EphemerisStore::addToList.
  • v2.10   GPSTk v2.10
    8f4894d7 · GPSTk v2.10 Updated RC ·
    Release v2.10

    GPSTk 2.10 Release Notes

    Updates since v2.9

    Build System and Test Suite

    • Significant cleanup of Windows Test Suite
    • End-of-line Normalization implemented.
    • Updated build script for supporting VS 14 2015 install via command line.
    • Native Debian package support has been added, using native Debian packaging tools rather than CPack-based support and is more compliant with Debian policy than the CPack version. Debian package is split into multiple packages - gpstk-bin contains the binaries; libgpstkx.x contains the shared library objects; libgpstk-dev contains the headers for development; python-gpstk contains the Python bindings (and swig headers). Supports side-by-side installation of multiple versions of libgpstk.so, so as to facilitate staged upgrades and backward compatibility. Dependencies are computed (and done using native Debian tools), and so will trigger upgrades/conflicts appropriately. Packages are far more Lintian clean (big remaining item is missing man-pages). Work towards supporting more standards-compliant system-wide installations, independent of installation methods (e.g. RPM, Debian, ./build.sh -s).

    Gitlab CI

    • Core build stage added to detect reverse dependency between core and ext
    • Solaris Runner deprecated, only built as nightly
    • Redhat Runner added to Gitlab CI platforms
    • Major Overhaul of Gitlab CI infrastructure. Originally consisting of only Build and Test stages, the new design takes advantage of artifact passing for better efficiency and faster builds while adding new stages - Deploy (local install), Package, and Downstream (SGLTk) stages. System install, license check, and additional stages are planned in the future.

    Documentation

    • Documentation across the GPSTk has been revamped. User's Reference Manual has been updated - old application removed, migrated applications moved to SGLTk manual. Documentation.md added for how-tos on building documentation. Application Documentation added to each app directory, in markdown for easy reading and auto-rendering on Gitlab.

    Library Changes

    • FUTURE DEPRECATION WARNING for CommonTime public accessor/mutator methods. REASON: Discussions for Issue #248 have led to us retaining the internal GPSTk representation of Julian Date, jday, and instead restrict CommonTime use to specific classes as designed.
    • Documentation describing the internal GPSTk representation of Julian Date, jday(JD+0.5), was taken from DayTime (deprecated) and added to JulianDate.hpp. REASON: JulianDate.hpp lacked documentation for internal GPSTk representation of Julian Date, jday, which used to exist before the DayTime to CommonTime/TimeTag update.
    • EngEphemeris objects now initialize the AODO (Age of Data Offset) upon creation. REASON: The maximum age that the satellites can broadcast is 27900 seconds (5-bit unsigned multiplied by 900. 31*900=27900). After 27900 seconds the offset data is unusable. Since a fresh EngEphemeris object contains ephemeris of an unknown age, it makes sense that AODO is set to 27900 to indicate that the offset data should not be relied upon.
    • GPS CNAV added to Navfilter, which entails adding a variety of CNavFilter classes, adding debug print capability to NavFilter and descendants, as well as a variety of additions to the functionality of core/GNSSEph/PackedNavBits. REASON: In order to develop GPS CNAV (L2 and L5) processing for MDH and MDP into RawNavCSV files, we need the capability to compare CNAV messages across receivers (at least).
    • Trop Models refactored to have one model per file by refactoring exception throwing. REASON: Preservation of location information.
    • Extension of OrbElemBase Hierarchy to Support "Almanac" Data. New LNAV subclasses for virtual OrbSysGPSL, which provides a means to identify contents of the objects by either subframe/page or by Data ID - OrbSysGPL_51 (SV Health for PRN 1-24), OrbSysGPL_52 (Navigation Message Correction Table), OrbSysGPL_53 (Special message), OrbSysGPL_56 (Iono model, UTC correction, Leap second), OrbSysGPL_63 (SV Configuration (all SV) and SV Health for PRN 25-32). CNAV_L2 and CNAV_L5 string IDs changed. REASON: Broaden OrbElemBase coverage to encompass both lower-precision "almanac" orbits and the non-orbit "system-level" data.
    • NavID was added to PackedNavBits. REASON: BeiDou ICD was discovered to be incorrect when it states: 1) PRN 1-5 will always be GEO and always broadcast nav ms format D2 2) PRN >=6 will always be MEO/IGSO and always broadcast nav msg format D1. This means the software cannot depend on SatID alone (PRN and system) to determine D1 or D2 format. As the MDH format will eventually include a NAV code, a short-term solution is to examine the nav message data rate to determine D1 or D2 and then initialize the NavID associated with the PackedNavBits (as it stores the bits and other associated meta-data) to keep track of that determination.
    • Increased the maximum number of iterations for invChisqCDF, contfracIncompGamma, cfIBeta, and seriesIncompGamma from 100 to 1000. REASON: In LSA, we encountered a problem with a large number of degrees of freedom (26301) and invChisqCDF failed to converge after 100 iterations. Brian Tolman suggested that simply increasing this limit should be sufficient. I bumped up niter from 100 to 1000 for invChisqCDF, and also invNormalCDF, invStudentsCDF for consistency. This is an arbitrary value and I have not determined the number of iterations required to converge for the problem encountered in LSA.
    • Updated TropModel to treat humidity values between 100 and 105 as 100 and to throw an exception if above 105. REASON: A Value of more than 100 for humidity will throw an exception in TropModel. However, this does not play well with real humidity values which can be above 100. Two solutions exist: the max humidity can be raised in TropModel or rather than throwing an exception if humidity is above 100, TropModel can treat high humidity as 100 percent.
    • OrbAlmGlo modified to use beginValid instead of the Almanac Week number (WNa) Time of Arrival (toa). Originally, it was assumed that the almanac WNa/toa was "in the future" from the curren time by at least a day. Based on observed behavior, it seems that the almanac WNA/toa is actually within a half-day of the current time, although no promises are made on this matter.
    • Operator <() added to TimeRange to allow use of TimeRange as key in set/map. Operator test added as well.
    • OrbitEphStore find methods return NULL when OrbitEphStore is empty. REASON: Normal circumstances dictate the map for a given satellite would not be emptied, but this can't be guaranteed as soon as edit() is used.
    • Fix usage of Position in ORD classes. Modified ClockModel/ObsRngDev.cpp and GNSSEph/EphemerisRange.cpp to use Position with conversions to the appropriate CoordinateSystem. Fixes exceptions when a CoordinateSystem other than the one expected/assumed was passed in. REASON: The ObsRngDev methods are trying to create Geodetic positions from ECEF input.
    • Fixed BINEX CRC length and added unit tests to catch incorrect CRC length and other record length problems; updateded unit tests with fancy macros. REASON: BINEX CRC length was incorrect.
    • Infrastructure changes made for additional BeiDou support.
    • A method was added to OrbSysGpsL_56 to create a TimeSystemCorrelation Object. Also added a new .find( ) method to OrbSysStore that returns the most recently transmitted version of a particular message type across all SVs, which is needed to find most recent UTC Offset data across the constellation. REASON: Given a OrbSysGPSL_56 exists, it should be able to create a TimeSystemCorrection object based on the A0/A1 and related terms. The resulting TimeSystemCorrection object should work exactly as if it was read from a RINEX header "GPUT" record.
    • BDS and QZSS support added to SP3c parsins. REASON: SP3c support is incomplete and fails when confronted with GNSS system codes for BeiDou and QZSS. This issue aims to patch this hole and add tests to confirm good operation of the new code.
    • Antenna phase center offset calculations added.
    • Infrastructure changes made to support analysis of IRNSS data, for example, updating OrbAlmGen.cpp to include capability for creating IRNSS orbit comparisons. REASON: Various infrastructure pieces need to be updated to support analysis of data from the Indian Regional Navigation Satellite System (IRNSS).
    • Stream flags are changed and restored as needed in hexDumpData. Additional improvements to hexDumpData as well. REASON: hexDumpData does a bit of stream manipulation and also makes assumptions about the state of the stream to start with. One possible end result is that you may have left justification turned on, in which case index numbers like 0x10 will be printed as "1000", the final 2 "0" characters being the stream fill character. Byte data that is < 16, e.g. 0-f could be printed as, say "c0" instead of "0c".
    • RINEX 3 Nav Xmit time output is now actually Xmit time (instead of HOWTime). Fixed Rinex3NavData.toList() including Toc twice and Toe 0 times Rinex3NavHeader output better matches RINEX specifications.
    • RINEX 2 header date formatted to match previous RINEX class output.
    • RINEX 3.03 (July 2014) support is now complete, which involved completing IRNSS support and updating Beidou frequency B1 to appear as '2' as in Obs ID (as with RINEX 3.00, 3.01) rather than '1' as it does in RINEX 3.02.
    • Small update to CommandLine - No args means help as default; verbose, debug, and help added.
    • Added message handler for CNAV MT 32, as well as tests for MT32 and MT33. REASON: While working on RFC-354 for the public signal ICWG I run across the need to implement an OrbDataSys class to handle GPS CNAV MT 32. I need to both implement the cracker and add it to the ext/GNSSEph/OrbDataSysFactory class.
    • Rationalize function was moved from GPSOrbElemStore to OrbElemStore.
    • Updated SVNumXRef to have the correct dates and times as verified through rawNavDump, as well as for the change from sv49/prn4 to sv36/prn4 from the 2017070 nanu.
    • Solar System update - Extensive updates to Earth orientation code, including adding the JPL 405 ephemeris, IERS conventions for 1996, 2003 and 2010, and tests compare results with IAU, IERS and JPL test code results.
    • Added frequency and wavelength constants for Glonass G3 carrier. REASON: The Glonass G3 wavelength and frequency were not in the GNSSConstants.hpp file.
    • Global Trop model has been added along with minor additions to TropModel classes. Tests also added for each of the trop models that dumps the values and compares to the expected outputs.
    • Updated SatPass to write RINEX 3 files with SatPassToRinex3File()). Also replaced SatPass::sort() with std::sort(), deprecated SatPass::SatPassToRinexFile() and replaced it with SatPassToRinex2File().
    • Improve Stats by defining wtd and sequential as separate classes, add simple statistical filter class StatsFilter to geomatics. Added new tests of Stats as well as tests of StatsFilter.
    • In Rinex3NavData, replaced HOWtime with xmitTime because the RINEX spec asks for xmitTime and not HOWtime. Added fromLongDouble() to MJD class. Added const qualifier to Stats::operator+= and -=. Updated RINEX Nav truth data. REASON: MSN Requirement.
    • Rinex3ObsHeader output date set as yyyymmdd hhmmss zone regardless of RINEX version. REASON: Rinex3ObsHeader output a less specific Date for RINEX 2 files than RINEX 3 and previous RINEX output.
    • Added a wrapper for POSIX struct timespec, TimeHandling/PosixTime REASON: The current UnixTime class is designed around struct timeval, used by the gettimeofday() function. The (RHEL7) Linux man page for gettimeofday says: "POSIX.1-2008 marks gettimeofday() as obsolete, recommending the use of clock_gettime(2) instead." The clock_gettime function uses struct timespec instead, which uses nanoseconds instead of microseconds, so a new class implementation is necessary to support it.
    • In TimeString, TimeTag identifier for integer full QZS Week changed from 'I' to 'h' as part of PosixTime implementation.
    • CNAV filters have been modified to no longer discard default message data, as originally implemented. REASON: Downstream processes need to know about default navigation message periods. Therefore, we can't simply discard the data.

    New Library Classes

    • core/lib/GNSSCore/CSCG2000Ellipsoid.hpp
    • core/lib/GNSSCore/GCATTropModel.*
    • core/lib/GNSSCore/GGHeightTropModel.*
    • core/lib/GNSSCore/GGTropModel.*
    • core/lib/GNSSCore/GlobalTropModel.*
    • core/lib/GNSSCore/MOPSTropModel.*
    • core/lib/GNSSCore/NBTropModel.*
    • core/lib/GNSSCore/NeillTropModel.*
    • core/lib/GNSSCore/SaasTropModel.*
    • core/lib/GNSSCore/SimpleTropModel.*
    • core/lib/GNSSEph/RationalizeRinexNav.*
    • core/lib/NavFilter/CNavCookFilter.*
    • core/lib/NavFilter/CNavCrossSourceFilter.*
    • core/lib/NavFilter/CNavEmptyFilter.*
    • core/lib/NavFilter/CNavFilterData.*
    • core/lib/NavFilter/CNavParityFilter.*
    • core/lib/NavFilter/CNavTOWFilter.*
    • core/lib/NavFilter/LNavFilterData.*
    • core/lib/TimeHandling/IRNWeekSecond.hpp
    • core/lib/Utilities/HexDumpDataConfig.*
    • ext/lib/Geomatics/AntennaStore.*
    • ext/lib/Geomatics/CubicSpline.hpp
    • ext/lib/Geomatics/EOPPrediction.*
    • ext/lib/Geomatics/EOPStore.*
    • ext/lib/Geomatics/EphTime.hpp
    • ext/lib/Geomatics/IERS1996NutationData.hpp
    • ext/lib/Geomatics/IERS1996UT1mUTCData.hpp
    • ext/lib/Geomatics/IERS2003NutationData.hpp
    • ext/lib/Geomatics/IERS2010CIOSeriesData.hpp
    • ext/lib/Geomatics/IERSConvention.*
    • ext/lib/Geomatics/OceanLoadTides.*
    • ext/lib/Geomatics/SolarSystemEphemeris.*
    • ext/lib/Geomatics/StatsFilter.hpp
    • ext/lib/GNSSEph/OrbAlam.*
    • ext/lib/GNSSEph/OrbAlmFactory.*
    • ext/lib/GNSSEph/OrbAlmGen.*
    • ext/lib/GNSSEph/OrbDataSysFactory.*
    • ext/lib/GNSSEph/OrbSysGpsC.*
    • ext/lib/GNSSEph/OrbSysGpsC_30.*
    • ext/lib/GNSSEph/OrbSysGpsC_32.*
    • ext/lib/GNSSEph/OrbSysGpsC_33.*
    • ext/lib/GNSSEph/OrbSysGpsL_52.*
    • ext/lib/GNSSEph/OrbSysGpsL_55.*
    • ext/lib/GNSSEph/OrbSysGpsL_Reserved.*

    Moved/Renamed Library Classes

    • ext/lib/Geomatics/DDid.* -> ext/apps/geomatics/relposition/DDid.*
    • ext/lib/Geomatics/index.hpp -> ext/apps/geomatics/relposition/index.hpp
    • ext/lib/Geomatics/PhaseWindup.* -> ext/apps/geomatics/relposition/PhaseWindup.*
    • ext/lib/GNSSEph/OrbElem.* -> core/lib/GNSSEph/OrbElem.*
    • ext/lib/GNSSEph/OrbElem.* -> core/lib/GNSSEph/OrbElem.*
    • ext/lib/GNSSEph/OrbElemBase.* -> core/lib/GNSSEph/OrbElemBase.*
    • ext/lib/GNSSEph/OrbElemRinex.* -> core/lib/GNSSEph/OrbElemRinex.*
    • ext/lib/GNSSEph/OrbElemStore.* -> core/lib/GNSSEph/OrbElemStore.*

    Deprecated/Deleted Library Classes

    • ext/lib/Geomatics/GeodeticFrames.*
    • ext/lib/Geomatics/MostCommonValue.hpp

    Application Changes

    • Calgps has been split into two applications - /core application of the same name with no /ext/lib/vdraw support and no support for postscript, eps, or svg - /ext application named calgps_svg with full /ext/lib/vdraw support and supports postscript, eps, and svg. Primary application tests have been migrated to /core/tests, while postscript,eps, and svg tests have been left in /ext/tests.
    • RINEX and RinEdit changes - Rinex3Met files can now be version 3.02. RinexObsHeaders without Glonass observations no longer require glonassCodPhsBias or glonassFreqNo. Added checking for invalid system chars in prepareVer2Write. Added checking for prepareVer2Write when attempting to output RINEX v2.11 files. Using prepareVer2Write to select between overlapping ObsID -> R2 Obs Type conversions now creates a header comment clarifying the origin of the Obs Type. Added tests for these changes, including test for creating RINEX Obs files from scratch.
    • rnwdiff and rowdiff can now compare RINEX 3 files in addition to RINEX 2 files and can diff R2 and R3 files against each other.
    • rowdiff - added missing newline character after epochs for readability; check that secondObsItr exists before attempting to compare against it.
    • New application - timediff | A tool for getting the difference between two times
    • New application - scanBrdcFile | Scan an IGS-generated BRDC file in RINEX Nav format, fix various flaws, and write the results to a new RINEX nav file. Optionally provide a summary of what was fixed and the final state of the navigation message data set.
    • PRSolve updated to support new Global Trop Model as part of existing Trop model option.

    Application Interface Changes

    • bc2sp3 new option | --cs Cadence of epochs in seconds (300s)
    • PRSolve updated option | Trop model [one of Zero, Black, Saas, NewB, Neill, GG, GGHt, Global, with optional weather T(C),P(mb),RH(%)]

    New Applications

    • core/apps/Rinextools/scanBrdcFile
    • core/apps/time/timediff
    • ext/apps/time/calgps_svg

    Updated Applications

    • core/apps/time/calgps
    • ext/apps/geomatics/JPLeph/convertSSEph
    • ext/apps/geomatics/JPLeph/testSSEph
    • ext/apps/geomatics/relposition/DDBase

    Ext to Core Applicaton Migration (Tested and migrated with test code in appropriate folders)

    • Rintools - RinEdit, RinSum
    • checktools - rmwcheck, rowcheck, mnwcheck
    • difftools - rinheaddiff, rmwdiff, rnwdiff, rowwdiff
    • filetools - bc2sp3
    • mergetools - mergeRinMet, mergeRinNav, mergeRinObs
    • time - calgps (modified)

    SWIG Bindings & Python

    • Python test infrastructure enhancements.
    • Added python install information to the CMake configuration to identify where the python lib was installed.
    • Added SWIG template for vector with ObsID contents in swig/src/STLTemplates.i, since the data structure combination of std:vector and ObsID were inaccessible to python programs due to this combinatio not being included in the SWIG interface file.

    Test Changes

    New/Added Tests

    • core/tests/checktools/CMakeLists.txt - rmwcheck, rowcheck, mnwcheck tests
    • core/tests/FileHandling/Binex_Attrs_T.cpp
    • core/tests/FileHandling/Binex_ReadWrite_T.cpp
    • core/tests/FileHandling/Rinex3Obs_FromScratch_t.cpp
    • core/tests/FileHandling/RinexMet_T.cpp
    • core/tests/filetools/CMakeLists.txt - bc2sp3 tests
    • core/tests/GNSSCore/CMakeLists.txt - TropModel tests
    • core/tests/GNSSEph/BrcClockCorrection_T.cpp
    • core/tests/GNSSEph/BrcKeplerOrbit_T.cpp
    • core/tests/GNSSEph/EngEphemeris_T.cpp
    • core/tests/GNSSEph/GPSEphemerisStore_T.cpp
    • core/tests/GNSSEph/NavID_T.cpp
    • core/tests/GNSSEph/OrbitEphStore_T.cpp
    • core/tests/mergetools/CMakeLists.txt - mergeRinMet, mergeRinNav, mergeRinObs tests
    • core/tests/NavFilter/CNavFilter_T
    • core/tests/positioning/CMakeLists.txt - PRSolve tests
    • core/tests/RefTime/TimeSystemCorr_T.cpp
    • core/tests/Rinextools/CmakeLists.txt - RinDump, RinEdit, RinSum, scanBrdcFile tests
    • core/tests/Rinextools/testScanBrdcFile.cmake
    • core/tests/time/CMakeLists.txt - timeconvert test
    • core/tests/time/CMakeLists.txt - Timediff tests
    • core/tests/TimeHandling/CMakeLists.txt - PosixTime test
    • core/tests/TimeHandling/IRNWeekSecond_T.cpp
    • core/tests/TimeHandling/PosixTime_T.cpp
    • core/tests/TimeHandling/TimeRange_T.cpp
    • core/tests/Utilities/StringUtils_T.cpp
    • ext/tests/geomatics/CMakeLists.txt - StatsFilter test
    • ext/tests/geomatics/StatsFilter_T.cpp
    • ext/tests/GNSSEph/CMakeLists.txt - OrbDataSys
    • ext/tests/GNSSEph/OrbAlm_T.cpp
    • ext/tests/GNSSEph/OrbSysStore_T.cpp
    • ext/tests/multipath/CMakeLists.txt - mpsolve tests
    • ext/tests/multipath/testmpsolve.cmake
    • ext_tests/GNSSEph/OrbSysGpsC_T.cpp
    • swig/tests/test_tropmodel.py

    Modified Test files

    • core/tests/CommandLine/CommandOption_T.cpp
    • core/tests/CommandLine/CommandOptionParser_T.cpp
    • core/tests/FileDirProc/FileHunter_T.cpp
    • core/tests/FileDirProc/FileSpec_T.cpp
    • core/tests/FileDirProc/FileUtils_T.cpp
    • core/tests/FileHandling/Binex_Attrs_T.cpp
    • core/tests/FileHandling/Binex_ReadWrite_T.cpp
    • core/tests/FileHandling/FFBinaryStream_T.cpp
    • core/tests/FileHandling/Rinex3Obs_T.cpp
    • core/tests/FileHandling/RinexNav_T.cpp
    • core/tests/GNSSEph/PackedNavBits_T.cpp
    • core/tests/GNSSEph/SatID_T.cpp
    • core/tests/Math/Stats_T.cpp
    • core/tests/RefTime/TimeSystem_T.cpp
    • core/tests/time/CMakeLists.txt - timeconvert tests
    • core/tests/TimeHandling/ANSITime_T.cpp
    • core/tests/TimeHandling/CommonTime_T.cpp
    • core/tests/TimeHandling/GPSWeekSecond_T.cpp
    • core/tests/TimeHandling/GPSWeekZcount_T.cpp
    • core/tests/TimeHandling/JulianDate_T.cpp
    • core/tests/TimeHandling/MJD_T.cpp
    • core/tests/TimeHandling/SystemTime_T.cpp
    • core/tests/TimeHandling/UnixTime_T.cpp
    • core/tests/Utilities/StringUtils_T.cpp
    • core/tests/Utilities/ValidType_T.cpp
    • ext/tests/GNSSEph/OrbDataSys_T.cpp

    Truth Data Changes

    New Truth Data

    • data/EarthOrientation_SOFA.exp
    • data/EarthTides_IERS.exp
    • data/inputs/brdc0070.16n
    • data/inputs/brdc0080.16n
    • data/inputs/igs/
    • data/inputs/igs/cags1700.16o
    • data/inputs/igs/FAA100PYF_R_20161700100_15M_01S_MO
    • data/inputs/igs/faa1170b00.16o
    • data/inputs/igs/igs19016.sp3
    • data/inputs/igs/kerg1700.16o
    • data/inputs/igs/nklg170b00
    • data/inputs/igs/nrmg0150.16o
    • data/inputs/igs/osn31700.16o
    • data/inputs/igs/solo0150.16o
    • data/inputs/igs/sptu0150.16o
    • data/inputs/igs/UCAL00CAN_S_20161700100_15M_01S_MO
    • data/inputs/RinEdit_GPS_only
    • data/JPL_403eph_accuracy.exp
    • data/JPL_403eph_conversion.exp
    • data/JPL_405eph_accuracy.exp
    • data/JPL_405eph_conversion.exp
    • data/mergeRinMet_2.exp
    • data/mergeRinNav_2.exp
    • data/mergeRinObs_2.exp
    • data/outputs/RinDump_211Mixed.exp
    • data/outputs/RinDump_303_nrmg_BDStest.exp
    • data/outputs/RinDump_303_solo_BDStest.exp
    • data/outputs/RinDump_303_sptu_BDStest.exp
    • data/outputs/RinEdit_302merge.exp
    • data/outputs/RinEdit_302split1.exp
    • data/outputs/RinEdit_302split2.exp
    • data/outputs/RinEdit_302to211GPS.exp
    • data/outputs/RinEdit_302to211Mixed.exp
    • data/outputs/RinSum_obspath_v211.exp
    • data/outputs/RinSum_v11_nklg.exp
    • data/outputs/RinSum_v210_osn3.exp
    • data/outputs/RinSum_v211_cags.exp
    • data/outputs/RinSum_v211_kerg.exp
    • data/outputs/RinSum_v300_sptu_BDStest.exp
    • data/outputs/RinSum_v302_FAA1.exp
    • data/outputs/RinSum_v302_nrmg_BDStest.exp
    • data/outputs/RinSum_v303_solo_BDStest.exp
    • data/outputs/scanBrdcFile1-007.exp
    • data/outputs/scanBrdcFile1-008.exp
    • data/outputs/scanBrdcFile1-sum.exp
    • data/RinDump_Rinex2Input.exp
    • data/RinEdit_ValidOutput.exp
    • data/rinex3ObsTest_v211_CompleteR.exp
    • data/rinex3ObsTest_v211_MixedTest.exp
    • data/rinex3ObsTest_v211_ValidTest.exp
    • data/rinex3ObsTest_v302_CompleteR.exp
    • data/rinex3ObsTest_v302_MixedTest.exp
    • data/rinex3ObsTest_v302_ValidTest.exp
    • data/rnwdiff2.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_1.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_10.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_11.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_2.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_3.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_4.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_5.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_6.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_7.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_8.exp
    • data/StringUtils/hexDumpDataConfigTest_hexDump_9.exp
    • data/StringUtils/hexDumpDataStreamFlagTest_hexDump.exp
    • data/StringUtils/hexDumpDataTest_configHexDump.exp
    • data/StringUtils/hexDumpDataTest_hexDump.exp
    • data/StringUtils/hexDumpDataTest_printableMessage.exp
    • data/StringUtils/hexToAsciiTest_configHexDump.exp
    • data/StringUtils/hexToAsciiTest_hexDump.exp
    • data/StringUtils/hexToAsciiTest_printableMessage.exp
    • data/test_input.ddbase.opt_ok
    • data/test_input_ddbase.eop
    • data/test_input_ddbase_85412_new_044to045.15n
    • data/test_input_ddbase_85412_new_045.15o
    • data/test_input_ddbase_85412_old_045.15o
    • data/test_input_mpsolve.15n
    • data/test_input_mpsolve.15o
    • data/test_input_rinex_met_302.04m
    • data/test_input_sp3_nav_2015_200.sp3
    • data/test_output_mpsolve_l0.exp
    • data/test_output_mpsolve_l3000.exp
    • data/test_output_mpsolve_l3600.exp
    • data/test_output_mpsolve_mBAD.exp
    • data/test_output_mpsolve_mOK.exp
    • data/test_output_mpsolve_oe.exp
    • data/test_output_mpsolve_oea.exp
    • data/test_output_mpsolve_oec.exp
    • data/test_output_mpsolve_oed.exp
    • data/test_output_mpsolve_oen.exp
    • data/test_output_mpsolve_oenracd.exp
    • data/test_output_mpsolve_oer.exp
    • data/test_output_mpsolve_u0.exp
    • data/test_output_mpsolve_u30.exp
    • data/test_output_mpsolve_w10.exp
    • data/test_output_mpsolve_w17.exp
    • data/test_output_mpsolve_w30.exp
    • data/test_output_OrbAlm_T_GPS_LNAV.exp
    • data/test_output_OrbDataSys_T_GPS_CNAV.exp
    • data/test_output_OrbDataSys_T_GPS_LNAV.exp
    • data/testocean.blq
    • data/TropModel_GCAT.exp
    • data/TropModel_GG.exp
    • data/TropModel_GGHeight.exp
    • data/TropModel_Global.exp
    • data/TropModel_MOPS.exp
    • data/TropModel_NB.exp
    • data/TropModel_Saas.exp
    • data/TropModel_Simple.exp
    • data/TropModel_Zero.exp

    Updated Truth Data

    • data/arlm2000.15n
    • data/arlm2000.15n
    • data/arlm2000.15n
    • data/arlm2001.15n
    • data/arlm200a.15n
    • data/arlm200b.15n
    • data/arlm200z.15n
    • data/bc2sp3_Same_1.exp
    • data/bc2sp3_Same_2.exp
    • data/bc2sp3_Same_3.exp
    • data/mergeRinNav_1.exp
    • data/mergeRinNav_2.exp
    • data/outputs/RinEdit_302merge.exp
    • data/outputs/RinEdit_302split1.exp
    • data/outputs/RinEdit_302split2.exp
    • data/PRSolve_Required.exp
    • data/PRSolve_Rinexout.exp
    • data/RinEdit_ValidOutput.exp -> data/outpus/RinEdit_Header.exp
    • data/rnwdiff1.exp
    • data/rnwdiff3.exp
    • data/rowdiff1.exp
    • data/rowdiff2.exp
    • data/rowdiff3.exp

    Deprecated Truth Data

    • data/RinSum_ycode.exp

    Fixes since v2.9

    • FileHunter file fix for Debian Build of GPSTk tests.
    • RinexObsHeader bug fix to handle multiple lines of continuation, as the original code assumed only one.
    • RinDump and RinEdit bug fixes, submitted by Brian Tolman via email.
    • Fixed home directory expansion for python user install. Replaced tilde with $HOME as it wasn't always working.
    • Fixed messed up freq/indx lines in Rinex3 obs headers by adding an obs type to support GLONASS freq indexes.
    • Fixed build.sh script bug for building Doxygen API.
    • Fixed source packaging in BuildSetup.cmake by excluding the build, example, and ref directories from CPack.
    • Fixed conversions to/from BDT, added Jan 2017 leap second to table, cleaned up magic numbers in order to resolve a problem that was found in the determination of the UTC / BeiDou time offset
    • Fixed memory leak during clear() in OrbitEphStore; moved the implementation out of the header file.
    • RinEdit --DO option no longer also deletes the observation following the desired deletion.
    • Fixed return code in swig/gpstk/test_utils.py to be non-zero when there are uncaught exceptions thrown during tests.
    • Fixed several bugs and introduced additional tests to verify the functionality of RinEdit/RinSum/RinDump when processing RINEX files with Galileo data.
    • OrbAlmGen was modified to recognize and reject placeholder almanacs.
    • Fixed issue in GPSEphemerisStore in which it was not choosing correct ephemerides. GPSEphemerisStore had been observed skipping over entire ephemerides when used to compute residuals via ObsRngDev.
    • Changes to Rinex3NavData and RinexSatID to keep RinDump from crashing when reading RINEX files containing IRNSS data.
    • Fixed CMake scripts to build swig module directory prior to building the module, because when building using -j1 or on a single core machine, the build of the swig python module would fail due to a directory not having been created.
    • TUASSERT macros in TestUtil.hpp now catch exceptions and fail appropriately.
    • Fixed issue where mergeRinObs was failing on some RINEX files by allowing files with CR/LF Line Endings...thanks Windows.
    • Resolved the issue of EngEphemeris having no operator==
    • Fixed FileHunter::find() time system bug and added relevant unit tests
    • Fixed trivial bug in DiscFix configuration input
    • Fixed handling of wordless strings in StringUtils::words()/removeWords(), added unit tests, and updated documentation.
    • Fixed bug in Rinex3EphemeriStore::Initial/FinalTime() that allowed access of empty stores.
    • Fixed bug in AntennaStore.cpp in which TimeSystem of CommonTime() object needed to be set to TimeSystem::Any.
    • Updated incorrect TDB time String in TimeSystem.cpp as it was surely a mistake to make the string for Barycentric dynamic time (TDB, the time of the JPL ephemeris) "TRT", which is Turkey time.
    • Fixed windows tests of RinSum by dropping filesize of file output.
    • Fixed a bug in which CommandOptionNOf::which() never returns more than one option. For example, if you're trying to use CommandOptionNOf to allow for combinations of options (e.g. timdiff in the MSN), the which() method never returns more than one option that was specified out of the group. That is if you have xOpt and yOpt in the NOf group, and the user uses both xOpt and yOpt, which() will only return one of them.
    • Fixed issue in which using StringUtils::prettyPrint does not handle new lines. For example, if the text includes newlines, the new line appears to be handled as if it were a normal printable character and therefore the output is broken into strange segments.
    • Fixed small bug in GloEphemeris store in which bool was treated as double.
    • Fixed bug in SaasTropModel wet delay formula, also fixed references in comments.
    • NavID.hpp fix to for Windows warnings.
    • Changes to bc2sp3 test to fix test failures on Windows.
    • Fixed a bug in StatsFilter in which getStats() was not ignoring bad data beyond the end of the good data.
    • Fixed problem with PackedNavBits::operator<(). PackedNavBits::operator<() is used for sorting navigation message bits in some of the SGLTk NavFilter classes. PackedNavBits::operator<() starts at the most significant bit and compares the bits one-by-one. (side note: if the two objects are not the same length, the shortest is regarded as the lesser of the two.) The first object with a '0' bit is regarded as the lesser of the two. However, in the case of left < right if they started out equal, but then left had a '1' and right had a '0', it was not returning false immediately but continuing to scan.
  • v2.9.8   GPSTk v2.9.8
    bcea46ad · GPSTk v2.9.8 ·
  • v2.9.7   GPSTk v2.9.7
    4a77260e · GPSTk v2.9.7 ·
  • v2.9.6   GPSTk v2.9.6
    6a33081b · GPSTk v2.9.6 ·
  • v2.9.5   GPSTk v2.9.5
    bee6fcb9 · GPSTk v2.9.5 ·
  • v2.9.4   GPSTk v2.9.4
    029dfc60 · GPSTk v2.9.4 ·