These are my attempts at creating natal charts for the NASA rovers Spirit, Opportunity, and Curiosity, based on their "first breaths" on Mars. I've used the principles in Luciano Drusetta's article Extraterrestrial Astrology and my own symbols for Phobos and Deimos.
(A full key to the symbols used in the above diagrams is available.)
An astrological chart indicates the position of the sun, planets, and other places along the ecliptic, or projected to the ecliptic if they are off of it, at a certain time. The natal chart uses the time and place of birth, which is defined as the "first breath" of the subject.
Aries = Sagittarius?
The zodiac, astrologically speaking, has nothing to do with the astronomical constellations in the sky. Instead, the sign of Aries begins at the Vernal Equinox and extends for 30 degrees east along the ecliptic. It is followed by the other signs in their traditional order. (I know that there are other systems but this one seems to be the most common in the western world.) As the vernal equinox moves slightly every year, the astrological zodiac drifts away from the constellations it's based on. On Earth, the vernal equinox has been in Pisces for about 1500 years, hence we are in the "Age of Pisces". Mars is currently in the "Age of Ophiuchus", so its sign of "Aries" is mostly in the constellation of Sagittarius.
The outer ring of each chart depicts the 12 zodiacal signs. The first sign, Aries (), is defined astrologically as beginning at the position of the sun at vernal equinox in the northern hemisphere. The next ring divides each sign into 10° decans, 5° quinances, and individual degrees. The boundary between signs is called a cusp.
The thick ring indicates the position of each planet, the sun, both moons, the Ascendant () and the Medium Coeli () from the birth place at the birth time. (The Ascendant is the piece of the ecliptic that is coming up over the eastern horizon and the Medium Coeli ("middle of the sky") is where the meridian that passes overhead crosses the ecliptic.) These are given as a degree position within each sign plus some number of minutes. The Descendant (180° from the Ascendant) and the Imum Coeli (180° from the Medium Coeli) are not labeled, but are used in some calculations. If a planet is moving in apparent retrograde, that is indicated by a "" symbol. I'm using the astrological symbol for Pluto () rather than the astronomical "PL" symbol.
This ring is also split into 12 houses, whose position is based on the Ascendant and the Medium Coeli - see below for details. The cusps between houses are drawn, and the houses themselves are numbered.
The inner circle indicates the aspects between the various points. Aspects are the angular separations between the various points on the chart (not including the house cusps, the Imum Coeli, or the Descendant, but including the Ascendant and Medium Coeli). Certain angular distances between points have astrological meanings, such as 180° ( opposition), 90° ( square), and 0° ( conjunction). Between the 11 named aspects and their allowed errors (referred to as orbs astrologically), 88 degrees worth of the 180 degrees of possible separation have named aspects, so there's about half a chance that any two bodies are in some sort of aspect with each other. The full list of aspects, degrees, and symbols is included in the symbol key.
To create a natal chart, you need to be able to find the position of the points you care about in relation to your "birth" place, at the time you care about. The open source program Celestia was very helpful to me. It's a space simulator that allows the user to navigate to any place and time, displaying the appearance of celestial objects. Perhaps more importantly, it includes a scripting system based on Lua that exposes much of its data and calculations to a skilled and patient user. (I didn't know Lua when I began this project and I'm not sure I know it now, but my script seems to work.)
I had to do a bit of work before I could really start. This work included figuring out the position of the ecliptic and the signs, orienting the planet, and finding out what the birth times and places were for the rovers.
Celestia includes an "ecliptic" reference frame centered on Mars, but I found that frame to be slightly incorrect. To correct it, I found the date and time of the vernal equinox on Mars (technically, the northern-hemisphere vernal equinox) and used the sun's position at that time as the z-axis unit vector, found the sun's position later in the year, crossed that with z to get the y-axis unit vector, or the normal of the ecliptic, and finally crossed z and y to get the x-axis unit vector. I also found the direction of the north pole, by setting my viewing position to 90 degrees latitude and taking the vector between that point and the center of Mars. These axes are stored in axes.txt.
I also needed the times and locations of the rovers' "births". I've used landing as birth for the rovers. (Perhaps "first boot-up on Mars" or "opening of landing shell" would be more appropriate times, but I couldn't find those.) The landing times (to a precision of 1 minute) and the landing locations (to a precision of hundredths of a degree longitude and thousandths of a degree latitude) can be found at Wikipedia (though I verified them using the fact sheet at NASA's rover pages).
For each rover, I set my observing position and time to her birth place and time and ran my positions.celx script. (If you try this yourself, make sure to change the directory to which that script writes.) This script outputs the vectors from the observer to Mars's two moons, the sun, and the 8 other planets. It also outputs the vector from the center of Mars to the observer, which is called the horizon normal and is used for Medium Coeli and Ascendant calculations. Finally, it moves the observer backwards and forwards in time a day, and gets the vectors to the sun, planets, and moons at those times, for detecting retrograde motion.
The position vectors were fed into a Perl script to calculate the data of the chart. That script transforms all the positions into the corrected reference frame before doing any of its calculations. The data we need are the angular positions of the planets/sun/moons, whether the planets are retrograde, the positions of the houses, and the aspects between the points.
The angles of planets/sun/moons are simple to find - use atan(x,z) to determine their angular position around the ecliptic. To detect retrograde planets, the script compares the "yesterday" and "tomorrow" positions for each planet to the current one, getting the previous and next days' motion around the zodiac. If both motions are backward the planet is marked as "retrograde"; if one is back and the other is forward the script throws an error. (Luckily that didn't happen for either of these charts - but if it did, I'd just need to shrink a constant in the Lua program to check over a shorter period.) I don't bother checking the moons or Sun for retrograde motion, since they can't change apparent direction. I also don't output anything about Mercury, per the suggestions in Extraterrestrial Astrology - it's generally too close to the sun to bother with.
The Ascendant can be calculated as the cross product of the ecliptic normal vector and the horizon normal. The Medium Coeli can be similarly found by crossing the north pole and the horizon normal to get the normal of the meridian, then crossing that with the ecliptic for the Medium Coeli point. The Imum Coeli is simply 180 degrees from the Medium Coeli, and the Descendant is 180 degrees from the Ascendant.
Then there are the houses. There are many systems for creating the 12 houses of the chart, but the most commonly used is Placidus. In Placidus, you find the time at which the Ascendant will be the point that is currently the Medium Coeli, trisect the time between then and now, take the Ascendant at those times, and split the ecliptic between them as the 10th, 11th, and 12th houses. Then you do the same for the time that it's been since the Ascendant was at the current Imum Coeli, using those as the 1st, 2nd, and 3rd houses. The remaining house boundaries (or cusps) are 180 degrees opposite those. I spent a few days doing this wrong (mostly because I forgot to normalize some vectors that really needed normalizing) but I did get it to work eventually. (Placidus doesn't work for points within the Arctic Circle or Antarctic Circle, so don't try it.)
Finally, there are the aspects. This is simply a comparison of the angles of the salient points, to see if their difference matches one of the named aspects within the aspect's tolerance. For instance, the quincunx () aspect is an angle of 150° plus or minus 3°. Spirit has Saturn at -157.557° and Pluto at -6.788° for a difference of 150.769°, so she has Saturn quincunx Pluto with an orb of 0° 46'.
The drawchart.pl Perl script performs these calculations and outputs a hash of named angles, a list of bodies in aspects to each other (and what kind of aspect), and a hash of what bodies are in retrograde. It outputs all of these in Postscript format, as the chart itself is a Postscript program. (The script also outputs the orb of each aspect, though that data is not displayed in the chart.)
To create the actual chart, the output of drawchart.pl is added to the chart.ps file (after the %! header). Drawing the chart is straightforward PostScript list and dictionary parsing, plus my own artistic abilities. The chart is aligned on the page so that the Ascendant points directly to the left.
Actually, I don't really know - I'm not an astrologer, and I don't know the details of interpreting a natal chart (a more difficult skill than creating one). The removal of Mars, Mercury, and Earth's moon and the addition of Earth, Phobos, and Deimos also complicate the interpretation. The Extraterrestrial Astrology article provides some suggestions for how to deal with these issues, which would probably be more meaningful to me if I had more astrological knowledge. If any reader of this page has an interpretation to offer, I'd be happy to see it and maybe even add it to this page.
That said, there are some interesting points that even I can pick out. Both rovers have very similar Ascendants - almost exactly 1 degree apart, but on opposite sides of a cusp. The similarity may be due to the geometry of landing - coming from a similar direction, they'd naturally land on a similar meridian (in celestial terms). The close conjunction of Venus and Pluto on both charts is notable, and it is joined by the Medium Coeli in Opportunity's chart. Opportunity also has a remarkably close conjunction (20 minutes apart) between Uranus and Deimos. (Visually they aren't actually very close, since Deimos's orbit is inclined from the ecliptic. Also, it's hard to tell from the chart, but Uranus is in the 11th house and Deimos is in the 12th.) In the near-month between the landings, Jupiter (sitting at a close opposition from the Ascendant) crossed both signs (Sagittarius to Capricorn) and houses (6th to 7th). And by sun signs, Spirit is an Aquarius and Opportunity is a Pisces.
2012 addendum: With the benefit of hindsight, it's interesting that Spirit has a Grand Cross, which is considered to be an indicator of tension and strife. Spirit lost a wheel in 2006, was trapped by sand in 2009 and ended communication in 2010. Opportunity's T-Square doesn't seem to have had much detrimental effect.
Curiosity's sign is Cancer. I don't see anything particularly notable in its chart.
I intend to create a chart for Sojourner in the near future. Phoenix is in the Arctic Circle of Mars, so the method I'm using here won't work.
I have also drawn a chart for the Huygens landing on Titan.
I'd be happy to hear comments on these charts or my methodology. Please don't send any mail attacking or defending astrology in general, or telling me that it's invalid to cast charts for robots - I did this as a fun intellectual exercise.