Thursday, July 21, 2011

Satellite Tracking: Initial Succeess

New Tracking AppN2YO site

As I mentioned yesterday, I'm playing around with building a satellite tracking application. I'm helping with a special event station to help raise awareness for the Friends of Science East's effort to restore Tesla's last lab, Wardenclyffe, in Shoreham, NY. After a few very minor issues, the first satellite is being tracked! First, the satellites in the AMSAT Keplerian data are named in a different fashion than they are on N2YO's site, (the site I'm using to verify my results). So, LO-19 in Amsats Keplerian data table:

1 20442U 90005G 11187.94329143 -.00000024 00000-0 64087-5 0 01550
2 20442 098.3466 141.1781 0012855 097.5464 262.7179 14.32152423120621

is designated as Oscar19 (LUSAT) on the N2Y0 site.

At first, I thought there just weren't actually any amateur satellites in the Amsat data, but soon realized the different naming after performing a 'Search By Satellite Name' on N2YO's site. I'll try to get a table that lists the associated names into one of these blog posts.

After looking into the naming issue, it only took a few minutes to disect the baseline code, (because it is very clear and well written as mentioned before), and feed it the Keplerian data for Oscar19.

And a few seconds later, there was Oscar19 on my screen just tracking along! Using N2YO's site as a reference, Oscar19 is showing up in about the right place as can be seen in the pictures above.

Now, I'm off to understand the time progression code and to add buildings to the map.

Buildings were no problem. Using the Google Earth API docs for layers, it took one line of code to add the buildings of Manhattan!

I ran into what I thought might be the first problem while perusing buildings. It's difficult to know where to look for the satellite without a good old 2D representation of it's position, (or by zooming way out), and it would be handy to have a 2D inlay of where the horizon is at the current position to know if the satellite was behind the horizon.

The time progression code for the satellite animation has an ingenious member called g_speed. By setting this to 1, you can see the satellite move in real time. By setting it to more than one, you speed up time and watch the satellite track for the entire day in just a few seconds.

Each satellite has a Icon member which is responsible for drawing the satellite on the screen. I'll be adding a LineString geometry member to the satellite that will store the locations on the satellite track and draw the line corresponding to the track as it progresses.

And it worked! As of this writing, one satellite is being tracked with it's trail streaming out behind it. I've sped time up 20 using the g_speed variable. You can see the current demo at:

You'll probably need to rotate the earth a bit to find the satellite at first, but it's there!

Or watch a brief movie of it here.

No comments: