Three Suggestions And A Question

The place to discuss creating, porting and modifying Celestia's source code.
Topic author
Elen Sila
Posts: 4
Joined: 11.09.2011
With us: 13 years 2 months

Three Suggestions And A Question

Post #1by Elen Sila » 13.09.2011, 15:10

I only just joined, and I don't know what forum this thread would be most appropriate in. I do know that I'm a fan of Celestia, and have owned the program for several months now, and have generally enjoyed it greatly. However, there are three features that I think Celestia could be improved by, as well as one clarifying question.

1. There should be an option to move the camera to a chosen object, at a chosen longitude, latitude, and elevation. In order to locate my hometown, I typically set the time to CE 2000 January 01 00:00:00 UTC, then orient the horizontal zenith with the location on the celestial sphere I know my town is supposed to be underneath, based on which celestial hour the prime meridian is located underneath. I find this to be a frustrating workaround; there should be an option to locate yourself directly.

2A. There should be an option to orient the camera "up" and "down" based on the horizontal grid. It's extremely difficult to rotate the camera to get a level horizon for screenshots.
2B. When rotating or panning the camera, the camera should NOT continue moving after you've released the arrow key. This makes it incredibly difficult to orient. You should also be able to control the speed at which the camera rotates.

3. The light-time delay feature. Ah, the light-time delay feature.
3A. The light-time delay feature does nothing but reverse time by the light-time distance to the selected object, while keeping the clock time stationary. So, for example, if I select Venus after sunset, and activate the light-time delay option, the sun will come back up, and Venus will disappear into the daylight.
3B. The light-time delay feature does not calculate the light-time delay to each planet, but instead only calculates the delay to the selected object. Thus, it is impossible to view planetary transits, since only one planet or the other can be at the correct position at the correct viewing time.

My suggestion? The light-time delay should, for the sake of simplicity, simply calculate the light-time delay to each of the eight planets and Ceres, then apply Neptune's light-time delay to all the trans-neptunian objects, and apply Ceres's time delay to all the other main asteroid belt objects. Each planet's light-time delay can then be applied to its moons.

Also, in addition to these three suggestions, I have a question.

Why does Iapetus's orbit increase in inclination dramatically as you run the simulation forward several centuries? Is it supposed to? Or is the system screwing up Iapetus's orbital parameters? No other moon of Saturn has this problem. I haven't checked the moons of other planets.

(Again, I do love Celestia. These are basically my only complaints.)

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Re: Three Suggestions And A Question

Post #2by t00fri » 13.09.2011, 15:58

Elen,

welcome to this forum!

3. The light-time delay feature. Ah, the light-time delay feature.

I coded the light-time delay feature a long long time ago (2002?). You may find many useful discussions and examples in the data base of this forum in the course of time (use search engine).

The feature really was implemented mainly for a rather special purpose: to observe (or do precision timings of) mutual events (eclipses...) among moons of Jupiter, Saturn,...from earth, The event times from specialized precision catalogs are in UT (earth based!). For the event to match the visualisation on the display, the LT feature is VERY handy and works perfectly. You dial the predicted UT time of the event, activate LT, center on the celestial object concerned and zoom in with shift+mouse_left from Earth -> Bingo .

Here are a couple of such mutual events. The effect of LT is striking indeed:

1) The /annular/ eclipse shadow of Europa on Io (2e1A)
on Dec. 27 2002

Image

2) The /total/ occultation of Europa by Callisto (4o2T) on
Dec. 15 2002

Image

We used those precision timings as highly quantitative tests of the precision of our Celestia orbits!

I should add that more intricate implementations of Special Relativity (SR) would frequently cause some downside effects for the simulation and would need a lot more time to be implemented consistently.

A main issue being the observer in Celestia, who presently is a massless "superman", being able to move with a speed far above the speed of light. With explicit SR implemented, lots of space action in Celestia would have to slow down dramatically due to the finiteness of the speed of light ;-) etc.

Fridger
Last edited by t00fri on 13.09.2011, 17:03, edited 1 time in total.
Image

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: Three Suggestions And A Question

Post #3by selden » 13.09.2011, 16:23

Elen,

Welcome to the forum!

Several of your comments are discussed in the FAQ, which is available at the top of the Help Forum, or directly at viewtopic.php?f=15&t=14387

1. There should be an option to move the camera to a chosen object, at a chosen longitude, latitude, and elevation.

