# 3D Positions of Nearby Stars

I have come across a number of star catalogs that list stars by right ascension and declination, along with other data such as magnitude.

Is there a star catalog that lists the 3-D position of stars (e.g. includes distance from the sun, or otherwise specifies a 3-D position)?

• Which catalgoues have you come across? One of the most popular ones known as HIPPARCOS(link ahead) lists parallax which is indicative of distance. heasarc.gsfc.nasa.gov/W3Browse/all/hipparcos.html Mar 31 '14 at 7:33
• Thank you, I missed that set. Do I understand correctly that parallax in the HIPPARCOS set can be measured for stars out to about 1600 light years? Mar 31 '14 at 15:26
• I am sorry but I have only used it for amateur observations and didn't pay attention to that detail. Plus, I can't find that out in the documentation. Maybe it is in the papers. Yet sorry. Mar 31 '14 at 17:35
• @EricJ. Has Cheeku's comment resolved your question? If so, it should be made into an answer (by him, so you don't have to worry about that). If not, what detail are you still lacking? Consider working this into the body of your question. Mar 31 '14 at 18:32
• @Cheeku: If you convert your comment into an answer, I will certainly upvote it and may accept it if no other answers are proposed that also cover more distant stars. Mar 31 '14 at 20:44

Shameless self-plug: I made a catalog of the BSC5P that has 3D positions, colour, and other goodies ready for use:

It is released to public domain under CC0.

In case it's useful, I detail below how I created it.

Obtaining the raw data

I started with the BSC5P data from HEASARC, but 95% of the stars in that catalog had no parallax information.

I then searched for an online catalog that could be queried for information. Gaia seemed like a good source, but the query engine is very complicated. I finally found the SIMBAD Astronomical Database, which has an API for obtaining star info by any name you have for that star. I wrote a script capable of querying SIMBAD. Then, using the all the star names obtained from HEASARC's BSC5P, I pulled all data SIMBAD had on each star in the BSC5P.

As a side note, if you wish to automate SIMBAD queries, please keep your queries to 4 or less per second to prevent flooding their system.

Processing the raw data

I wrote another script to process the downloaded SIMBAD data. I found that roughly 50 of the 9110 stars still had missing parallax. It's a huge improvement over 8600+ stars with missing parallax, so I kept it. For that remaining ~50, I eventually manually researched every individual one and added parallax in myself. This is done via yet another script I wrote, which exists purely as an amendment mechanism that modifies SIMBAD data mid-parse-stage to output a single unified catalog.

3D positions

With all stars now having right ascension, declination, and distance, we can estimate coordinates. The only real issue here is uncertainty in distance: some stars have wildly uncertain values (Betelgeuse for example is somewhere between 153 and 196 parsecs away - that's a huge amount of variation). Being 3D however, we cannot place a single star in a range of somewhere and somewhere else - it needs to be in a single location. The compromise in this case is that we discard uncertainty and pretend the star is in the middle of that range (this is stated in the catalog's README as well).

The simplest way I could come up with to create the 3D positions are as follows:

• Create an object in a 3D space at position 0,0,0. We'll call this the center of the ecliptic.
• Align the 3D object with the world's 'forward' direction.
• Set the rotation of the object to the star's right ascension, converted from time units to degrees.
• Rotate the object along the star's declination.
• Move that object along its new forward-facing direction. Distance moved is 1 / parallax, or star distance in parsecs.
• Record the object's new 3D position.

The script that generates the 3D coordinates may be found here. It uses three.js for the 3D calculations.

• This looks handy. Can you detail here how you derived the x,y,z positions and the provenance of all the data used for that. Oct 10 at 6:23
• @ProfRob With a lot of effort :P. For the x,y,z coordinates I create an object in a 3D space at position 0,0,0, facing in the 3D world's base 'forward' direction. I then set the rotation of the object to the star's right ascension, and rotate it along the declination. I then move that object along its new forward direction N amount of parsecs, and record the object's new x,y,z coords. The data was mostly taken from SIMBAD because it allows automated API queries (which I wrote a script for), but that gave incomplete data (esp. parallax). The remaining data was painstakingly researched. Oct 10 at 7:30
• @ProfRob I've updated my answer to contain more detail. Oct 11 at 5:01
• +1 Nice work. For your catalogue to be useful for anything but graphics you must retain: (1) the parallax and it's uncertainty because uncertainties matter in many applications and, if the uncertainty is large, the distance isn't just 1/parallax; (2) the source of the parallax because "Simbad" isn't a source and what Simbad chooses to list as the parallax of a star can change. Oct 11 at 6:33
• @ProfRob Interesting, did not know uncertainty could still be useful. I'll include uncertainty in the next batch of major updates and do some research on the rest. Oct 11 at 18:28

One of the most popular ones known as HIPPARCOS lists parallax which is indicative of distance.