semuconsulting / pyrtcm

Python library for parsing RTCM 3 protocol messages.
BSD 3-Clause "New" or "Revised" License
75 stars 23 forks source link

1019 message values #50

Closed EgehanYaglici closed 7 months ago

EgehanYaglici commented 7 months ago

I have an own ntrip client module and crc check procedure. ı use pyrtcm library for parsing the messages only.

ı made a test at the same time with bnc and and the code for the checking values because when ı try to calculate satellite positions ı see some mistakes.

20:27 UTC time for savings on BCEP00BKG0

PYRTCM OUTPUT: {1019: {1: [{'DF002': 1019, 'DF009': 1, 'DF071': 94, 'DF076': 257, 'DF077': 2, 'DF078': 1, 'DF079': 1.5234036254696548e-11, 'DF081': 79200, 'DF082': 0.0, 'DF083': 1.9326762412674725e-12, 'DF084': 9.948620572686195e-05, 'DF085': 564, 'DF086': 104.3125, 'DF087': 6.610889613511972e-10, 'DF088': 0.5653691641055048, 'DF089': 1.8753111362457275e-05, 'DF090': 0.11786648875568062, 'DF091': 1.8104910850524902e-06, 'DF092': 210.75203704833984, 'DF093': 124496, 'DF094': -4.526972770690918e-05, 'DF095': 0.23730699252337217, 'DF096': -3.166496753692627e-07, 'DF097': -0.9107646332122386, 'DF098': -0.125, 'DF099': 0.315432685893029, 'DF100': 1.125490598496981e-07, 'DF101': -2.60770320892334e-08, 'DF102': 21, 'DF103': 0, 'DF137': 1}],

and the ephemeris data at the same time with same satellite on bnc.
G01 2024 03 10 22 00 00 1.733088865876e-04 1.932676241267e-12 0.000000000000e+00
 9.400000000000e+01 3.434375000000e+01 3.595864067886e-09 1.481153980717e+00
 1.810491085052e-06 1.286328351125e-02 1.449324190617e-05 5.154014831543e+03
 7.920000000000e+04-3.166496753693e-07-2.861251480849e+00-7.450580596924e-09
 9.909610087036e-01 1.208437500000e+02 1.000954582462e+00-7.641746880859e-09
 4.785913638228e-11 1.000000000000e+00 2.305000000000e+03 0.000000000000e+00
 4.000000000000e+00 6.300000000000e+01 5.122274160385e-09 9.400000000000e+01
 9.999000000000e+08 4.000000000000e+00

 so ı am crius about the data ı collect is wrong or the parsing part. ı am not a professional on this job ı need to find the problem for fixing it for more detailed conversation please mail me 
semuadmin commented 7 months ago

HI @EgehanYaglici

I'm unclear which specific pyrtcm data field(s) you believe to be incorrect and why.

  1. what is the origin of this RTCM data?
  2. please share your complete code script and original output.
  3. please clarify what you believe the correct output should be?
EgehanYaglici commented 7 months ago

Hi, you can find more different values when try to check all (etc i_dot is different). my main objective is calculate satellite positions base on the rtcm data, ı send you a ipynb its include all code script some run example and satellite positions in the below cells you can see the position when we try to make a basic visual. I am not very familiar with this type datas. Actually if ı can get help it would be greatful ı add the same message same data in same time. ı make the multiplications in the code for semi-circle values.

If you notice a something wrong in the code or the calculation part ı am really glad to hear it, ı am a geomatics engineering student and ı try to make a real time gnss data monitoring project your helps mean a lot to me. Sorry for bothering you.

RINEX

RTCM :

SEMU Admin @.***>, 11 Mar 2024 Pzt, 00:07 tarihinde şunu yazdı:

HI @EgehanYaglici https://github.com/EgehanYaglici

I'm unclear which specific pyrtcm data field(s) you believe to be incorrect and why.

Can you share your complete code script please, and clarify what you believe the correct output should be?

— Reply to this email directly, view it on GitHub https://github.com/semuconsulting/pyrtcm/issues/50#issuecomment-1987362812, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVKFN62P4MUZRXURTEZCTV3YXTDRPAVCNFSM6AAAAABEPHYN2OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBXGM3DEOBRGI . You are receiving this because you were mentioned.Message ID: @.***>

-- Saygılarımla / Best Regards Egehan Yağlıcı Hacettepe University ( Ankara / Turkey ) Geomatics Engineering Department *E-mail: @.** Phone Number: *+90 553 416 3103

semuadmin commented 7 months ago

@EgehanYaglici

I'm happy to assist as best I can but please appreciate that I am not myself a geomatics expert and may not be in a position to explain why your RTCM 1019 values differ from the RINEX values in this case. I have simply endeavoured to implement the RTCM payload definitions in accordance with the RTCM3 specification.

Screenshot 2024-03-11 at 09 47 46

I note that some of your RTCM values here correspond with different RINEX values e.g.

Are you sure this isn't simply a case of the corresponding values being jumbled up? I would recommend you double check this first.

I've double checked the RTCM 1019 payload definition in pyrtcm and as far as I can see it matches the specification in the RTCM 10403 Standard, though it's entirely possible I may have overlooked something.

Could you please provide:

  1. the provenance of both the RTCM and RINEX data - where has the raw data come from?
  2. a complete copy of your Python code, or at least as much of it as is necessary to see exactly how you are invoking the pyrtcm.RTCMReader parser and handling its output.
  3. a copy of the raw binary RTCM data that you are attempting to parse (i.e. the input to pyrtcm.RTCMReader.parse(raw)).
  4. a complete unedited copy of the actual output from the pyrtcm.RTCMReader parser (i.e. print(parsed) where parsed is the RTCMMessage instance).

Do you have access to a copy of the RTCM 10403 Standard referenced above, and/or the GPS Signal Specification to which it refers? These contain more detailed information on the format and dimensions of these data fields which may be useful for correct interpretation and comparison. Unfortunately the RTCM specification is proprietary so I'm not at liberty to post a copy here.

Thanks

EgehanYaglici commented 7 months ago

Hi, the data source is products.igs-ip.net and mount point is the BCEP00BKG0 for getting the all navigation data from gps satellites.

In the code the class CustomRTCMReader(RTCMReader) is the where ı use the RTCMReader. I can't give you the binary version of 1019 data actually the whole code based on the class ı create.

Now ı will tell you the codes part and the logic maybe this way you can understand the problem part.

navigation and observation organizer save the datas with their satellite id numbers and update them. the reason ı use the custom class rtcm is when ı began the use pyrtcm reader it gives me some CRC failed output too and ı dont want to see them so ı create this.

The code gives you the option for the choose what do you want to see (message types) and multi mouonpoint connection.

In the beginning of the code you will see a function for calculate the satellite positions. when a 1019 message arrives and save on masterdict it goes for this function and make the calculations of the satellite on ecef.

ı live a mindblow right now ,

CODE.ipynb.zip

in the base code just do this. ı add the whole code with ipynb format you can see yourself everything.

EgehanYaglici commented 7 months ago

issue solve the problem is customrtcm class now had a new problem :D

EgehanYaglici commented 7 months ago

Now the new version should read the 32 satellite messages but , it reads 3 6 9 12 15 18... to 30 I can't find the reason its RTCMReader part the code.

If you can check the this code and find the problem why it behave like that ı would be appreciate. the code below here CODE_1.ipynb.zip

semuadmin commented 7 months ago

issue solve the problem is customrtcm class now had a new problem :D

I'm going to close this issue. If you have another unrelated query, can I ask you to post it on the Discussion Q&A forum in the first instance.