Giter Site home page Giter Site logo

sgl-ut / gpstk Goto Github PK

View Code? Open in Web Editor NEW
338.0 72.0 181.0 185.46 MB

ATTENTION: This repository has been moved and is for archival purposes only. GPSTk toolkit has been renamed to GNSSTK and has been split into two new separate repositories. GNSSTK now only contains libraries while the other repository GNSSTK-APPS contains only applications. The rename and split into libraries and applications started with version v12.0.0 on September 2021. GPSTk --> GNSSTK at https://gitlab.com/sgl-ut/gnsstk --> GNSSTK-APPS at https://gitlab.com/sgl-ut/gnsstk-apps

License: Other

Shell 0.14% C++ 70.79% Perl 0.44% Gnuplot 0.05% Awk 0.01% Python 0.83% C 0.30% TeX 11.20% MATLAB 0.01% CMake 1.33% Makefile 0.05% Batchfile 0.01% Prolog 0.02% PostScript 14.39% SWIG 0.44%

gpstk's Introduction

README

Github - Build Status

NOTICE:

THIS PROJECT HAS BEEN MOVED AND IS FOR ARCHIVAL PURPOSES ONLY.

On September 2021, GPSTk was renamed to GNSSTK and split into two new repositories GNSSTK and GNSSTK-APPS starting with version v12.0.0. GNSSTK only contains linkable libraries while GNSSTK-APPS contains application binaries.

New Repositories Workflow

graph TD
    A["GPSTk (deprecated)"] --> B["GNSSTK (libraries)"] & C["GNSSTK-APPS (applications)"]
Loading

GNSSTK location: https://github.com/sgl-ut/gnsstk
GNSSTK-APPS location: https://github.com/sgl-ut/gnsstk-apps

On November 30, 2020 there was a push of many pending changes to the GPSTk repository. We apologize for the long period without updates, the year 2020 has been a trying time in many respects.

The most obvious change has been a transition to a semantic versioning scheme (semver.org). This is intended to be an informal contract regarding the API that is presented by our tools. It should always be safe to update to the next version, so long as the major version number doesn't change.

Releases containing API changes, however small, will result in a major version number increment. Releases containing new features will result in a minor version number increment. Releases containing only bug fixes will have a patch number increment.

Contents:

  • Introduction
  • Description: GPSTk C++ Library
  • Description: GPSTk C++ Applications
  • Description: GPSTk Python Bindings
  • Installation
  • Testing
  • Help & Docs
  • Contribution guidelines
  • Contributor list
  • Credits & Lineage
  • License

Introduction:

The GPS Toolkit (GPSTk) is an open-source (LGPL) project sponsored by the Space and Geophysics Laboratory (SGL), part of the Applied Research Laboratories (ARL) at The University of Texas at Austin.

The primary goals of the GPSTk project are to:

  • provide applications for use by the GNSS and satellite navigation community.
  • provide a core library to facilitate the development of GNSS applications.

Description: GPSTk C++ Library:

The GPSTk core library provides a number of models and algorithms found in GNSS textbooks and classic papers, such as solving for the user position or estimating atmospheric refraction. Common data formats such as RINEX are supported as well.

There are several categories of functions in the GPSTk library:

  1. GPS time. Conversion among time representations such as MJD, GPS week and seconds of week, and many others.

  2. Ephemeris calculations. Position and clock interpolation for both broadcast and precise ephemerides.

  3. Atmospheric delay models. Includes ionosphere and troposphere models.

  4. Position solution. Includes an implementation of a Receiver Autonomous Integrity Monitoring algorithm.

  5. Mathematics. Includes Matrix and Vector implementations, as well as interpolation and numerical integration.

  6. GNSS data structures. Data structures that contain observations mapped according to epochs, satellites, sources and types of observations. Appropriate processing classes are also provided, including a complete 'Precise Point Positioning' (PPP) processing chain.

  7. Application framework. Includes processing command lines options, providing interactive help and working with file systems.

A more detailed description of the functionality provided by the GPSTk library can be found in the Doxygen documentation on the GPSTk website.

http://www.gpstk.org/bin/view/Documentation/WebHome

The GPSTk Core Library and its associated test programs can be built independently of building the GPSTk Applications or Auxiliary Libraries. The GPSTk Core Library source code contains no dependencies outside of the GPSTk Core Library and Standard C++ and will build cleanly on all supported platforms.

Description: GPSTk C++ Applications:

The GPSTk libraries are the foundation for the GPSTk applications suite. The applications support greater depth of functionality to support research and development. The applications are almost entirely console based (i.e., without a graphical user interface). They can be grouped functionally into the following categories:

  1. RINEX utilities - The RINEX utilities provide a set of applications that can be used to examine, manipulate, and plot RINEX observation files.

  2. Positioning - The positioning applications include two different applications that perform standard pseudorange-based positioning and two that implement differential phase-based solutions.

  3. Residual analysis - A residual analysis application computes two types of measurement residuals using a single receiver or two receivers in a zero baseline configuration.

  4. Ionospheric modeling - The ionospheric modeling applications utilize the two frequency TEC estimate from the RINEX utilities and compute a model of the ionosphere.

  5. Signal Tracking Simulation - These utilities simulate the tracking of GPS C/A and P-code.

  6. Basic transformations - Conversions of time and coordinate systems.

  7. Observation data collection and conversion - Translating receiver specific data formats to RINEX.

  8. File comparison and validation - Differing observations files against a truth source.

  9. Data editing - Simple editing like systematic removal of observations by satellite, type or time and more advanced editing like cycle slip detection and correction.

10.Autonomous and relative positioning - Navigation and surveying applications.

The GPSTk applications are dependent on the GPSTk libraries. However, the GPSTk applications may also contain external dependencies. Some applications may not build or run successfully on all platforms.

Description: GPSTk Python Bindings:

The GPSTk python extension package provides access to the GPSTk C++ library from within python. It is built using SWIG and CMake, and installed with a standard setup.py script using the python distutils module.

For more details, see $GPSTK/python/bindings/swig/install_package/README.txt

Installation:

See the INSTALL.txt for details.

The most recent version of the GPSTk source code can be found here:

The tools used for the build and install frameworks are cross-platform. These include CMake, SWIG, and python (distutils).

Automated build and install is supported on POSIX platforms with the supplied Bash script called build.sh. For help on script usage, run the script with the help flag:

$ build.sh -h

For other platforms, such as Windows, please refer to comments and commands in the same script, which document how we are using CMake, SWIG, and distutils for various steps in the build and install process.

To build and install the C++ library and applications on POSIX platforms:

  • automated: run build.sh.
  • manual: see the contents of build.sh for command examples on how you might run cmake and make to build and install the library.

