A Panorama in 1.6GHz Microwave-"Light"




download (198kB) Version 2006/07/23
new:
- better, faster interpolation
- optional displaying using false color palette

What else can you do with your GPS-Receiver when you are bored? Besides geocaching, stomping signs in corn fields and drawing of comics one can now abuse a GPS to image the surrounding landscape as a silhouette in the light of the GPS-satellites. This idea is not completely new. But here I can offer a DIY-program for everyone who possesses a GPS with NMEA-output.
For being able to calculate its own position a GPS has to know the positions of the sattelites in their orbit at least as precise as it wants to get its own position. So it knows their position in the sky. En passant the GPS measures the signal strength with which each satellite is read. These both spices together are sufficient to image the surrounding in the "light" of the satellites. The absorption, reflection, refraction and diffraction of the microwaves by objects between satellite and receiver allows a view with "hyperspectral" vision.
Most GPS-gadgets offer a serial port that can deliver data in the so-called NMEA-format to an external computer. In the wealth of information that is broadcasted repeatitively over NMEA is a list of the currently potentially "visible" satellites (GPGSV sentence) and their respective signal strength (SNR-signal/noise ratio).
I have knitted here a program in Delphi that can receive and process such a NMEA-data stream. For experimenting with this program set the output format of your GPS to NMEA which is standardized to the parameters 4.8kBaud, 8bit, no parity, one stopbit.
The delivered range of values for SNR is most probably different for the broad variety of GPS-devices. My etrex vista delivers with possible reception values between 34 and 51 or 0 if no reception is possible. To end up with smooth grayscale images despite of this jump I substract 30 from all values (besides 0). Who wants to can send me NMEA-logs of other devices for that I can learn about the possible range of values.

This way for instance lookes the panorama from the vantage point of my balcony rail, on which I laid my GPS for that fun.



If I let record my program the trails of the sats for 2 days it delivers that corresponding image:



The horizontal alignment of the images does match very good, whereas the vertical angular range in the classical panorama is much smaller. The GPS-image has in the horizontal axis 360 pixel for azimuth and in the vertical axis 90 pixel for elevation angle, so both have 1° resolution. Left and right is north direction, there the panorama should be stitched together. The order of directions from left to right is N-E-S-W-N. The trails of the sats generally start just 5° above horizon, this is an arbitrary threshold defined by the GPS receiver to accout for the increasing TOF uncertainty caused by the long way through athmosphere. I have drawn the horizon and the 5° line also in the classical panorama.
Through the NMEA protocoll the position of the satellits is only transmitted with 1° resolution, for higher resolution I could add in the future an interpolation of positions or a direct calculation from almanach data.
To let the images look a little more pleasing I added an interpolation that delivers a hole free grayscale picture.





I recommend switching off WAAS/EGNOS reception, otherwise two bright spots (europe) will spoil the image.

I would be glad, if I will receive interesting pictures from the sights of the world or pictures interesting from technical point of view, which I would like to present here. How will look Eiffel-tower, Taipeh 101 or the wooden planks in the roof in a GPS silhouette?

One more example:











If a GPS with the right RS232 parameters gets plugged onto COM1, the program will be immediately ready to receive. If the GPS is connected to another or virtual (untested) Port one can select the port in the upper left corner of the window. While successfully receiving values >0 are displayed at 'characters received'. To save a little processing power (notebook running time) one can deactivate the updating of the images. For an intentional interruption of reception, for instance for laying out the GPS, one can interrupt the processing of the stream with the checkbox. With "log to disk" one can save a protocoll of the GPGSV sentences.
The skyview to the left shows the positions of the sats and their receiving strength similar like GPS-handhelds do it.
The upper rigth image shows the coverage of the panorama with sat traces and the number of GPGSV-Messages having been received for each point. The current positions of the sats are shown as red dots.
The second image shows the averaged signal strength for each Point of the sky, that has been visited by a ssatellite once. Like described above, the Jump in signal strength values is ironed out.
The interpolation of the values between the trails is unfortunately so calculating time expensive, that it cannot run automatically alongside. The corresponding button has to be clicked on and the calculation can last minutes. At the time its a weighed average (by distance^3) and with a arbitrary cutoff (relevance) distance. As distance the bow on a great circle on a (half-)sphere is used. The small quadratic image below is agai a skyview, a kind of look from above. Under the menu point "file" one can save the images but also save and load the raw-data to be able to abort and resume the acquisition.
Under "action" one can reset the already acquired data to start over with a "white sheet of paper".







Send your images and comments to:
Please excuse, if an answer takes some days.




download (198kB) Version 2006/07/23
new:
- better, faster interpolation
- optional displaying using false color palette



30.06.2005