Summary of my personal project

I'm working on an project mixing astrology and statistics. It is based on the the work of Michel Gauquelin, which consists to observe planetary repartition of certain planets in social groups. For example, he took about 1500 painters, and showed that the repartition of Venus presents an anomaly.
He used chi square test (statistics) to show that the observed repartition are highly improbable to be due to sole hazard.

My purpose is to apply and extend this method to different kinds of events.

Ephemeris computation

The first piece of software I developed is the "astronomical engine", which performs ephemeris computation.
As a developer, I'm only interested by portable and free (in the sense of the GNU General Public Licence) software. For ephemeris computation, the reference free software is XEphem, developed in C. A close look to the code of XEphem made me decide to develop my own engine from scratch. This led to the development of JEphem, in java, published on www.astrosurf.com/jephem (see this page for the ephemeris computation).

The data model

An other important aspect is the storage of data ; the purpose is to give the user the possibility to store his personal data.
This is done in a relational database (accessible via SQL), which uses an elementary model of "reality". Here is the corresponding class hierarchy :

The application

The aplication permits the user to manage and visualize the data.
I finally decided to develop this software as a web application, using PHP. The development is quite advanced, but still under development.

Snapshots

Here are some examples of pages generated by the program : To do

Before being released, the following work is necessary :
  • Fully implement session management.
  • Either port JEphem in PHP, or wait PHP5 to use the java code (PHP4 is bugged) ; the PHP web application uses a low-level astro engine, based on Meeus' work.
  • Connect the chi square routines to the user interface
  • Develop the user interface permitting the user to make several statistical tests on a group with a single command.
  • Implement the notion of "privacy level" (private, friends, and public) : if the user can store his personal data, he will be able to filter what is displayed.
  • Write a user guide and a site describing the project.