Coming soon: Cel URLs v3
Posted: 05.05.2008, 23:50
Celestia 1.6.0 will be introducing a new cel URL version. All cel URLs produced by versions 1.5.0 and 1.5.1 of Celestia were tagged as version 2; Celestia 1.6.0 will create version 3 URLs. Before explaining the reason for the new URL version, let me first make it clear that older cel URLs will still work fine in Celestia 1.6.0. There should be no incompatibilities like the ones between 1.4.1 and 1.5.0. However, version 3 cel URLs will not work in older versions of Celestia. It is possible to add an option to Celestia 1.6.0 that will force it to create version 2 URLs that can be understood by Celestia 1.5.1 and earlier; if there's demand, I'll implement this capability.
The big reason for introducing a new cel URL version is to reduce future compatibility problems not only between Celestia versions, but between different sets of add-ons. The crux of the problem is that we know where objects are located in space only to some limited precision, and our estimates are constantly being refined as new data is collected. Version 2 cel URLs store the viewer's position in Celestia's universal coordimate system, which has an origin at our solar system's barycenter. Suppose you create a cel URL with a nice view of the orbits of the five planets around 55 Cancri. Then at some later point an updated star database based on new data becomes available, and the distance of of 55 Cancri from the Sun is adjusted by 0.01 light years (not at all an implausible amount, as the current uncertainty in 55 Cnc's distance is given by Wikipedia as 0.4 ly.) With this change, your version 2 cel URL becomes useless. But, a version 3 cel URL will likely still work.
The fundamental change between version 3 and version 2 cel URLs is that the new URLs store the observer's position in the current frame. Basically, this means that they are stored relative to the position of the currently followed object. If you created a version 3 cel URL for the 55 Cancri system view while following 55 Cancri (or any one of the planets orbiting it), this URL would work just fine even if the star's position were later modified. Setting the followed object appropriately helps ensure that your cel URLs are future proof. Luckily, the appropriate choice is usually also the obvious choice: whatever the object of interest is in the URL is typically the object that you'll be following (or sync orbiting, etc.)
Another powerful feature of version 3 URLs is the ability to set the time source. The time source of a URL specifies how the time will be set when the URL is activated. There are three options:
- The current Celestia time when the URL was created
- The current Celestia time when the URL is activated
- The current system time when the URL is activated
When combined with the relative coordinates of version 3 cel URLs, time source lets you do some very useful things. You can easily create a 'home' URL: position the viewer at a location on the Earth's surface close to your home, then save a URL with the time source set to 'system time at activation.' There are several spots on my bookmarks toolbar (Qt4 version) with system time cel URLs for various interplanetary missions. With a single click, I'm able to check the current position of Cassini, New Horizons, Dawn, or Messenger.
Version 2 cel URLs also supports relative cel URLs, but with a couple caveats: viewer position is stored at reduced precision, and the time source is effectively always 'Celestia time at activation.' So, the new capabilities of version 3 URLs are really just generalizations and enhancements of existing features.
SVN revision 4318 adds support for a new cel:// URL version. Celestia for all platforms--KDE, Gnome, Mac OS X, Windows, and Qt4--built with the latest code from SVN will support loading both version 2 and version 3 URLs. However, only the Qt4 front-end for Celestia currently supports creating the new cel URLs.
--Chris
The big reason for introducing a new cel URL version is to reduce future compatibility problems not only between Celestia versions, but between different sets of add-ons. The crux of the problem is that we know where objects are located in space only to some limited precision, and our estimates are constantly being refined as new data is collected. Version 2 cel URLs store the viewer's position in Celestia's universal coordimate system, which has an origin at our solar system's barycenter. Suppose you create a cel URL with a nice view of the orbits of the five planets around 55 Cancri. Then at some later point an updated star database based on new data becomes available, and the distance of of 55 Cancri from the Sun is adjusted by 0.01 light years (not at all an implausible amount, as the current uncertainty in 55 Cnc's distance is given by Wikipedia as 0.4 ly.) With this change, your version 2 cel URL becomes useless. But, a version 3 cel URL will likely still work.
The fundamental change between version 3 and version 2 cel URLs is that the new URLs store the observer's position in the current frame. Basically, this means that they are stored relative to the position of the currently followed object. If you created a version 3 cel URL for the 55 Cancri system view while following 55 Cancri (or any one of the planets orbiting it), this URL would work just fine even if the star's position were later modified. Setting the followed object appropriately helps ensure that your cel URLs are future proof. Luckily, the appropriate choice is usually also the obvious choice: whatever the object of interest is in the URL is typically the object that you'll be following (or sync orbiting, etc.)
Another powerful feature of version 3 URLs is the ability to set the time source. The time source of a URL specifies how the time will be set when the URL is activated. There are three options:
- The current Celestia time when the URL was created
- The current Celestia time when the URL is activated
- The current system time when the URL is activated
When combined with the relative coordinates of version 3 cel URLs, time source lets you do some very useful things. You can easily create a 'home' URL: position the viewer at a location on the Earth's surface close to your home, then save a URL with the time source set to 'system time at activation.' There are several spots on my bookmarks toolbar (Qt4 version) with system time cel URLs for various interplanetary missions. With a single click, I'm able to check the current position of Cassini, New Horizons, Dawn, or Messenger.
Version 2 cel URLs also supports relative cel URLs, but with a couple caveats: viewer position is stored at reduced precision, and the time source is effectively always 'Celestia time at activation.' So, the new capabilities of version 3 URLs are really just generalizations and enhancements of existing features.
SVN revision 4318 adds support for a new cel:// URL version. Celestia for all platforms--KDE, Gnome, Mac OS X, Windows, and Qt4--built with the latest code from SVN will support loading both version 2 and version 3 URLs. However, only the Qt4 front-end for Celestia currently supports creating the new cel URLs.
--Chris