barbeau / gpstest

The #1 open-source Android GNSS/GPS test program
Apache License 2.0
1.77k stars 363 forks source link

Add RINEX export for raw measurements #471

Open Jia-le-wang opened 3 years ago

Jia-le-wang commented 3 years ago

I've been following GPSTEST for a long time, and I have to admit, this software works really well.It can show the azimuth of the satellite, the constellations tracked, signal quality,TTFF and so on. However, this is not enough for a deeper understanding and research of the high accuracy positioning performance of smart phones.

1. TTFF is heavily influenced by GNSS auxiliary data, including A-GNSS server, extended ephemeris, and hot start data.So, is it possible to add a function to continuously test TTFF of standalone GNSS ?I mean, make sure the phone is positioned and record the TTFF multiple times without interference from assisted data.

  1. Could you add a feature to support the output of raw satellite observations dara of RINEX 3.03+?Because this is necessary for high precision GNSS positioning and will make the software function more perfect.I have noticed that GNSSLogger V3.0 can now output observations in RINEX 3.03 format.However, it still has many imperfections, such as formatting errors, carrier phase recording errors, missing part of the satellite pseudorange values, and so on.
barbeau commented 3 years ago

TTFF is heavily influenced by GNSS auxiliary data, including A-GNSS server, extended ephemeris, and hot start data.So, is it possible to add a function to continuously test TTFF of standalone GNSS ?I mean, make sure the phone is positioned and record the TTFF multiple times without interference from assisted data.

Unfortunately no - Android APIs don't given enough access to apps to understand how and when assistance data is being used.

Could you add a feature to support the output of raw satellite observations dara of RINEX 3.03+?Because this is necessary for high precision GNSS positioning and will make the software function more perfect.I have noticed that GNSSLogger V3.0 can now output observations in RINEX 3.03 format.However, it still has many imperfections, such as formatting errors, carrier phase recording errors, missing part of the satellite pseudorange values, and so on.

This is certainly possible! I'm not very familiar with the RINEX format myself, so any help from others that want to take this on is welcome. Especially if someone knows of an existing OSS library that could help with the heavy-lifting.

gdt commented 3 years ago

I'm not barbeau@ but if I were I'd ask that this be closed and two separate issues be opened, each with a summary of what is being asked for in the title. Putting two independent things in one issue just doesn't work with how trackers are used.

barbeau commented 3 years ago

Putting two independent things in one issue just doesn't work with how trackers are used.

💯

I'd ask that this be closed and two separate issues be opened, each with a summary of what is being asked for in the title

@gdt I usually would, but given the first issue mentioned isn't viable I just changed the title and co-opted this issue for the 2nd RINEX format issue, so we can track that here going forward.

barbeau commented 3 years ago

Note that this tool supports converting from the CSV output of GPSTest to RINEX: https://github.com/rokubun/android_rinex

I think this should effectively solve this issue, although I'd be interested to know if anyone sees significant value in having direct RINEX output support within GPSTest.

vkbellis commented 3 years ago

Is this the same thing that GnssLogger is using to spit out its RINEX?

I've yet to test GPSTest's CSV run through Alex's RINEX writer; however, I am curious about its formatting compliance, and what, if any, format checking tool(s) were used in any evaluation of the produced file.

barbeau commented 3 years ago

Is this the same thing that GnssLogger is using to spit out its RINEX?

No, Google has their own code in GnssLogger to directly output to RINEX from the app. However, it's not open-source, so it's not something I can port over to GPSTest. Google has stopped doing open-source development on GnssLogger, so the version on Google Play now with RINEX export is a closed source fork that they are working on internally.

https://github.com/rokubun/android_rinex is a desktop tool that you can use to convert the CSV file output from GnssLogger or GPSTest to RINEX. It was developed before GnssLogger added direct RINEX output.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

ZiglioUK commented 2 years ago

Here's an open source implementation in Java if you're still interested: https://github.com/goGPS-Project/goGPS_Java/tree/master/src/main/java/org/gogpsproject/producer/rinex

barbeau commented 2 years ago

Thanks @ZiglioUK! Looks like that code is licensed under L-GPL which makes it trickier to integrate into GPSTest. If you stumble across anything under Apache v2 or MIT please let me know.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

ZiglioUK commented 2 years ago

Sorry @barbeau , I was meant to ask the oweners of GoGPS whether alternative licensing could be considered. I will, if you're still interested

barbeau commented 2 years ago

@ZiglioUK thanks! That would be helpful.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

gdt commented 1 year ago

Hey bot, still valid.

ZiglioUK commented 1 year ago

Hi there, back in 2022 I did ask @ege010 (the owner of GoGPS) whether we could re-release the library under a different or as an additional license and he did not have any objections. I will ping him again. I don't really know the difference between LGPL, Apache v2 or MIT so I wouldn't know whether they're mutually exclusive for example.

gdt commented 1 year ago

Hey bot, still valid.

ege010 commented 1 year ago

Hi, indeed I do not have objections to re-releasing the library under a different license. Directions/suggestions on the proper way to do that would be appreciated. I suppose first of all we would have to contact all contributors and check whether they agree.

barbeau commented 1 year ago

@ege010 Thanks for being willing to do this, and thanks @ZiglioUK for reaching out to @ege010.

Before you go to the effort of reaching out to contributors and re-releasing under a new license, I'm also looking at another option for adding RINEX support. I'll report back later on this option, although it may take some time.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

barbeau commented 1 year ago

Not stale

stale[bot] commented 5 months ago

Closing this. Please reopen if you believe it should be addressed. Thank you for your contribution.