rtklibexplorer / rtklib-py Goto Github PK
View Code? Open in Web Editor NEWPython implementation of RTKLIB. Based on demo5 version. Currently only supports PPK solutions
License: MIT License
Python implementation of RTKLIB. Based on demo5 version. Currently only supports PPK solutions
License: MIT License
Hello. It seems it does not support BDS currently, do you have any plan to add it into support?
How to get the velocity in the output file ?
F:\RTKLIB\rtklib-python-ppk\src>run_ppk.py "
Traceback (most recent call last):
File "F:\RTKLIB\rtklib-python-ppk\src\run_ppk.py", line 35, in
import __ppk_config as cfg
File "F:\RTKLIB\rtklib-python-ppk\src__ppk_config.py", line 3, in
from rtkcmn import uGNSS, rSIG
File "F:\RTKLIB\rtklib-python-ppk\src\rtkcmn.py", line 11, in
import numpy as np
ModuleNotFoundError: No module named 'numpy'
Hello, if I want to add the BDS to the solution, what adjustments need to be made to the code.
Hi. When I execute run_ppk.py
on my input data in rinex 3.03 format, the library throws index out of bound exception when it tries to parse base station observation data in rinex 3.03, even though the same input files can be parsed correctly RTKLIB or other tools.
Traceback (most recent call last):
File ".../src/run_ppk.py", line 82, in <module>
base.decode_obsfile(nav, basefile, None)
File ".../src/rinex.py", line 321, in decode_obsfile
self.decode_obs(nav, maxepoch)
File .../src/rinex.py", line 292, in decode_obs
obs.L[n, f] = float(obs_)
IndexError: index 2 is out of bounds for axis 1 with size 2
The exception can be reproduced with the input files below (attached in a zip file)
receiver and base data.zip
rectangle_walk.22o
is the rover observatoin dataDRAO00CAN_R_20220160000_01D_MN.rnx
is the base station navigation dataDRAO00CAN_R_20220160000_01D_30S_MO.rnx
is the base station observation dataAll observatoin data and navigation data are in rinex 3.03 format
The base station data is pulled from Canadian Active Control System (CACS). These are public base stations managed by government. I use base station close to British Columbia, Canada.
When the library is parsing the body of base station observation data, it loops throughrange(self.nsig[sys])
using the following code
for i in range(self.nsig[sys]):
....
f = i // (self.nsig[sys] // self.nband[sys])
if self.typeid[sys][i] == 0: # code
obs.P[n, f] = float(obs_)
....
The index out of bound exception is thrown when
i = 13
self.nsig[sys] = 20
self.nband[sys] = 6
f = 2
obs.P
only has 2 columns, so f =2 triggers index out of bound exception
I didn't figure out why this line compute f
in this way
f = i // (self.nsig[sys] // self.nband[sys])
https://github.com/rtklibexplorer/rtklib-py/blob/main/src/rinex.py#L284
Hi,
There is a common pattern I see in all implementations of the Niell tropo across github :
The implementation is always the same :
(1+a / ... ) / (sinel +b / ...)
while I believe it should be (sinel +b / ...) / (1+a / ... )
(the opposite)
For example :
Line 737 in 5d8968d
def mapf(el, a, b, c):
""" simple tropospheric mapping function """
sinel = np.sin(el)
return (1.0 + a / (1.0 + b / (1.0 + c))) / (sinel + (a / (sinel + b / (sinel + c))))
However, original paper ( https://safe.nrao.edu/wiki/pub/Main/RefBendDelayCalc/Niell_Global.pdf ) list "equation 4" as :
So the form is (1/(1+a / ... )) / (1+1/(sinel +b / ...))
As (1/y)/(1/x)
can be rewritten as x/y
Then the calculation above can be simplified as (sinel +b / ...) /(1+a / ... )
There can be no ambiguity as later it is used directly as follow, without further division or calculation directly as mapf :
Line 755 in 5d8968d
This is the same (wrong?) implementation as RTKLib and any other commonly used RTK library I could find on github.
Am I just wrong about the understanding of the calculation, or is everyone copy-pasting the same error ?
Hi, I have a question regarding this library. I have developed a program in Python that establishes a connection with an EVK-M8T ublox receiver, sends configuration messages to receive RAWX and SFRBX type messages, and then collects the received stream of bytes into a .ubx file (removing NMEA sentences and putting only UBX messages). I would like to be able to generate RINEX files from this file that I generate by collecting the bytes that arrive using the library. is it possible to do this? I have some questions about this, in case it is possible:
If this library is not for me, how could I do it?
I apologize in advance for the triviality of my question, but I really have very little experience in this area. Thank you very much in advance.
when running with smartphone-decimeter-2022 test data for 2021-08-12-US-MTV-1/GooglePixel4
stack trace as follows:
/tmp/ipykernel_123/834946508.py in
140 # run sequentially, use for debug
141 for input in ppkIn:
--> 142 run_ppk(input[0],input[1],input[2],input[3],input[4])
/tmp/ipykernel_123/834946508.py in run_ppk(folder, rovfile, basefile, navfile, solfile)
93 # load nav data from rover obs
94 print(' Reading nav data...')
---> 95 rov.decode_nav(navfile, nav)
96
97 # calculate solution
/kaggle/working/rinex.py in decode_nav(self, navfile, nav)
170 acc[1] = self.flt(line, 2)
171 geph.frq = self.flt(line, 3)
--> 172 nav.glofrq[sat - uGNSS.GPSMAX - 1] = int(geph.frq)
173
174 line = fnav.readline() #11:14
IndexError: index 27 is out of bounds for axis 0 with size 27
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.