Page 1 of 1

A humble tool for creating Celestia systems

Posted: 22.03.2020, 17:55
by Sirius_Alpha
Over about the past year I have been developing a programme to create an updated catalogue of extrasolar planets, here. I have been continuously improving over the past year, but its structure was very limited and cumbersome, like a cathedral built without a plan, and only as a result of continuous expansions on a modest house. It was not designed to handle multi-stellar systems, and while I finally managed to get it to handle binary systems, it still left dozens of 3+ stellar systems needing to be done manually, leaving them vulnerable to having heterogeneous treatment and parameter determination, much to my own ire. In an effort to simplify and streamline this effort, I have re-written the programme in a more generalized way that now handles arbitrarily high number of stars, with planets around any of the stars or barycenters. With this new programme now generalized, I feel like it is at a point where it can be made public for all to use for whatever fictional or real stellar/planetary systems you wish.

This programme automatically determines system hierarchies and orbits where possible. If no orbit is defined for a pair of stars, it will construct an orbit from the RA and Dec of those stars. System parameters (both orbital and rotational) are converted from sky-plane to Celestia's internal reference plane through the formulae given in Grant Hutchison's starorbs.xls spreadsheet. However, all discussion about these parameters in this post will be with respect to the plane of the sky. Stellar oblateness has been estimated from v sin i (or calculated values for it if the rotation period is known) through the methods given in this document (pdf).

Missing stellar information is taken from Mamajek's star relations. In multi-stellar systems, star mass ratios are used to set the respective semi-major axes, of course, but it also incorporates the masses of the stellar component's planets. This is true of circum-multiple planets as well. For "normal" planetary systems this won't really matter, but in binary systems where there's a high-mass companion to a low-mass star -- HD 41004 being an example -- it provides the opportunity to increase the accuracy.
Stellar rotation axes follow the following prioritization logic:
1) The inclination of the star's rotation axis is stated explicitly in the input. Barring that,
2) If the star is part of a tight binary system with an orbit inclination defined, then the stars are set as tidally locked into (pseudo-)synchronous rotation, solving for the rotation axis. Barring that,
3) The inclination of the star's rotation axis is set to the inclination of the innermost transiting planet's orbit. If there is no transiting planets,
4) The inclination of the star's rotation axis is set to the average inclination of all planets with measured orbital inclinations.
5) If there are no such planets (as will often be the case for radial-velocity systems). No attempt to determine the rotation axis of the star is made.

For many planets, especially those discovered with Doppler spectroscopy, the inclination and ascending node (the "3D parameters") of these planets are not known. Planet 3D parameters follow the following prioritization logic:
1) If the planet's full 3D orbit is specified, these values are taken.
2) If a planet is specified as a transiting planet through one of several options, the inclination is set to 90.
3) In multi-planet systems, a "average system plane" is calculated from the planets with 3D orbit parameters. This is assigned to the planets without them to maintain coplanarity.

Because this script was written with the purpose of creating extrasolar planet systems from literature, it is centered around that task. Certain considerations have not been taken into account such as spacecraft, specular maps, bump maps, custom night-textures for planets, etc. Because the number of known extrasolar moons is somewhat restricted, there has been very little testing beyond "Well it works for Kepler-1625b-i." It is a programme I wrote myself in Visual Studio, so your anti-virus software will likely note that it's an unrecognized programme.

Added after 4 minutes 32 seconds:
To start, information goes into the leftmost pane, and STC and SSC file is produced in the middle and right panes.

You can write custom information into the left to produce whatever you want, or to get started, you may invoke example systems from "Load Examples"

You will need to update (File -> Update) to produced the .ssc or .stc text. This is done automatically when loading examples. You may also turn Auto-Update on (Options -> Auto-Update) and it will try to create .ssc and .stc information whenever you make a change. This can be kind of cool to play with but because it processes a lot of bad information while writing in the left pane, there's a chance it could throw an error that I haven't accounted for, causing it to crash. I think I've accounted for just about everything though and so the auto-update should run smoothly.

Once you are satisfied, you may copy the text from the .stc and .ssc panes or export them as their own .stc and .ssc files (File -> Export Celestia Files). They will appear in the directory you have the CelestiaWriter.bat file in with the file format
"" or "..._Planets.ssc".

Posted: 22.03.2020, 18:19
by Sirius_Alpha
Feedback and FAQ's.

Can you make this open source?
(496.36 KiB) Downloaded 59 times

Posted: 28.03.2020, 19:21
by Sirius_Alpha
Some improvements:

1. For single-transit planets (as are a frequent case for some TESS planet candidates), we sometimes do not have an orbital period or semi-major axis. But we do have a transit duration. You may now use "Transit_Dur" to specify a transit duration, which will then be used to calculate an orbital period, based on the radius of the star. Different values of the impact parameter "b" will modify this accordingly to match the geometry of the transiting system. A new example system has been added to the CelestiaWriter to demonstrate this, TOI-1642.

2. An issue in the equilibrium rotation rate calculation prevented masses from being determined from the RV semi-amplitude, "K_RV." This has now been fixed. A new example system has been added to the CelestiaWriter to demonstrate this, HD 19916.

3. An issue brought to my attention with operating systems on computers in regions that use commas as the decimal separator prevented the output .ssc and .stc files from being read correctly by Celestia. I included a bit of code to replace all commas with periods. Since I do not live in such a region, I am not able to test this to ensure it is correct, unfortunately.

Added after 49 minutes 43 seconds:
Update: The comma/decimal problem is persisting. I am still unsure how to address this. I will need to study the issue some more.

Posted: 28.05.2020, 13:21
by Tegmine
I keep getting an error about extraction. It keeps saying "Parsing Filters is unsupported."

I'm running on linux if it helps.

I was hoping to find something like this. All I have is the VERY old System Maker (which was once on CM, but vanished a long time ago.) For some reason, I can't get it to work, even though I'm using the latest version of Wine. I hope I can get this up & running (with help).


Posted: 28.05.2020, 14:46
by onetwothree
You need to install nonfree unrar application. And then wine mono to run this .net application.

Posted: 28.05.2020, 16:15
by selden
The Windows version of 7-Zip (which is free) has no problems reading those .RAR files. If you haven't already, you might give the Linux version of 7-Zip a try.

Posted: 28.05.2020, 20:40
by Tegmine
Many thanks, sir! I shall!


Posted: 15.07.2020, 17:20
by The Minmus Derp
Is it possible for you to put the thing into a .zip file instead of a .rar file? I can't seem to open those.

Posted: 15.07.2020, 17:30
by LukeCEL
Yes, but the bigger problem is that these are Windows executables (and do not work for macOS).