To build and install the python bindings, you have two options:

  • automated: python bindings automatically build with the build.sh. Use -P for install.
  • manual build: see build.sh for examples on calling cmake and swig
  • manual install:

Testing:

See the TESTING.txt for details.

Help & Docs:

See the DOCUMENTATION.txt for details.

Additional documentation and resources can be found at http://www.gpstk.org/, including:

  • Source code and compiled binaries
  • Coding examples
  • Doxygen documentation
  • System requirements and build instructions
  • A users guide
  • Publications
  • Email lists
  • Support question/answer
  • Development process (including feature suggestions, bug tracking, schedule, testing, and developer documentation)
  • Source code repository information
  • GPSTk IRC channel
  • Success stories

Credits & Lineage:

GPSTk is the by-product of GPS research conducted at ARL:UT since before the first satellite launched in 1978; it is the combined effort of many software engineers and scientists. In 2003 the research staff at ARL:UT decided to open source much of their basic GPS processing software as the GPSTk.

The development history is documented by a series of related publications:

http://www.gpstk.org/bin/view/Documentation/GPSTkPublications

See the AUTHORS.txt file for additional detail.

License

The source code provided by the GPSTk is distributed under the GNU LGPL, Version 3.

  • This license gives all users the right to use and redistribute the code.
  • Users of the GPSTk are not required to open their source, according to the LGPL.
  • This makes the GPSTk a practical choice for commercial projects.
  • Full text copies of the GPL (COPYING.txt) and the LGPL (COPYING.LESSER.txt) are included with the GPSTk distribution package.

For more information about the GPL or LGP, please refer to the following:

gpstk's People

Contributors

burundiocibu avatar ckuethe avatar donalbane avatar gloppyuser avatar jmk0 avatar martin-vermeer avatar masamitsutech avatar nathanielhill avatar rwpenney avatar ut-dave avatar ut-malik avatar vestuto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gpstk's Issues

Website down

any idea on why the website and API documentation sites are down?
is there any ETA for it to be back?
also is there any alternatives to find the API documentation ?

exception thrown on file open

FFStream::init calls close. If a file is not open, this close call fails. In a default configuration this is not a problem. However, if you set the stream to throw exceptions on fail, then you get an exception when opening a file.

The solutions is to change the code to:

if(is_open())
   close();

...pull request to come.

A typo in "Vector::toStdVector"

Local variable std::vector<T> v confused with the class member T* v. Instead of:

std::vector<T> v;
for(size_t i = 0; i < s; i++)
   v.push_back(v[i] );

must be:

std::vector<T> v;
for(size_t i = 0; i < s; i++)
   v.push_back(this->v[i] );

SWIG python bindings fail to build on OSX with case insensitive file system

I hit a problem building the python SWIG bindings on a OS X system. The issue is that GPSTk/swig/src/Exception.i interferes with the file exception.i distributed with SWIG. Normally, on a sane unix-like system, this would never happen because the file system is case sensitive. However, this is not the default for OS X.

I "fixed" the problem by renaming Exception.i to GPSTk_exception.i and adjusting the appropriate %include line in gpstk.i.

I am not sure if you want to consider this a problem with OS X or if it is worth making the change to the GPSTk source. Just thought I would pass this along.

Cors Broadcast Ephemeris fails to load

Running
RinNav --nav brdc1030.16n --navpath .
using NOAA's broadcast ephemeris file located at ftp://geodesy.noaa.gov/cors/rinex/2016/103 fails.
It fails on most brdc files, and it's caused by a test located at
GNSSEph/OrbitEphStore.cpp:231
I don't know who's code is right, Cors' brdc generating code or your error checking code, but I'm surprised they don't agree on what's valid.

Assert failing in debug build for MSVC 2017 14.1

There's an issue with FFTextStream.cpp looking at memory before it's char buffer, which is throwing an exception on debug builds in windows. Looks like it probably wouldn't be much of an issue on a "dumber" build or system that's not checking these types of things.

Simple fix though. line 157:

while (*line.rbegin() == '\r')

needs to change to:
while (line[0]!='\0' && *line.rbegin() == '\r')

This will cause the while to exit before it can check the rbegin() function, and it wont access memory wrongly.

Edit: I made this change and it solved the issue for me locally

No return in non void function

In function:
bool RationalizeRinexNav::writeOutputFile
in file
core/lib/GNSSEph/RationalizeRinexNav.cpp
there is no return at the end (around line 131 of the file).
The function compiles OK but quality check on openSUSE build system catches this:
...
[ 114s] I: Program returns random data in a function
[ 114s] E: gpstk no-return-in-nonvoid-function /home/abuild/rpmbuild/BUILD/GPSTk-2.10.6/core/lib/GNSSEph/RationalizeRinexNav.cpp:132
...
as it may return random data, making the program unstable. This error is treated so serious, that built binaries are discarded.
Earlier this function returns false if something happened. Should it return true if it reaches the end?

Wrong usage of mkdir in Mingw/Msys2 Build

When building the extensions on Mingw/Msys2 platform I got following error:

In file included from H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileFilte                                                                                                                                                             rFrame.hpp:48:0,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/CheckFrame                                                                                                                                                             .hpp:43,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/rnwcheck.c                                                                                                                                                             pp:37:
H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileUtils.hpp: In function 'int                                                                                                                                                              gpstk::FileUtils::makeDir(const string&, unsigned int)':
H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileUtils.hpp:113:41: error: to                                                                                                                                                             o many arguments to function 'int mkdir(const char*)'
             mkdir(thispath.c_str(), mode);
                                         ^
In file included from H:/msys64/mingw64/x86_64-w64-mingw32/include/sys/stat.h:14                                                                                                                                                             :0,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileUtils                                                                                                                                                             .hpp:48,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileFilte                                                                                                                                                             rFrame.hpp:48,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/CheckFrame                                                                                                                                                             .hpp:43,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/rnwcheck.c                                                                                                                                                             pp:37:
H:/msys64/mingw64/x86_64-w64-mingw32/include/io.h:280:15: note: declared here
   int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
               ^~~~~
In file included from H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileFilte                                                                                                                                                             rFrame.hpp:48:0,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/CheckFrame                                                                                                                                                             .hpp:43,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/rnwcheck.c                                                                                                                                                             pp:37:
H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileUtils.hpp:116:34: error: to                                                                                                                                                             o many arguments to function 'int mkdir(const char*)'
          mkdir(path.c_str(), mode);
                                  ^
In file included from H:/msys64/mingw64/x86_64-w64-mingw32/include/sys/stat.h:14                                                                                                                                                             :0,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileUtils                                                                                                                                                             .hpp:48,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/FileDirProc/FileFilte                                                                                                                                                             rFrame.hpp:48,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/CheckFrame                                                                                                                                                             .hpp:43,
                 from H:/msys64/home/xaedes/GPSTk/ext/apps/checktools/rnwcheck.c                                                                                                                                                             pp:37:
H:/msys64/mingw64/x86_64-w64-mingw32/include/io.h:280:15: note: declared here
   int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
               ^~~~~

The mkdir function provided by (admittedly my) mingw platform lacks the mode parameter. This part in the FileUtils.hpp file is conditionally compiled. When compiling in Visual Studio (defined(_MSC_VER)==true) another function_mkdir without the mode parameter is called. In Mingw the function is called mkdir.

Can't merge 2 rinex files with mergeRinObs

I compile mergeRinObs from latest source codes using MVS 2015

commit 133e24f
Author: Bryan Parsons [email protected]
Date: Fri Jan 15 10:52:32 2016 -0600

GPSTk v2.8 Released

I try to merge 2 rinex files (see attached archive) with below command line

mergeRinObs.exe -o out.obs carq049a.16o carq049b.16o

Get error:
text 0:Failed to process time string
text 1:Can't generate a CommonTime for this FileSpec
location 0:C:______aboriskin\GPSTk\core\lib\TimeHandling\TimeTag.cpp:gpstk::TimeTag::getInfo:173
location 1:C:______aboriskin\GPSTk\core\lib\TimeHandling\TimeString.cpp:gpstk::mixedScanTime:802
location 2:C:______aboriskin\GPSTk\core\lib\FileDirProc\FileSpec.cpp:gpstk::FileSpec::extractCommonTime:284

and no file have been created.
MergeRinObsError.zip

Logstream kludge not working in Mingw/Msys2 Build

I get following compilation error while compiling under Mingw/Msys2:

[ 97%] Linking CXX executable PRSolve.exe
../../../libgpstk.a(CommandLine.cpp.obj):CommandLine.cpp:(.data+0x0): multiple definition of `Log<ConfigureLOGstm>::reportingLevel'
CMakeFiles/PRSolve.dir/objects.a(PRSolve.cpp.obj):PRSolve.cpp:(.data+0x0): first defined here
../../../libgpstk.a(CommandLine.cpp.obj):CommandLine.cpp:(.bss+0x0): multiple definition of `Log<ConfigureLOGstr>::dumpTimeTags'
CMakeFiles/PRSolve.dir/objects.a(PRSolve.cpp.obj):PRSolve.cpp:(.bss+0x0): first defined here
../../../libgpstk.a(CommandLine.cpp.obj):CommandLine.cpp:(.bss+0x1): multiple definition of `Log<ConfigureLOGstr>::dumpLevels'
CMakeFiles/PRSolve.dir/objects.a(PRSolve.cpp.obj):PRSolve.cpp:(.bss+0x1): first defined here
../../../libgpstk.a(PRSolution.cpp.obj):PRSolution.cpp:(.data+0x0): multiple definition of `Log<ConfigureLOGstre::reportingLevel'
CMakeFiles/PRSolve.dir/objects.a(PRSolve.cpp.obj):PRSolve.cpp:(.data+0x0): first defined here
../../../libgpstk.a(PRSolution.cpp.obj):PRSolution.cpp:(.bss+0x0): multiple definition of `Log<ConfigureLOGstrea:dumpTimeTags'
CMakeFiles/PRSolve.dir/objects.a(PRSolve.cpp.obj):PRSolve.cpp:(.bss+0x0): first defined here
../../../libgpstk.a(PRSolution.cpp.obj):PRSolution.cpp:(.bss+0x1): multiple definition of `Log<ConfigureLOGstrea:dumpLevels'
CMakeFiles/PRSolve.dir/objects.a(PRSolve.cpp.obj):PRSolve.cpp:(.bss+0x1): first defined here
collect2.exe: error: ld returned 1 exit status

The logstream.hpp kludge is applied because I compile in windows. But under Mingw this is not necessary and actually causes above compilation error.

Undefined Reference in Mingw/Msys2 Build

I get linker errors to undefined functions from regex library when compiling on Mingw/MSys2.

../../../libgpstk.a(UnixTime.cpp.obj):UnixTime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x5d): undefined reference to `regcomp'
../../../libgpstk.a(UnixTime.cpp.obj):UnixTime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x8f): undefined reference to `regerror'
../../../libgpstk.a(UnixTime.cpp.obj):UnixTime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x9e): undefined reference to `regfree'
../../../libgpstk.a(UnixTime.cpp.obj):UnixTime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x2a7): undefined reference to `regexec'
../../../libgpstk.a(UnixTime.cpp.obj):UnixTime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x435): undefined reference to `regfree'
../../../libgpstk.a(ANSITime.cpp.obj):ANSITime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x5d): undefined reference to `regcomp'
../../../libgpstk.a(ANSITime.cpp.obj):ANSITime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x8f): undefined reference to `regerror'
../../../libgpstk.a(ANSITime.cpp.obj):ANSITime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x9e): undefined reference to `regfree'
../../../libgpstk.a(ANSITime.cpp.obj):ANSITime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x2a7): undefined reference to `regexec'
../../../libgpstk.a(ANSITime.cpp.obj):ANSITime.cpp:(.text$_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_[_ZN5gpstk11StringUtils14formattedPrintIxEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS7_S9_S9_T_]+0x436): undefined reference to `regfree'

Rinex 3 obs file reading error

I am using GPSTk python bindings for my work, I get the following error while reading RINEX 3 Hourly observation data files
-------------
InvalidRequest: text 0:G03 index 11 is not available.
location 0:/home//GPSTk-2.10/core/lib/FileHandling/RINEX3/Rinex3ObsData.cpp:234
--------
------

I can see that the obs data field in RINEX3 obs file is empty for SV#G03, the software crashes when I run it during obs file reading stage.
Is there any updated Rinex3ObsData.cpp which can handle the missing data gaps.
Has any one faced a similar problem, and have a solution.
Any suggestions to handle this, please share them, would be very helpful.

Cheers!

Missing SatelliteSystem::Mixed enum value in systemChar(), systemString(), systemString3() functions

Our test case:

  • Read a Mixed satellite system Rinex V2.11 file, rewrite it, then open the new file. An exception occurs at the last step.

Issue

  • If our file has a header with M (Mixed) value for satellite System , it will be read but when printing the header, in systemChar(), systemString(), systemString3() functions we are missing the M (Mixed) case which will lead to "? (Unknown)". When opening the new file, an exception will be raised saying that Unknown is not supported.

Proposed correction

  • Add a case for SatelliteSystem::Mixed in systemChar(), systemString(), systemString3() functions in file RinexSatID.cpp.

