views:

83

answers:

2

Hi to all,

due to Internet communication i could have two (or more) ASCII files in RINEX format (GPS ASCII format) of the same data period, which i would like to merge to one file.

Each data set (epoch) contain more then one line (in this example 19 lines). I would like to merge those files, where it could be that they in some parts overlap each other.

here is an example of RINEX epoch data set:

09  2 21 12 59 59.9000000  0  9G31G23G11G13G32G17G14G20G19 
 23152606.238   121667768.06047  94806069.43545  23152606.540    23152606.521 
     1262.605          43.750          31.500 
 22765313.352   119632547.53447  93220179.18745  22765312.252    22765311.072 
     3252.769          46.250          32.250 
 20798168.896   109295128.07748  85165036.96747  20798168.642    20798168.578
    -2252.493          52.750          43.250 
 25363206.177   133284559.23845 
     3776.403          32.750 
 20350616.203   106943239.96448  83332404.31147  20350615.386    20350616.499 
     -929.443          51.000          44.500 
 21994260.713   115580595.93348  90062809.84446  21994260.826    21994260.114 
      416.327          49.500          38.250 
 23964108.994   125932271.15846  98129049.02843  23964107.689    23964107.603
    -3561.500          39.250          20.250
 20225257.452   106284459.64448  82819085.85247  20225256.341    20225256.964
      956.944          52.750          45.250
 25623383.323   134651746.21445 104923415.17742  25623386.202    25623384.504
    -3991.096          34.250          12.250

The first line contains the time info and below are the raw data for each GPS satellite.

My idea was to open each file separate and stored the raw data in some kind of array relative to time. Each time i read new epoch, i ask my array if i already have something with time so and so, and if not i place the raw data there.

My question is how to store the raw data with respect to time, since it is not one line but something dynamic that could always change.

If you have better idea, please share it with me.

Regards

+3  A: 

To store the raw data with respect to time, I would:

  • Encode the time as a number (# of seconds since Unix "epoch time" or since some arbitrary start time - use microseconds instead of seconds depending on what RINEX time precision is).

  • Store the raw data as an array (data for each line is 1 array element - stored either as a string, an arrayref of words or a hash of values).

  • Store the reference to that array as a value in a hash, with the key being the time-encoded-as-a-number.

DVK
I second this approach. This way you'll organize the heap of lines into a data table (the array) and a lookup index (the hash). To your array you just add new lines at the end which is cheap, while the hash contains only numerical keys and references of where to look in the array which is cheap as well. This will provide far greater performance than storing the data within the hash itself which would be pretty expensive, especially with larger sets of data.
Olfan
A: 

Hi,

I'm new to GPS world. I need to know how to do Post process DGPS. I read the basics. and i found that in noaa web site, the CORS data Rinex files are available to public for free to download.

Now, I didnt get what should i do to use this downloaded data to post process my gps data. Is there any free post process software available? And I use android phone htc magic as the gps receiver.

I found in the net wat is dgps and post processing etc.. but, couldnt find clear steps to do post processing dgps.

Your help is greatly appreciated.

Thanks.

myforumacc
In general there are two types of DGPS, based phase (more accurate and complicated) and based pseudo-range (relative simple). There is GPSTk project where you could find free C++ libraries, but not perl...
Adler
it would be more helpful to know in which direction you are heading for more specific help... good luck
Adler