[Kstars-devel] Dealing with Proper Motion in extended catalogs
James Bowlin
bowlin at mindspring.com
Fri Mar 28 19:57:13 CET 2008
All of our current plans for extending our catalog involve having the
fainter stars organized on disk first by spatial position (HTM index)
and second by brightness. This will allow us to only load into memory
the fainter stars that are on-screen or close to being on-screen.
If we want to be able to display the sky far forward and far backward
in time (1,000's of years) then we need to deal with the fact that the
HTM index of some stars will change with time. If nothing is done to
compensate for this effect then some high PM stars will very, very
occasionally just disappear.
A star that has a proper motion of 160 milliarcseconds/year will
move about 25 arcminutes in 10,000 years. 25 arcminutes is our current
re-indexing safety margin. If we limit the times we display to
+/- 10,000 years of J2000 then at most only 3.4% of the stars in our
current catalog would need to be re-indexed (using our current level-3
mesh). But most of those 3.4% wouldn't need to be re-indexed because
the size of the trixels in our level-3 mesh is roughly 10 degrees.
I've done a few more tests to try to measure how many stars from our
current (125,000 star) catalog would need to be re-indexed and it
appears that we would need about 1,200 re-indexes in a 20,000 year span.
This is slightly more than my previous estimate.
I propose that we put an arbitrary +/- 10,000 year limit on how far
forward and backward in time KStars will go. Every star will draw an
imaginary line in the celestial sphere over the course of those
20,000 years due to its proper motion. The last 25 arcminutes of each
end of the lines should be cut off to account for the safety margin.
This means we only have to deal with 3.4% of our catalog. We already
have the tools available to create a list of all the trixels that such
a line crosses. When we create the files of stars ordered by position
and then brightness, I propose that we include high PM stars in
multiple lists so that if any trixel crossed by the 20,000 year line is
visible, we are sure the star will be displayed.
If my above estimate is accurate then this will increase the size of
the data files by 1% and also increase the time to draw the stars by 1%.
The beautiful thing is that if we are willing to accept this 1%
redundancy then no other work is required. Problem solved! I think it
would take longer to check for repeats than it would to simply draw
them.
If, for some reason, it becomes unacceptable to draw a few stars more
than once, then we can add a drawID flag to every star to ensure that
each star only gets drawn once just like we are already doing for
extended objects such as constellation lines and section of the Milky
Way.
If we are willing to impose a +/- 10,000 year limit on the times KStars
will render the sky for (and if my estimate is accurate) then there
exists a trivial solution for the proper motion problem that costs us
roughly 1% extra storage space and 1% extra drawing time.
Note that the penalty will increase for finer meshes by roughly a factor
of two for each mesh level. Although the 25 arcminute safety margin will
continue to reduce the number of re-indexes required. We may want to
use a level-5 mesh for a catalog that goes down to mag 16. In this
case we might want to reduce the maximum time span to compensate, for
example only allowing times up to +/- 2,000 years, which should keep
the penalty under 1%. I suspect that people who are more interested
in fainter stars are less concerned about the sky far in the past and
future.
Any thoughts? Is a +/- 10,000 year time limit acceptable?
--
Peace, James
More information about the Kstars-devel
mailing list