Missing data types for Python

Hi everyone,
I am trying to use the Python bindings of the GPS Toolkit, in particular the PRSolution class. I followed the swig/examples/example4.py in order to read my RINEX files and to compute the position solutions, and everything was fine.
Now, I would like to use the PRSolution.PreparePRSolution method so as to obtain the corrected pseudoranges without computing the position solution. However, I can not call this method because the argument types do not match.

In particular, the call is

raimSolver.PreparePRSolution(time, satVector, syss, rangeVector, ephStore, SVP)

and the error that raises is

TypeError: in method 'PRSolution_PreparePRSolution', argument 4 of type 'std::vector< gpstk::SatID::SatelliteSystem,std::allocator< gpstk::SatID::SatelliteSystem > > &' 

I know from the PYTHON.md file that the enumerations have been removed in the Python bindings, so I do not know how I could define the syss variable. After several trials, I tried

syss = [gpstk.SatID.systemGPS, gpstk.SatID.systemGlonass]

without success.

Then, I tried to use the PRSolution2 class; it has a similar method called PrepareAutonomousSolution that does not need the previous argument. I made the call

gpstk.PRSolution2_PrepareAutonomousSolution(time, satVector, rangeVector, ephStore, SVP)

and unfortunately another error raised

TypeError: Wrong number or type of arguments for overloaded function 'PRSolution2_PrepareAutonomousSolution'.
  Possible C/C++ prototypes are:
    gpstk::PRSolution2::PrepareAutonomousSolution(gpstk::CommonTime const &,std::vector< gpstk::SatID,std::allocator< gpstk::SatID > > &,std::vector< double,std::allocator< double > > const &,gpstk::XvtStore< gpstk::SatID > const &,Matrix< double > &,std::ostream *)
    gpstk::PRSolution2::PrepareAutonomousSolution(gpstk::CommonTime const &,std::vector< gpstk::SatID,std::allocator< gpstk::SatID > > &,std::vector< double,std::allocator< double > > const &,gpstk::XvtStore< gpstk::SatID > const &,Matrix< double > &)

I definitely think that the problem concerns the variable SVP, since the other ones have been previously used for the computation of the position solution.
Always from the PYTHON.md file, I know that the Matrix class is not wrapped so I do not know how to pass this argument. I tried with a list, a numpy array and even with the gpstk.seqToVector without success.
Furthermore, I do not know how the GPS Toolkit could return the filled SVP matrix since it is passed as argument. I saw that functions modifying parameters passed by reference are opportunely modified but this method still requires the matrix as an argument.

Looking at the source code of PRSolution, I came across the RAIMComputeSimple method, that is used in order to avoid using "data types not exposed in swig". Therefore, I wonder if there actually exist a way to make things work.

What am I doing wrong? Is there a way to call those functions in Python?
These are the only pieces of code where I found something that corrects the measured pseudoranges. If there are other way to do this, please let me know.

Thank you for your time, and for this great library.

Doesn't compile in ubuntu

The library doesn't compile under Ubuntu 20.04.

I've tried compiling the v8.0.0 tag, but the process crashes due to a target that cannot be compiled. I was able to trace it back to the PythonSetup.cmake with this line:

set(PYTHON_LIBRARIES "${_python_libdir}/lib${_python_libname}.so")

In summary the _ptthon_libdir and _python_libname are both empty due to the failing regex matching in the line above:

string(REGEX MATCH "-L([^ ]*) -l([^ ]*) " _python_libdir ${PYTHON_LDFLAGS})

The PYTHON_LDFLAGS variable is

# python3-config --ldflags
-L/usr/lib/python3.8/config-3.8-x86_64-linux-gnu -L/usr/lib  -lcrypt -lpthread -ldl  -lutil -lm -lm

I honestly have no idea, what you're trying to do here. The regex above would match /usr/lib and crypt (if it worked), but I doubt that is what you wanted.

Unable to build (functional) Python3 bindings

Per Bryan Parsons suggestion for taking a quick and dirty shot with generating Python3 bindings, I created a CustomPythonSetup.cmake file pointing to my local anaconda 3.6 installation, then built (on OS X 10.12.4) with the command:

et-imac-retina:gpstk-2.9 sjbespa$ sudo ./build.sh -b/Users/sjbespa/work/gpstk/gpstk-2.9-build3 -j8 -eu -P/Users/sjbespa/anaconda/bin/python 

The resulting bindings don't seem to export any symbols, although the module is about the right size (vis-a-vis the python2 bindings):
Last login: Wed Apr 12 09:25:28 on ttys004

et-imac-retina:~ sjbespa$ python
Python 3.6.0 |Anaconda 4.3.1 (x86_64)| (default, Dec 23 2016, 13:19:00) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import gpstk
>>> dir(gpstk)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
>>> gpstk.__path__
['/Users/sjbespa/.local/lib/python3.6/site-packages/gpstk']

Any ideas on how to attack the problem would be greatly appreciated... I see elsewhere on the GPSTK website that the current bindings were conceived "with an eye towards python 2." It would help to understand what that comment means.

UTCTime constructors are broken

The UTCTime class is supposed to allow construction from a tuple of year/month/day/hour/minute/second, but the implementation does not appear to actually use those values at all. For example, the following initialization (taken from UTCTime::test()):

gpstk::UTCTime utc(short(2002),short(1),short(1),short(0),short(0),0.0);
std::cout << "UTC "<< utc << std::endl;

produces:
UTC 0000000 00000000 0.000000000000000 UNK