(FAQ: Features, #5 -- act as planetarium) You can use the menu Navigation --> GoTo Object to specify lat, long and altitude.

2A. There should be an option to orient the camera "up" and "down" based on the horizontal grid. It's extremely difficult to rotate the camera to get a level horizon for screenshots.

(FAQ: Features, #5 -- act as planetarium) After going to the specified lon,lat,alt, type a Ctrl-G if you're using Windows to land on the surface with the viewpoint looking toward the level horizon.

2B. When rotating or panning the camera, the camera should NOT continue moving after you've released the arrow key. This makes it incredibly difficult to orient.
This is a result of how keyboards work. While you're holding down a key, the program receives a continuous stream of individual keycodes, not the fact that a key is down (otherwise N-key rollover wouldn't work -- what happens when multiple keys are down while you're touch typing. This is implemented in the keyboard itself, not in the computer software. Watch what happens while you're editing text to see what I mean). As a result, Celestia does not know when you released a key, only when it received the last keycode. Each keycode starts an individual movement, but there's no way to know for sure when to stop moving except by receiving another keycode. A quick alternation of opposing arrow keys can be used to stop almost immediately, although it's not perfect.
You should also be able to control the speed at which the camera rotates.
This can be set in celestia.cfg, which is a plain text file in Celestia's main directory. Use your favorite text editor (like Notepad or emacs) to change the line
RotateAcceleration 120.0
to change the effect of the arrow keys.

I see Fridger has already commented on the light-time feature. (He wrote it.)

Why does Iapetus's orbit increase in inclination dramatically as you run the simulation forward several centuries?

Celestia's catalog file data\solarsys.ssc contains this comment:
# The orbits of the following Saturnian satellites are from Gerard Dourneau
# (1987), "Observations et etude du mouvement des huit premiers satellites
# de Saturne":
# Mimas, Enceladus, Tethys, Dione, Rhea, Titan, Hyperion, Iapetus
While I don't know for certain, I suspect that the algorithm that's used is accurate only for a limited number of years. Once you're past that point, its results aren't very good. A Web search locates several papers discussing the algorithm, but I didn't take the time to read them.

I hope these comments help a little.
Selden

Topic author
Elen Sila
Posts: 4
Joined: 11.09.2011
With us: 13 years 2 months

Re: Three Suggestions And A Question

Post #4by Elen Sila » 14.09.2011, 00:09

selden wrote:
1. There should be an option to move the camera to a chosen object, at a chosen longitude, latitude, and elevation.

(FAQ: Features, #5 -- act as planetarium) You can use the menu Navigation --> GoTo Object to specify lat, long and altitude.

... Oh. Damn. Never even noticed that before. Thanks.

2A. There should be an option to orient the camera "up" and "down" based on the horizontal grid. It's extremely difficult to rotate the camera to get a level horizon for screenshots.

(FAQ: Features, #5 -- act as planetarium) After going to the specified lon,lat,alt, type a Ctrl-G if you're using Windows to land on the surface with the viewpoint looking toward the level horizon.

That changes the elevation. Also, the camera still rotates when moving the view, or tracking an object.

HOWEVER, I have just a few moments ago discovered a way of circumventing the former of the two problems. If you go directly to the planet's surface, focus on the planet, then hit Control+F to activate Alt-Azimuth mode, using exclusively the arrow keys should keep you aligned. The only downside is that Alt-Azimuth mode seems to get thrown off if you try hitting both up-down and side-side arrows at the same time for diagonal movement.

I have not yet tested whether Alt-Azimuth mode keeps the camera steady while tracking an object.

EDIT – I have now tested this method, and Alt-Azimuth mode does NOT keep the camera level while tracking an object across the sky. :(
EDIT II – Alt-Azimuth mode also does not keep the camera level while "centering" on objects.

I therefore maintain my recommendation that a "keep camera aligned horizontally" option be added to Celestia, which would keep the camera level with the horizon at all times.

2B. When rotating or panning the camera, the camera should NOT continue moving after you've released the arrow key. This makes it incredibly difficult to orient.

This is a result of how keyboards work. While you're holding down a key, the program receives a continuous stream of individual keycodes, not the fact that a key is down (otherwise N-key rollover wouldn't work -- what happens when multiple keys are down while you're touch typing. This is implemented in the keyboard itself, not in the computer software. Watch what happens while you're editing text to see what I mean). As a result, Celestia does not know when you released a key, only when it received the last keycode. Each keycode starts an individual movement, but there's no way to know for sure when to stop moving except by receiving another keycode. A quick alternation of opposing arrow keys can be used to stop almost immediately, although it's not perfect.

Yeah, I've been using that method for a while. I had hoped it would be possible to make things easier. Oh well.

You should also be able to control the speed at which the camera rotates.

This can be set in celestia.cfg, which is a plain text file in Celestia's main directory. Use your favorite text editor (like Notepad or emacs) to change the line
RotateAcceleration 120.0
to change the effect of the arrow keys.

:/
When I try to save the file, it keeps telling me to check if the file is open in another program (which it's not). I'll try restarting my computer, and then report back here. In case it still doesn't work, what might the problem be?
EDIT – I restarted my computer, and I still wasn't able to save the edited file. I didn't have Celestia open either time, so I really don't know why it's not letting me do this.
EDIT II – it turned out to be an issue with my permissions. I fixed it.


Return to “Development”