Mujtaba's Log

From CSSEMediaWiki
Jump to: navigation, search

Hi. This is my log page where you can find how I'm progressing in designing the Java Ephemerides API (JEA).


--Sorry I didn’t initially keep a historical log of what I did previously but here is a list of what was done overall. Next logs will hopefully have some dates in them!


[16 -31 July, 2010]:

  • (20 mins)- Spoke with Wal about possible design project to adopt. Wanted to work on an industry related past project but as this wiki is a public one this topic was out of choice. Wal suggested the Ephemerides topic and it sounded very appealing to me but needed to do some research to assess its doability (is not a word, right?)
  • (approx. 5 hrs.)- Did some reading online about ephemerides and NASA’s HORIZON system and how to use it. Tried their Telnet interface (http://ssd.jpl.nasa.gov/?horizons) to have some idea.
  • (unknown hrs.)- private study of design patterns: Bob Martins principles, HF Design Patterns book, and COSC427 wiki
  • (approx 30 mins)- Searched for some good UML drawing & generating tools. Found a nice one called Visual Paradigm UML. See OO tools page.
  • (4 hrs. total)- Decided to try doing the ephemerides project and designed an initial class diagram of the API
  • (1 hr)- Drew the class diagram (from a previous paper sketch) using Visual Paradigm for UML Community Edition and posted it on my wiki design page

[10-11 August, 2010]:

  • (about 6 hrs)- Doing more research online about how to use the JPL ephemeris files (extracting the data). I particularly was looking for some implemented codes in Java. Found many libraries in C & C++, one in Python which was very interesting and which implemented many of the basic methods for doing the calculations, and finally I found one in Java (ftp) but unfortunately only has got basic calculations implemented and would only generate geocentric results. I was looking for something that already has got support for generating topocentric results. Topocentric means that it gives the coordinate values in relation to the user's position on earth. Geocentric values are as if observer was standing in the center of earth. There are formulas to take user's longitude and latitude values and convert the geocentric coordinate values into topocentric values. To add more complexity, there are many types of coordinate systems that are used but I'm basically interested in the more common one which is RA (right ascention) & DE (Declination). Another Java code was also found but I didn't yet have the time to check if it would be useful.

[13 August, 2010]:

  • (around 4-5 hrs): Searching for a java Telnet library in order to use it to connect to Horizon'z telnet service. Found many potential good ones but were not free. Apparently [Appache's commons] is supposed to be good enough. I have tried it and connected to Horizon's system but as I was afraid, it didn't provide the handy capabilities that I was looking for. I was able to query for Mars ephemrides and get result successfully but it was all on the console (one line at a time), duh! I was thinking that even if I had it modified to print to a file, then parsing that file would be just impractical (ScreenCap). I think I should have realized it earlier that connecting to the telnet service and extracting the data directly is just not a feasible idea?

[20-31 August, 2010]:

[1-4 September, 2010]:

  • (approx 1 day): Having a more serious sessions on milling down the design intending to have something ready before the start of term 4. Unfortunately was interrupted (by Mrs. Quake) and the planned changed. During this time I designed the Coordinate class using the strategy pattern and had some thought of design on the the DateTime class, the CelestialBody, and the Ephemeris. I had to go through NASA's Horizon System doc to find what information are required in a request and what kind of ephemeris information are available. I also found out some more complexities like the different time and date formats and the possible different formats of some coordinate systems.


[6-16 September, 2010]:

[20-25 September, 2010]:

  • (approx 2 days): Working on the final design trying hard to get it right and elegant.
Personal tools