I am not sure the main line can do what you describe, but I have some tools I just got done bringing forward that will.
I do some of the same sort of stuff when I am charting exploration or migration paths between stars.
Sometimes it helps to only see what you are concentrating on.
Since it appears you are on Linux, You will need to use wine, Win in a VM, or compile yourself.
Start with a copy of the current source from
Github since it has up to date data.
Put the archive somewhere and extract.
Grab the archive from comment #8 in
betwixt to get the needed functions.
I can post the source to my mods if needed for you to compile yourself.
Extract into the celestia directory.
Save this script in the scripts directory. {It is a crude script cribbed from some of my own tinkering.}
- Spoiler
Code: Select all
-- Janus
-- Demonstration of selected stars only.
MarkWht = "#FFFFFF";
MarkRed = "#FF0000";
MarkOrn = "#FFAA00";
MarkGrn = "#00FF00";
MarkBlu = "#0000FF";
MrkBlue = "#000080";
MarkYel = "#FFFF00";
MarkYlw = "#C0C0FF";
MarkGrb = "#00FFFF";
local target1 = celestia:getselection();
local target1name = target1:name();
target1:mark(MarkRed, "triangle", 7)
local target2dex = celestia:betwixdex(target1name)
local target2 = celestia:getstar(target2dex)
local target2name = target2:name();
local dist = celestia:betwixt(target1name, target2name)
celestia:print("Nearest neighbor is:" .. target2name .. " @" .. dist .. " LY",5)
wait(5)
local lightyears = dist + dist + 1
-- local neighbors = celestia:benear(target1name, lightyears)
local neighbors = celestia:benear(target1name, 100)
local neighborcount = #neighbors; -- should still be getn, note to self to fix this in lua source.
celestia:print("Neighbor count is " .. neighborcount, 5)
wait(5)
for loopcount = 1, neighborcount do
local neighbor = celestia:getstar(neighbors[loopcount])
neighbor:unmark()
local neighborname = neighbor:name()
neighbordist = celestia:betwixt(target1name, neighborname)
celestia:print("Stellar neighbor " .. loopcount .. " of " .. neighborcount .. " is a " .. neighbor:spectraltype() .. " : " .. neighborname .. " @" .. neighbordist .. " LY",0.25)
startype = string.sub(neighbor:spectraltype(), 1, 1)
-- You can use sub string functions to get subclass or sequence.
-- For instance, A9 is the smallest A, while and A0 is the largest.
-- starsequence = string.sub(neighbor:spectraltype(), 2, 2)
-- Then modify marker size according to sequence number. {starsize = 10 - starsequence}
-- if startype == "A" then neighbor:mark(MarkBlu, "circle" , starsize) end
if startype == "G" then neighbor:mark(MarkYel, "circle" , 2) end
if startype == "F" then neighbor:mark(MarkWht, "circle", 2) end
if startype == "A" then neighbor:mark(MarkBlu, "circle" , 2) end
wait(0.25)
end
Start by turning off all display options in render:View options, except markers.
Launch celestia, hit enter, type "SOL" and enter, then 'C' for center and 'F' for follow.
Then run the above script, it will take a while, it marks over 2,000 stars. {15-30 Minutes depending.}
The basic idea of how to modify is included in the script.
It is crude because I cribbed it in a hurry from other sources.
When it is done it will resemble this:
G stars are yellow
F stars are white
A stars are blue.
Your display may be different since as you can see, the FOV is set to 61' for a wider view.
Janus.