Looking at the implementation of these constructors (in https://github.com/SGL-UT/GPSTk/blob/master/ext/lib/Geodyn/UTCTime.hpp), there appear to be CivilTime and YDSTime objects created, but these don't appear to have any influence on the internal state of the construted UTCTime instance.

Am I not using these constructors correctly, or do they not work as intended?

Precision of orbit prediction with SatOrbitPropagator

Hello everyone!

Could you help me please. I use the GPStk for the prediction of satellite orbit. I use class SatOrbitPropagator. I have exact ephemeris for the Radarsat-1 satellite. I try to propagate ephemeris and i have big difference with exact coordinates. I see that coordinate mistakes increase very fast. For example:
on 8 minutes i have difference 900 meters by X coordinate
on 16 minutes i have difference 2100 meters by X coordinate
...
on 112 minute i have difference 22200 meters by X coordinate.

I use standard integrator RKF78. I try to use different variation of orbit models(atmosphere, gravity, Solar radiation pressure, etc), but i have a same resulats(difference with using different models constitute some meters).

What precision of SatOrbitPropagator? Can i use SatOrbitPropagator for 112 minutes?

Immediate CMake 3.13 errors on build.sh

It looks like deprecated syntax is being used in GPSTk CMake. Also CMake 3.12 is unable to build.

./build.sh -ue

from master, commit 997d97 of Sep 27 2018 results in

============================================================
cmake -DBUILD_PYTHON=ON -DPYTHON_EXECUTABLE=~/miniconda3/bin/python -DPYTHON_INSTALL_PREFIX=~/.local -DCMAKE_INSTALL_PREFIX=~/.local/gpstk -DBUILD_EXT=ON ~/code_other/GPSTk
CMake Error at swig/PythonSetup.cmake:45 (string):
  string sub-command REGEX, mode MATCH needs at least 5 arguments total to
  command.
Call Stack (most recent call first):
  swig/CMakeLists.txt:8 (include)


CMake Error at swig/PythonSetup.cmake:46 (string):
  string sub-command STRIP requires two arguments.
Call Stack (most recent call first):
  swig/CMakeLists.txt:8 (include)


CMake Error at swig/PythonSetup.cmake:47 (string):
  string sub-command SUBSTRING requires four arguments.
Call Stack (most recent call first):
  swig/CMakeLists.txt:8 (include)


CMake Deprecation Warning at ~/.local/share/cmake-3.13/Modules/UseSWIG.cmake:517 (message):
  SWIG_ADD_MODULE is deprecated.  Use SWIG_ADD_LIBRARY instead.
Call Stack (most recent call first):
  swig/CMakeLists.txt:65 (swig_add_module)


CMake Warning (dev) at ~/.local/share/cmake-3.13/Modules/UseSWIG.cmake:557 (message):
  Policy CMP0078 is not set.  Run "cmake --help-policy CMP0078" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.
Call Stack (most recent call first):
  ~/.local/share/cmake-3.13/Modules/UseSWIG.cmake:518 (swig_add_library)
  swig/CMakeLists.txt:65 (swig_add_module)
This warning is for project developers.  Use -Wno-dev to suppress it.


Error 1 :-(

C1P is not stored in system G?

./example3 ../madr1480.08o
text 0:C1P is not stored in system G.
location 
:/home/xxx/source/gnss/GPSTk/core/lib/FileHandling/RINEX3/Rinex3ObsHeader.cpp:2476

http://www.gpstk.org/ can not access?

A lot of usefull doc published on GPSTk's official website, but this site can not access, why? and how to access the links described at README.md?

A typo in "NeillTropModel::setAllParameters"

instead of this:

      NeillLat = rxPos.getGeodeticLatitude();
      validHeight = true;
      NeillLat = rxPos.getHeight();
      validLat = true;

should be this:

      NeillLat = rxPos.getGeodeticLatitude();
      validLat = true;
      NeillHeight = rxPos.getHeight();
      validHeight = true;

Valid RINEX nav files are rejected

Hi,

I am observing GPSTk fail reading (I think) valid RINEX nav files. For example, consider the broadcast nav message for DOY=302 2012:

ftp://cddis.gsfc.nasa.gov/gnss/data/daily/2012/302/12n/brdc3020.12n.Z

My conclusion that the file is valid is based on teqc:

$ teqc +version
executable:  teqc
version:     teqc  2013Mar15
build:       Linux 2.4.21-27.ELsmp|Opteron|gcc|Linux x86_64|=+
$ teqc +v brdc3020.12n
! Notice ! GPS week in RINEX GPS NAV = 688; (default) GPS week = 1898
teqc: 'brdc3020.12n' readable as RINEX V.2.00 format```

Note that teqc (in its documentation states that) checks TOC, TOE, and TOW epochs for consistency.

However, any GPSTk code that relies on OrbitEphStore fails, for example:

$ /home/butala/src/GPSTk/build-remote2-v2.8/ext/apps/Rinextools/RinNav brdc3020.12n
# RinNav, part of the GPS Toolkit, Ver 2.2 10/31/13, Run 2016/05/27 17:47:09
addEphemeris caught excp text 0:Unexpected matching beginValid time but not Toe, for GPS 9, beginValid= 2012/10/28 02:00:00 GPS, Toe(map)= 2012/10/28 02:00:00 GPS, Toe(candidate)= 2012/10/28 04:00:00 GPS
location 0:/home/butala/src/GPSTk/core/lib/GNSSEph/OrbitEphStore.cpp:231
location 1:/home/butala/src/GPSTk/core/lib/GNSSEph/OrbitEphStore.cpp:288
Exception: text 0:Unexpected matching beginValid time but not Toe, for GPS 9, beginValid= 2012/10/28 02:00:00 GPS, Toe(map)= 2012/10/28 02:00:00 GPS, Toe(candidate)= 2012/10/28 04:00:00 GPS
location 0:/home/butala/src/GPSTk/core/lib/GNSSEph/OrbitEphStore.cpp:231
location 1:/home/butala/src/GPSTk/core/lib/GNSSEph/OrbitEphStore.cpp:288
location 2:/home/butala/src/GPSTk/core/lib/GNSSEph/Rinex3EphemerisStore.cpp:174
location 3:/home/butala/src/GPSTk/core/lib/GNSSEph/Rinex3EphemerisStore.cpp:181
location 4:/home/butala/src/GPSTk/ext/apps/Rinextools/RinNav.cpp:814

I was wondering if you could please help. Is the problem with the RINEX nav file or with GPSTk?

Fail to read renix file 'onsa2240.05o'

./example3 ../onsa2240.05o 
Name your PRN of interest (by number: 1 through 32): 3
Reading ../onsa2240.05o.
text 0:Non-text data in file.
text 1:In record 0
text 2:In file ../onsa2240.05o
text 3:Near file line 17
location 0:/home/xxx/source/gnss/GPSTk/core/lib/FileHandling/FFTextStream.cpp:163
location 1:/home/xxx/source/gnss/GPSTk/core/lib/FileHandling/FFStream.cpp:225
location 2:/home/xxx/source/gnss/GPSTk/core/lib/FileHandling/FFStream.hpp:214
location 3:/home/xxx/source/gnss/GPSTk/core/lib/FileHandling/FFStream.hpp:214

BYTE_ORDER not defined in Mingw/Msys2 Build

In file included from H:/msys64/home/xaedes/GPSTk/core/lib/GNSSEph/EngNav.hpp:50:0,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/GNSSEph/EngAlmanac.hpp:46,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/GNSSCore/IonoModel.hpp:46,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/GNSSCore/IonoModelStore.hpp:48,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/ClockModel/ObsRngDev.hpp:51,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/ClockModel/ORDEpoch.hpp:48,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/ClockModel/ObsClockModel.hpp:56,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/ClockModel/LinearClockModel.hpp:50,
                 from H:/msys64/home/xaedes/GPSTk/core/lib/ClockModel/LinearClockModel.cpp:46:
H:/msys64/home/xaedes/GPSTk/core/lib/Utilities/BinUtils.hpp:66:2: error: #error "Platform doesn't support BYTE_ORDER?"
 #error "Platform doesn't support BYTE_ORDER?"
  ^~~~~

The issue is caused because the system types headers defining BYTE_ORDER are included depending on the platform this is build and mingw is not included.

there is some error

kghostview:command not found ....could not execute:kghostview.....
ghostview:command not found ...could not execute:ghostview.....
gv:command not found......
evince:command not found.....
gsview32:command not found ....

wavelength of LC

in GPSTK code,the wavelength of LC is 0.1069533781421467m(in fact,it is the narrow-lane wavelength),but in a lot of paper ,the wavelength is 6mm. can you show me the linear combination you used?

merge SBAS files

Hello,
Is there a way to merge .18B (SBAS Broadcast) files? I am using MergeRinObs and MergeRinNav, and they work great! Thank you for making this software freely available.

Or you can simply remove the headers and merge them as normal text files? Is that a correct way to merge the files?

Kind regards

Cannot handle GAGP

Rinex 3.04 has added GAGP in TIME SYSTEM CORR record of Navigation Message File.
So if a Nav file contains a line like GAGP 1.1059455574e-09-5.329070518e-15 0 2111 TIME SYSTEM CORR , the program will crash.
example file:
brdm1730.20p.zip

Error running ./build.sh on Ubuntu 18.04

Command: ./build.sh -tue -j1

Transcript: https://gist.github.com/JJTriesHisBest/a4c5100d86017e126d2958140cd6edfa

It seems to be a type conversion error. Running with -j1 I see an interesting failure

GPSTk/core/tests/FileHandling/FFBinaryStream_T.cpp:270:4: error: no matching function for call to ‘gpstk::TestUtil::assert(FFBinaryStreamBE&, std::__cxx11::basic_string<char>, int)’
    testFramework.assert(testStrmIn, "Couldn't open " + outfn + " for input", __LINE__);
    ^~~~~~~~~~~~~
In file included from /home/jj/GPSTk/core/tests/FileHandling/FFBinaryStream_T.cpp:40:0:
/home/jj/GPSTk/core/lib/TestFramework/TestUtil.hpp:545:9: note: candidate: void gpstk::TestUtil::assert(bool, const string&, int)
    void TestUtil ::
         ^~~~~~~~
/home/jj/GPSTk/core/lib/TestFramework/TestUtil.hpp:545:9: note:   no known conversion for argument 1 from ‘FFBinaryStreamBE’ to ‘bool’

Problems for load gpstk python, anyone help me please.

I try to run this code

import sys
print(sys.version)
from gpstk import *

but obtain this output

2.7.12 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:42:40) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-1-2fd3bb2e053c> in <module>()
      1 import sys
      2 print(sys.version)
----> 3 from gpstk import *

/home/zenbook/anaconda3/envs/py27/lib/python2.7/site-packages/gpstk/__init__.py in <module>()
      5 # Populate gpstk namespace
      6 #----------
----> 7 from gpstk import *

/home/zenbook/anaconda3/envs/py27/lib/python2.7/site-packages/gpstk/gpstk.py in <module>()
  24759     return _gpstk.SatelliteYawAngle(P, V, Sun, blkIIRF)
  24760 
> 24761 def now(timeSystem=TimeSystem('UTC')):
  24762     """
  24763     Returns the current time (defined by what SystemTime() returns)

/home/zenbook/anaconda3/envs/py27/lib/python2.7/site-packages/gpstk/gpstk.py in __init__(self, *args)
   9125         this = _gpstk.new_TimeSystem(*args)
   9126         try:
-> 9127             self.this.append(this)
   9128         except Exception:
   9129             self.this = this

/home/zenbook/anaconda3/envs/py27/lib/python2.7/site-packages/gpstk/gpstk.py in <lambda>(self, name)
   9036     __setattr__ = lambda self, name, value: _swig_setattr(self, TimeSystem, name, value)
   9037     __swig_getmethods__ = {}
-> 9038     __getattr__ = lambda self, name: _swig_getattr(self, TimeSystem, name)
   9039     __repr__ = _swig_repr
   9040     Unknown = _gpstk.TimeSystem_Unknown

/home/zenbook/anaconda3/envs/py27/lib/python2.7/site-packages/gpstk/gpstk.py in _swig_getattr(self, class_type, name)
     72 
     73 def _swig_getattr(self, class_type, name):
---> 74     return _swig_getattr_nondynamic(self, class_type, name, 0)
     75 
     76 

/home/zenbook/anaconda3/envs/py27/lib/python2.7/site-packages/gpstk/gpstk.py in _swig_getattr_nondynamic(self, class_type, name, static)
     67         return method(self)
     68     if (not static):
---> 69         return object.__getattr__(self, name)
     70     else:
     71         raise AttributeError(name)

AttributeError: type object 'object' has no attribute '__getattr__'

Anyone have some idea about this problem??

Additional details

  • i have a python2.7 conda enviroment in $HOME/anaconda3/envs/py27/lib/python2.7/
  • detail the last lines on bashrc
$ ▶ tail -5 ~/.bashrc | head -5
# added by Anaconda3 4.2.0 installer
export PATH="/home/zenbook/anaconda3/bin:$PATH"
export LD_LIBRARY_PATH=$HOME/anaconda3/envs/py27/lib:/usr/lib:$HOME/.local/gpstk/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$HOME/anaconda3/envs/py27/lib/python2.7/site-packages:$HOME/.local/gpstk/lib:$PYTHONPATH
export PATH=$HOME/.local/gpstk/bin:$PATH

Bad BINEX CRC for BINEX Record 0x7f

CRC verification is failing for for BINEX Record 0x7f.

Please use attached example BINEX file to reproduce.

example.bnx.tar.gz

Exception:

Exception: text 0:Bad BINEX CRC
location 0:/.../GPSTk/core/lib/FileHandling/Binex/BinexData.cpp:1375
location 1:/.../GPSTk/core/lib/FileHandling/Binex/BinexData.cpp:1439

text 0:Bad BINEX CRC
location 0:/.../GPSTk/core/lib/FileHandling/Binex/BinexData.cpp:1375
location 1:/.../GPSTk/core/lib/FileHandling/Binex/BinexData.cpp:1439

BINEX Record dump:

RecordID:    127
SyncByte:    226
MessageLen:  925
MessageData: 
5 1 61 65451 1 109 96 35 24 83 72 127 65477 12 70 38 65487 65473 65 37 3 126 65485 123 0 3 31 12 122 65520 65505 65472 107 126 16 65412 65529 22 0 65435 9 21 114 65457 30 65 101 65481 27 80 89 65410 68 65492 34 3 5 65 46 65425 1 65410 0 65517 1 65455 65463 17 107 65531 65424 65472 120 65523 14 106 65532 65535 65473 79 65503 3 107 65534 65520 65474 19 33 26 80 89 65411 68 65503 47 71 61 126 65500 65493 1 65409 65534 65438 127 65421 65515 17 106 65534 65449 1 65424 122 14 105 65535 65514 64 65474 65414 3 106 65532 65468 63 65516 15 18 48 65 86 69 65477 60 112 65514 64 80 118 17 18 65534 65524 64 90 96 3 18 65534 47 64 65451 72 21 48 65 111 65413 76 65449 65526 113 65471 30 65505 17 71 65521 57 65469 65526 93 3 71 65531 65532 65471 65511 65449 36 83 72 88 65414 124 65443 65411 65451 65408 10 43 3 78 65514 65504 1 27 22 12 74 65516 35 65408 65463 65501 16 90 65526 65429 65472 119 57 21 72 65523 120 1 90 65436 20 48 65 118 65413 22 65461 65513 65511 65416 67 65480 17 82 65523 28 65416 112 65509 3 82 65531 65496 65417 19 65432 10 80 89 118 69 71 65462 80 124 72 65436 65496 1 113 0 65448 65476 21 88 17 73 65534 65451 71 65464 67 14 88 65533 65477 4 65465 65505 3 73 65535 65450 68 70 65524 16 48 65 121 65476 65457 65510 11 72 65535 65494 11 17 102 65519 65522 64 74 10 3 102 65532 65517 64 111 65473 12 83 76 111 65413 22 67 65466 60 65471 106 65449 3 117 20 65500 65535 65436 111 8 119 16 104 0 42 41 16 123 8 83 62 65532 65532 21 109 10 65482 64 65517 65466 11 83 72 114 65477 49 41 65441 65507 65476 18 17 3 116 5 65502 0 65511 65449 12 110 65520 65531 65473 64 65427 16 120 65529 57 65410 65431 120 21 105 65531 9 4 72 126 13 33 65473 58 101 4 65504 71 123 65478 2 64 85 11 97 21 92 3 65502 65514 11 33 65473 2 123 65413 44 65503 65500 32 65468 77 65478 11 111 21 65432 65465 111 65457 8 80 89 111 69 105 6 65506 65506 65 122 65424 1 101 65534 10 65471 87 92 17 54 65532 97 65475 117 106 14 83 65535 7 66 98 65456 3 54 65532 107 65535 65448 106 6 17 65473 50 91 5 93 65433 65516 83 0 99 65510 31 48 65 72 65477 65519 36 105 65454 65533 65421 18 17 17 17 65461 65462 102 65479 3 17 65535 73 65469 65456 65488 123 34 65 107 65416 65534 126 65479 65510 65413 21 65511 7 109 65457 36 70 65468 2 12 33 65473 62 65413 4 65416 65441 65527 65505 62 65474 65445 11 124 17 65526 65409 64 114 25 83 72 123 65413 65435 65438 52 26 65409 65528 32 3 114 65525 65494 66 58 77 12 118 65520 65465 66 65449 65477 16 65408 65528 65529 4 54 71 21 113 65524 117 65 44 65452 23 33 65473 14 125 68 65519 90 65531 124 64 65441 74 11 102 25 44 0 65463 67 33 83 72 103 65478 106 65501 65427 92 65531 71 65522 3 83 65527 65509 65469 104 65428 12 101 65519 65504 59 44 65489 16 110 65529 31 65469 65526 65530 21 81 65531 58 65468 65445 33 5 36 69 90 9 124 22 118 65483 9 65533 65464 9 88 14 20 65417 65522 59 7 48 65 94 69 65475 65424 30 65467 64 65458 65446 17 29 65527 118 63 48 65523 3 29 65533 17 1 69 84 7 33 65473 22 101 65413 65410 53 65447 65445 65412 119 124 11 104 35 117 1 21 102 5 17 65473 6 74 69 65467 65480 65459 65530 64 65519 25 65416 34 65 118 65480 65465 65511 91 57 65477 29 65493 7 121 65460 127 65422 65430 34 31 83 67 106 65414 58 32 65506 65474 65470 65535 65458 8 103 15 124 61 58 65484 12 105 3 99 124 65450 125 16 112 8 92 65468 65452 65437 21 99 1 65443 62 12 70 22 33 65473 54 65411 65412 65432 65456 65442 65528 65413 66 85 11 124 17 89 0 65431 65451 30 20 65 106 65477 65493 5 65454 65501 65473 79 65436 33 36 65 98 5 65497 65428 65441 22 3 63 65519 9 104 36 62 65474 76 94 21 33 65483 18 95 5 92 65533 116 65481 60 65523 48 1 104 65516 65449 65467 65458 65478 27 20 65 65414 5 19 14 92 65417 1 102 36 36 20 65 99 65413 65535 108 65449 65502 65471 106 15 6 22 65 85 9 7 65468 65510 65485 8 65532 74 28 36 65 65408 69 87 65533 14 43 65 65529 65512 9 122 17 2 65471 67 22 37 20 65 126 69 121 65410 70 65422 127 40 120

License is LGPL, but current cmake config creates a static library on Windows

Statically linking violates the LGPL in the case the library is linked with proprietary code and the source of the proprietary code is not delivered:

http://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking

For this reason, it probably makes sense to change the default cmake config to generate a shared library on windows. Since this is already the case for non-windows platforms, I would guess the issue is maybe that symbols aren't exported by default with Visual Studio and it was not desired to decorate the classes. In this case, cmake has a solution:

https://cmake.org/cmake/help/v3.4/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html

Another alternative is to make an exception in the license (although I'm unsure if gpstk is using other LGPL code that would prevent this).

Examples for RTK positioning?

Do you have any examples of using GPSTk for RTK positioning? I remember I saw something some time ago.

Thank you,

Shu

Python bindings problems in ubuntu x64

Hi. When I tried import in python this error message appears:

`Python 2.7.12 (default, Jul 1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.

import gpstk
Traceback (most recent call last):
File "", line 1, in
File "gpstk.py", line 24751, in
def now(timeSystem=TimeSystem('UTC')):
File "gpstk.py", line 9127, in init
self.this.append(this)
File "gpstk.py", line 9038, in
getattr = lambda self, name: _swig_getattr(self, TimeSystem, name)
File "gpstk.py", line 74, in _swig_getattr
return _swig_getattr_nondynamic(self, class_type, name, 0)
File "gpstk.py", line 69, in _swig_getattr_nondynamic
return object.getattr(self, name)
AttributeError: type object 'object' has no attribute 'getattr'
exit()
`
Ubuntu x64
Python 2.7.12

And make with flags

./build.sh -i "%HOME/progs/gpstk" -cdeTp -P "/usr/bin/python2.7"

Thanks

Cannot build Python swig bindings from INSTALL.md instructions

I am following UNIX-like Environment: Manual Build, Install, and Package from INSTALL.md, specifically Step 5:

   5. If you prefer to build and install GPSTk as a user library in $HOME/.local, 
      skip the previous step, and instead execute the following commands:

         $ cd $gpstk_root/build

         $ cmake -DPYTHON_INSTALL_PREFIX=$HOME/.local -DCMAKE_INSTALL_PREFIX=$HOME/.local/gpstk -DBUILD_EXT=1 -DBUILD_PYTHON=1 $gpstk_root

         $ export LD_LIBRARY_PATH=$HOME/.local/gpstk/lib:$LD_LIBRARY_PATH

         $ make

         $ make install 

         $ export PATH=$HOME/.local/gpstk/bin:$PATH

OK, let's run these commands:

~/gpstk_git $ echo $gpstk_root
/Users/timduly/gpstk_git

~/gpstk_git $ mkdir $gpstk_root/build
~/gpstk_git $ cd $gpstk_root/build

Running the cmake command:

$ cmake -DPYTHON_INSTALL_PREFIX=$HOME/.local -DCMAKE_INSTALL_PREFIX=$HOME/.local/gpstk -DBUILD_EXT=1 -DBUILD_PYTHON=1 $gpstk_root
<output>
$ export LD_LIBRARY_PATH=$HOME/.local/gpstk/lib:$LD_LIBRARY_PATH

Finally, running make, I make it to 97% (so close!):

~/gpstk_git/build $ make
<output> ...
Scanning dependencies of target example4
[ 95%] Building CXX object examples/CMakeFiles/example4.dir/example4.cpp.o
[ 96%] Linking CXX executable example4
[ 96%] Built target example4
[ 97%] Swig source
/Users/timduly/gpstk_git/ext/lib/Math/Expression.hpp:198: Warning 314: 'print' is a python keyword, renaming to '_print'
/Users/timduly/gpstk_git/ext/lib/Math/Expression.hpp:215: Warning 314: 'print' is a python keyword, renaming to '_print'
/Users/timduly/gpstk_git/ext/lib/Math/Expression.hpp:233: Warning 314: 'print' is a python keyword, renaming to '_print'
/Users/timduly/gpstk_git/ext/lib/Math/Expression.hpp:257: Warning 314: 'print' is a python keyword, renaming to '_print'
/Users/timduly/gpstk_git/ext/lib/Math/Expression.hpp:276: Warning 314: 'print' is a python keyword, renaming to '_print'
/Users/timduly/gpstk_git/ext/lib/Math/Expression.hpp:311: Warning 314: 'print' is a python keyword, renaming to '_print'
Scanning dependencies of target _gpstk
[ 97%] Building CXX object swig/CMakeFiles/_gpstk.dir/gpstkPYTHON_wrap.cxx.o
[ 97%] Linking CXX shared module _gpstk.so
[ 97%] Built target _gpstk
Scanning dependencies of target module_files_target
[ 97%] Generating module/gpstk/__init__.py
Error copying file (if different) from "/Users/timduly/gpstk_git/swig/gpstk/__init__.py" to "/Users/timduly/gpstk_git/build/swig/module/gpstk/__init__.py".
make[2]: *** [swig/module/gpstk/__init__.py] Error 1
make[1]: *** [swig/CMakeFiles/module_files_target.dir/all] Error 2
make: *** [all] Error 2

Any ideas? This error occurred on both Mac OS X and Ubuntu 14.04.

Thanks,
Tim

P1missing is broken in DiscFix.cpp --- this affects ALL type 2 receivers

Hi,

I attempted to run a TRIMBLE NETRS data file (ftp://geodesy.noaa.gov/cors/rinex/2016/157/p027/p0271570.16o.gz) through the discontinutity fixer. This failed. I dug into the code and determined the problem.

Note the absence of P1. The code logic is setup to handle this case: replace P1 with C1. However, the correct logic is not used because P1missing is false!

I can work around the issue by using --forceCA1, but this is less than desireable.


  • Mark

DDBase support

Hello,
Trying to use ddbase command for post processing of rinex files, but stuck with the usage details of the command for few weeks now.
I am particulary getting error code -3 with program not able to processRawData.

any documentation guide/ examples of usage would be of great help.

Thanks,
Anoop N

mapR2ObsToR3Obs_G and getObsIndex might cause error in RINEX2

Rinex3ObsToR3Obs_G.cpp

If the code in Rinex2 is "P1", in mapR2ObsToR3Obs_G(), it can convert to "C1W". But in getObsIndex("P1"), it just simply convert to "C1P". So it will throw exception... Is this correct or I misunderstand the rinex file format?

SaasTropModel Humidity Confusion

]The setWeather function in SaasTropModel tried to transform relative humidity into actual water vapor pressure and set the value to "humid" value. [LINE 371]
However, in the wet_zenith_delay function, the computation of pwv tried to use "humid" value, which did not actually represent the relative humidity.
This is confused me about the calculation of ZWD in the saastamoinen model.

Unable to locate GTest/Gmock when running build.sh on unbunt 18.04

I tried to build the code with TEST enabled.
./build.sh -te

Here is the error log:
`libing@libing:~/source/gnss/GPSTk$ ./build.sh -te
Run cmake -DBUILD_PYTHON=ON -DPYTHON_EXECUTABLE=/usr/bin/python -DBUILD_EXT=ON -DTEST_SWITCH=ON -DADDRESS_SANITIZER=ON -DCMAKE_CXX_FLAGS=-O3 /home/libing/source/gnss/GPSTk ##########################

cmake -DBUILD_PYTHON=ON -DPYTHON_EXECUTABLE=/usr/bin/python -DBUILD_EXT=ON -DTEST_SWITCH=ON -DADDRESS_SANITIZER=ON -DCMAKE_CXX_FLAGS=-O3 /home/libing/source/gnss/GPSTk
CMake Warning at core/tests/ORD/CMakeLists.txt:42 (message):
Unable to locate GTest/GMock. Some tests cannot be run.

CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.10/Modules/FindSWIG.cmake:63 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
swig/CMakeLists.txt:10 (find_package)

Error 1 :-(
See /home/libing/source/gnss/GPSTk/build/libing-master/Testing/Temporary/LastTest.log for detailed test log
See /home/libing/source/gnss/GPSTk/build/libing-master/build.log for detailed build log
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.