There are no updates on the site and sourcecode for days, so I'd like to share this tool with windows's user of gpstk.

This tool is useful for users who want to build GPSTk source with VC++9.0 IDE but not jam, it run in the 'dev/ ' folder and copy all the source code to 'GPSTkLib/src', at the same time, a include file 'GPSTkLibInc.h' is create. After that, you can build and debug with powerful IDE. Of course, you should add pcre library to you solution, pcre3.dll in the PATH, pcre.lib in your project,and pcre.h and regex.h int the include path.

#include <iostream>
#include <string>
#include <process.h>
#include <list>
#include <fstream>

using namespace std;

int main(int argc,char* argv)
   // Show Help
   cout<<"Purpose    : Get GPSTk sourcecode"<<endl
      <<"Author     : YAN Wei"<<endl
      <<"Date       : 2009-09-20"<<endl
      <<"Useage     : This application must be in the \"dev\" folder"<<endl
      <<"             of GPSTk develop branch."<<endl;

   // system command list
   list<string> lstCmd;
   // make directorys
   lstCmd.push_back("mkdir GPSTkLib\\src");
   // copy files
   lstCmd.push_back("copy src\\*.h GPSTkLib\\src");
   lstCmd.push_back("copy src\\*.hpp GPSTkLib\\src");
   lstCmd.push_back("copy src\\*.c GPSTkLib\\src");
   lstCmd.push_back("copy src\\*.cpp GPSTkLib\\src");
   lstCmd.push_back("copy lib\\geomatics\\*.h GPSTkLib\\src");
   lstCmd.push_back("copy lib\\geomatics\\*.hpp GPSTkLib\\src");
   lstCmd.push_back("copy lib\\geomatics\\*.c GPSTkLib\\src");
   lstCmd.push_back("copy lib\\geomatics\\*.cpp GPSTkLib\\src");
   lstCmd.push_back("copy lib\\procframe\\*.h GPSTkLib\\src");
   lstCmd.push_back("copy lib\\procframe\\*.hpp GPSTkLib\\src");
   lstCmd.push_back("copy lib\\procframe\\*.c GPSTkLib\\src");
   lstCmd.push_back("copy lib\\procframe\\*.cpp GPSTkLib\\src");

   // get inclde file list
   lstCmd.push_back("dir GPSTkLib\\src\\*.hpp /B > GPSTkLibInc.txt");
   // execute all of the commands
   for(list<string>::iterator it=lstCmd.begin();it!=lstCmd.end();it++)
   // write the include file
   ifstream fin("GPSTkLib/GPSTkLibInc.txt");
   ofstream fout("GPSTkLib\\src\\GPSTkLibInc.h");
   if(fin.bad() || fout.bad())
      if(fin.bad()) cerr<<"Error  : GPSTkLibInc.txt doesn't exist!";
      if(fout.bad()) cerr<<"Error : Error to write the file GPSTkLib\\src\\GPSTkLibInc.h";

      return 1;

   // First, let's write the header block of the file
   fout<<"#ifndef GPSTKLIB_INCLUDE_H"<<endl
      <<"#define GPSTKLIB_INCLUDE_H"<<endl
      <<"/// c++ standard libary"<<endl
      <<"#include <iostream>"<<endl
      <<"#include <iomanip>"<<endl
      <<"#include <string>"<<endl
      <<"#include <cmath>"<<endl

   // Second, let's write the include files
   fout<<"// GPSTk Library"<<endl;

   string buf;
      if(buf.size()<10) continue;
      fout<<"#include \""<<buf<<"\""<<endl;

   // Last, let's write the end block of the file
   fout<<"#endif //GPSTKLIB_INCLUDE_H"<<endl
   // close the files

   cout<<"Finished , Please check it up!!!"<<endl

   return 0;

It's nice to be useful for anyone.


-- YanWei - 10 Nov 2009


ALERT! If you answer a question - or have a question you asked answered by someone - please remember to edit the page and set the status to answered. The status is in a drop-down list below the edit box.

Hi Yan!

Thank you very much for your contribution. I'm sure the Windows lot will be very happy with it!!!.

By the way, THERE ARE changes to the GPSTk these days, but most of the action is in the "branches/rinex3_dev/" directory. The GPSTk team is working hard to bring full GNSS support (i.e., GPS+Galileo+GLONASS+COMPASS) to the library. Take a look there!.

Best regards,


-- DagobertoSalazar - 11 Nov 2009


I checked the source codes of rinex3_dev branch months ago, and there were so many problems at that time. What's the state-of-art of the rinex3_dev? Can I do PPP with GPS and GLONASS obervations with the branch? Wish you can tell me something.

These days I'm working hard on observation simulation of GNSS,include GPS GALILEO and COMPASS, GLONASS is under going. So I want to learn more about combined data processing of all kinds of satellite systems. To process these data, it's necessary to do conversion between different TIME SYSTEMS and REFERENCE SYSTEMS, and I think some classes should be add to GPSTk to make it better:

1> convert time between different TIME SYSTEM(not time format),UT1 UTC TT GPST TAI TDB

2>classes to calcute JPL ephemeris,DE405 is recommend.

3>convert coordinate between ICRF and ITRF, the SOFA lib by IAU is a good choice.

If the above is useful, I'll send you all of the code and reference to you.

By the way, do you have any progress on PPP ?

Thanks to you,and to all of the GPSTk team members.

Best regards.


-- YanWei - 12 Nov 2009


The Rinex 3 branch is currently very much a work in progress. I expect we'll see plenty of bug fixes and new additions in the next few months as we start to seriously use this for application development. So bear with us ...

I think many of the tools you need to do PPP with GPS and GLONASS are in place at this point - though not extensively used. One feature that will be useful is the full support for Rinex3 Obs data. Tools are limited at this point. We have some conversion tools for R2.x -> R3 at this point, and PRSolveR3 seems to be able to generate GPS only, GLONASS only, and combined psuedo-range soln.'s

We'll shortly be releasing a brief set of notes about this branch, which we intend to be the basis for GPSTk V2.0, so we definitely would like feedback on the design and suggestions for improvements.



-- DavidMunton - 13 Nov 2009

No such template def TMPL:DEF{PROMPT:supportquery}

Topic revision: r8 - 05 Dec 2009, YanWei

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback