| Who's Online |
There are currently, 15 guest(s) and 1 member(s) that are online. You are an Anonymous user. You can register for free by clicking here
Record connected is 273 on 2008-03-24 04:23 PM.
|
|
| MyStars3! Design Overview |
MyStars3! News
MyStars3! is still in development, but much of it is already complete and some portions of the core are already being used in other products we have developed for clients.
MyStars3! will be a free upgrade for anyone who has registered a copy of MyStars! since Jan 1, 1999!
When it becomes available, it will be announced on this site.
It will also be announced by email to all members of this site that have subscribed to our [MyStarsNews] mailing list. To subscribe to the mailing list, please log in, click on the 'control panel' link, then go the the mailing list section of your settings.
This page is included to describe a bit about what to expect from MyStars3! when it becomes available. More information will be added as time permits.
|
MyStars3! Design Overview
From the beginning of development, it occurred to me that there where many requirements to be satisified in order to produce an appropriate followup to MyStars! 2.7.
MyStars3! had to be extremely and verifiably accurate, as well as fast, yet also extremely well structured so as to be easily expandable in the future.
I came upon the concept of layers, with a supurb 3D math engine in the centre, and a unique gui on the outside.
Thus is the structure of MyStars3!
|
1) The Core Layer
The core layer of MyStars3! is a new math engine we developed specifically for doing fast astronomical calculations by taking advantage of trigonometry and matrix programming techniques in ANSI Standard C++.
It is buried deep within MyStars3! so as to keep the complexities of the math hidden from the MyStars! user.
Internally, angles are represented using 128bits.
Then, the math engine is built to manipulate coded pairs of angles such as LatLngs, DecRtas and AltAzis. This allows superfast conversions of coordinates from one place or time system to another with impeccable accuracy.
A special portion of code is then included to manipulate orbits.
All algorithms used are fully documented, using known formulae and constants specified by the IAU, Meeus, and from other recognized sources.
Finally, the result is supercharged by using hand-optimized assembly language programming, where possible, to manipulate the resultant matrices.
The assembly portion dramatically enhances the speed of the math calculations, yet the ANSI C++ version remains fully portable across many computer platforms and operating systems.
The math engine's speed and accuracy are formidable.
|
1a) Time [new 2008/12]
Within the core, points in time are now represented as float seconds before/after Jan 1 2000, and using using 64bits. Using this method we have gained various advantages, including the elimination of 'clock drift'.
Date-time entry is also enhanced.
In MyStars! 2.7, calendar dates where assumed to be Julian dates until the end of Thursday, 4 October 1582 which where immediately followed by Gregorian Dates starting Friday, 15 October 1582 (try it!). But for people doing archeoastronomical research in countries which kept the Julian calendar later than 1582, historical date entry required manual conversion before being entered in MyStars!
MyStars! 3.0 now supports date entry and display using Julian calendar dates, Gregorian Calendar dates, or the mixed method above. For those doing archoastronomical research using religious texts, MyStars! 3.0 will also supports Hillel (Hebrew) and Islamic calendar date entry and display!
Times may be entered as universal time, standard time (for any zone), wall time (for any zone - recognizing daylight/summer rules), or mean solar time.
No matter what your date/time requirements, MyStars! 3.0 should be able to handle them.
|
2) The Data Layer
The data layer, wrapped around the core layer, is an internal database used for holding standard astronomical catalogues and tables. The database currently recognizes many of the most common catalogues in the astronomy field such as the Bright Star Catalogue, the Hipparcos catalogue, and the new NGC catalogue, as well as others. All catalogues and tables are documented, and are provided as the unaltered original files, or are easily downloadable as the original files from specified astronomy websites on the web.
Many more catalogues will be supported in the future, as the need arises.
The data layer loads this data on demand, yet maintains the data internally in the core-layer math format. In this way, the data can be directly manipulated using the core-layer math engine, for speed and accuracy.
The data layer, as well, is written fully in ANSI Standard C++, for future portability, and optimized using assembly language programming, where possible, to enhance its speed.
Together, the core and data layers, will be the basis of several products from us, on several platforms, over the next few years.
|
3) Locations and Timezones [new 2008/12]
One of the weaknesses of MyStars! 2.7 was the lack of a comprehensive list of geographic places names, as well as a proper way of handling numerous changing timezone rules in various places.
MyStars! 3.0 will be using two free databases to resolve these issues.
The geonames database at http://geonames.org is an open database of world placesnames with lat/lng as well as other data for each place. Its updated daily, and users are free to contribute information in order to make it correct and complete. MyStars! 3.0 will now be using these geonames files. Users can then upgrade or augment their placename files whenever they wish simply by downloading the latest files from geonames.org.
The Olson zoneinfo database at http://www.twinsun.com/tz/tz-link.htm is a managed database of world timezone information. Its supplimented whenever new timezone rules around the world are enacted. It also has historical timezone rules often going back to the dates when cities adopted standard time and moved away from local solar time. MyStars! 3.0 will now be using these zoneinfo files. Users can then upgrade their timezone rules files whenever they wish simply by downloading the latest files from www.twinsun.com.
MyStars! 3.0 will be fully aware of the exact moment a new timezone rule specified in a file comes into affect for any zone within the database, and will automatically display the correct adjusted wall time at all times, and even show historical times (using old timezone rules) when relevent. This will allow better correlation to real events in the past and future than other product versions.
|
4) OpenGL and Stereographic
Most scientific applications written in the past few years use either openGL or Microsoft's Direct3D for displaying scientific or graphical images; and most video cards support these well.
For MyStars3! we decided to keep things hardware independant, and went with the cross-platform openGL library.
Using a 3D interface, an application does the spacial (3D) calculations, like placing everything into a 3d model, then these values are passed to the video card, as is, to be drawn. The 3D positions are then interpretted in hardware and displayed on the screen, as if a camera had taken a photo of the model. This gives very accurate representations.
But the most popular way of representing sky maps uses a projection called 'stereographic'. Besides other advantages, stereographic projections allow for super wide-angle 180+ degree views. This is essential so that 'full-sky' maps can be generated.
Its like taking a photo of the model, but with a 'fish-eye' lens on the camera.
Unfortunately, neither openGL, nor Direct3D support this type of 'lensing'.
So we use openGL, but do part of the work ourselves to get our 'lensing effect'. The results give us stereographic openGL, and are great.
|
Created on 2006-12-17 09:09 PM by dpatte
Updated on 2008-12-12 02:35 PM by dpatte
|
|
|
|