Skydel for RINEX observation files

This question came in via e-mail today from our friends at the University of Oregon

We would like to use Skydel for a new project but we could not find the way of creating RINEX observation files. I assumed we could output the “simulated” observation files. We wanted to try making different sets of files with/without interference scenarios.
From the forum, we found your answer to another person asking about the observation file. You said the skydel would not create an observation file. Is that true? I thought the whole idea of this software was to simulate the observations at different places with different scenarios.

Hi @rburke ,

Indeed, Skydel does not generate Rinex Observation files, only the Rinex Navigation file.

But we have created a tool that allows to generate Observations files from Skydel raw loggings.
Please find here the link to download this tool: https://github.com/learn-orolia/skydel-tools/tree/main/SROG.

We have used it for internal testing and it works well but it may need a tool that could be improved for other types of testing.

Best regards,
Grace

1 Like

Hi @Grace ,

I followed the instructions of downloading the tool kit in the document called “HOW TO USE THE SKYDEL RINEX OBSERVATION GENERATOR TOOL”, but I was stuck in step 3 (packages installation). I tried typing ‘pip install -r requirements.txt’ on the command window using the VS code and Python 3.7, but neither works. Do I need to download something first?

Kindly,
Hongzhao Zheng

Hi @hongzhaozheng ,

Python versions that will work are 3.8 and above. The download link is in the read me. Also, you have to launch the command prompt in a terminal. I have just added in the Gitub link a file that explains how to properly install python and the necessary libraries on Windows. I hope this can help.

Best regards,
Grace

Hi @Grace ,

Sorry Gace, I am not familiar with Github. I wonder if I need to download the whole project folder SROG on my PC before using the Rinex observation file generation tool?

Kindly,
Hongzhao Zheng

Hi @hongzhaozheng ,
Yes, indeed you need to download the whole project folder :slight_smile: .

Best regards,
Grace

I tried to generate Rinex .obs file using the generated .csv files from the NoneRT mode, but I only got a blank file. Actually, when I clicked on select directory, it only navigates to a folder which contains all .csv files for a particular configuration.

Do I enter the UTC time of the starting time in the obs generator?

Hi @hongzhaozheng :slight_smile: ,

yes you need to enter the UTC time of your configuration in the obs generator.
Please find here the link to the user manual: skydel-tools/HOW TO USE THE SKYDEL RINEX OBSERVATION GENERATOR TOOL.pdf at main · learn-orolia/skydel-tools (github.com)

Best regards,
Grace

Hi @Grace
I was to able to generate .Observation file using python script couple of times.

However , Now I keep getting this error message in the command prompt ( message error below). Do you have any idea on how to solve that issue.

Message error I received
" Main 3
Traceback (most recent call last):
File “main.py”, line 628, in main_func
self.main_func_3(date_and_time, delta_ms, sat_visible, self.Sat_data_dict_0)
File “main.py”, line 825, in main_func_3
N = max(self.N_list)
ValueError: max() arg is an empty sequence"

Hey @alqurask,

The advice I can give for this error is to look at forums on fixing this problem.
In my opinion, it may be that the list ‘N_list’ is empty, so you will have to debug your input files to find out the contents of that list.

Regards,
Grace

1 Like

Hi @Grace Thank you for response. It worked now but I have following question.

Does this python code process L5 signal as well? Because in the python window we just can choose L1 or L1/L2.

Also in the output (observation file) I just can see L1 and L2 in the header while I did the simulation using L1 , L2 and L5

Best

Hey @alqurask,

No we did not add L5 in the signals, but it is really a generic code which can be modified according to the needs of use.

You can add the L5 signals by following the example of the L1C/A signals and also add a header that will correspond to your simulation (L1, L2 and L5). I also advise you to look at the format of RINEX files depending on the version you use to know how to include L5.

Regards

Hi @Grace

I have question regarding “None vs NoneRT”. I am doing my project in NoneRT mode but I noticed my GPU capability is not sufficient when I do the simulation with dual frequency and multi-constellations in Real time. Also in my project I need to add some interreferences signals as well and I need simulation output as Raw data (csv) to convert it later to observation RINEX file.

So if I set my output to “None”, would the result accuracy or interreferences signals or output Raw data affected ?
I know in “None” the simulation duration is not going to be in real time , but I am curious what else is going to be different.

Could you tell us which GPU you are using?

Quadro :CUDA 192 Cores

OK, that explains it. IF you look at the recommendations in our user manual, we recommend at least 384 CUDA cores. (Orolia Skydel User Manual) It will run with less as you have discovered, but when you start doing multi-frequency/multi-constellation and then add in other signals (i.e. interference, jamming, multipath…), it is just not possible to process all of the data in Real Time (RT in NoneRT is Real Time) and uses the GPU. Normally, we recommend that you have 16 CUDA cores per signal.

We are getting ready to publish a new white paper soon on GPU selection that covers this really well and it will have guidelines as well as comparisons. If you want to see and early version of this, message me directly and I will send it over to you and only ask that you give us some feedback on the document:-)

1 Like

Wow, this is really good information to have rburke. I like having a general rule of thumb fir CUDA cores when setting up multiple signals. How can I see that whitepaper soon also?

Hi Robert

Thanks for your reply.

Actually, the purpose of my project is to generate an observation file (dual or triple freq) using the skydel for any days/times, not necessarily create any real time data, because we will post process RINEX files using GNSS positioning software. Would be a matter of using the “None” option NOT “NoneRT”?

In other words, what is the main difference between “None” and “NoneRT” Regardless Real time simulation in RT?

If we used None, to simulate data, can we still add the interference to the observations? Again, we want to test the impact of interference simulation to positioning, and it doesn’t need to be real time.

Hi @alqurask,

The two main differences between “None” and “None RT” are:

  • None: RF is not generated and IQ is not saved, raw logging data is saved.
  • NoneRT: Similar to None but runs in Real Time.

I think there would be no problem with the simulations you want to perform if you use “None” or “None RT”.

Regards,
Grace O.

1 Like

Hello @Grace
I have two questions regarding skydel.

1- We would like to lower sampling interval for the simulation to be something like 5 second or 30 seconds. Currently I am working on “None” mode because of GPU limitation.

2- I set the time duration to 3 hours in “None” mode. However, when I converted the csv files to observations RINEX files using the convertor I got the result for just 1 hour and 59 seconds in the resulted RINEX observation file, any idea?