Sitrec Night Sky and Starlink Development

  • Added file rehosting (if logged in) on permalink creation
  • Rehosts current Celestrack Starlink TLE
This is a pretty major upgrade. If you drag and drop any number of KML/KMZ files, and/or one TLE file, then when you click "Permalink" it will rehost the files on Metabunk.org and include the links in the generated URL (which I'll eventually be replacing with a .JSON save file).

It's a bit rough right now, doing the rehosting silently, and not showing errors (unless you look in the DevTools console). I shall improve it, but I'm working on something else for the next couple of days.

If you don't upload a TLE it rehosts the current TLE - which means it will continue to work the same after that gets updated. You can see this if you just hit "Permalink" with no changed, you'll get a permalink, like https://www.metabunk.org/u/LDx3hU.html
Code:
https://www.metabunk.org/sitrec/?sitch=nightsky&data=~(olat~38.67~olon~-121.18~lat~38.67~lon~-121.18~alt~822~startTime~%272023-11-28T17*3a00*3a49.098Z~az~6.2~el~9.8~fov~32~p~(x~2032347.51~y~19437577.3~z~23271391.24)~u~(x~0~y~1~z~0)~q~(x~-0.395946036285361~y~0.03705967801865249~z~0.015995043647108794~w~0.917386219208569)~f~1053~pd~false~ssa~false~sfr~false~ssn~false~rehostedFiles~(~%27https*3a*2f*2fwww.metabunk.org*2fsitrec-upload*2f1*2fstarLink-2023-11-28-367db6cb024819cfea78ecb07348cad2.txt)~rhs~true)_

The starLink-2023-11-28-367db6cb024819cfea78ecb07348cad2.txt is the rehosted file, which you can see in
https://www.metabunk.org/sitrec-upload/1/starLink-2023-11-28-367db6cb024819cfea78ecb07348cad2.txt

(The /1/ there is the user number, each user gets their own upload/rehosting folder, so I anticipate /15857/ cropping up :)
 
Minor update:
  • Added build date in top right.
2023-11-28_09-49-06.jpg
That's so I can make sure I know what version a screenshot or video comes from, for debugging.
 
Hi Mick, great app!

Would it be possible to add a feature for users to choose their own time zone? (It currently displays time in CET and UTC only, it appears.)

Also, it would be really cool to have the ability to track the International Space Station (ISS) in nightsky.

Finally, what are the odds of activating 3D mountain/terrain formations, possibly limited only to the 'Look View' window? :)

Thanks!
 
Hi Mick, great app!

Would it be possible to add a feature for users to choose their own time zone? (It currently displays time in CET and UTC only, it appears.)

Also, it would be really cool to have the ability to track the International Space Station (ISS) in nightsky.

Finally, what are the odds of activating 3D mountain/terrain formations, possibly limited only to the 'Look View' window? :)

Thanks!
Thanks!

The time zone is your computer's time zone - but adding a selectable time zone would be good.

You can drop in a new TLE, but I should probably add the ISS always, as it's a common-ish UFO.

Terrain is currently limited to specific sitches, but I plan on adding to more generally.
 
Is there a way that Sitrec shows flaring when other sources seem to indicate that it should not be active? For example, on 21 November 2023 ENY3567 reported lights over Hayes Center VOR at 0343Z (the Zulu date is 22 Nov). The sun's altitude is -59.38 degrees and in-the-sky.org shows no Starlink flaring. Siterec, however, shows significant flaring to the left of the aircraft. I thought at first that it could be due to the plane's altitude (34,000 pressure altitude), but Sitrec still shows it at ground level. Any guidance would be really appreciated. Thank you!
 
Is there a way that Sitrec shows flaring when other sources seem to indicate that it should not be active? For example, on 21 November 2023 ENY3567 reported lights over Hayes Center VOR at 0343Z (the Zulu date is 22 Nov). The sun's altitude is -59.38 degrees and in-the-sky.org shows no Starlink flaring. Siterec, however, shows significant flaring to the left of the aircraft. I thought at first that it could be due to the plane's altitude (34,000 pressure altitude), but Sitrec still shows it at ground level. Any guidance would be really appreciated. Thank you!
Can you post a permalink to this setup? Make sure you are logged into Metabunk (i.e. this). Set it up with the flare showing when you think they perhaps should not, click on "permalink" and then copy the URL.
 
I was able to resolve the sun altitude when I realized the website incorrectly converted the time to GMT with daylight savings time.
What website, Sitrec?

GMT is is technically UTC+0 (i.e. it's the same as UTC). One problem is that people refer to UK time as GMT regardless of the time of year. GMT is the correct time in the UK only in winter. British Summer Time (BST) is UTC+1 and GMT+1.
 
In-the-sky still shows no flaring though. Could it be that it calculates from ground level rather than 34,000MSL?
No, flares would be visible from ground level. In-the-sky is just doing it wrong (based on it not lining up with observed reality)

It's possible they use a WGS83 sphere for line-of sight tests. This will be inaccurate, especially in the north, where the effective radius of the earth shrinks by up to around 1/300th (1/298.257223563).

I deliberately use the smaller radius as a sphere check for lines of sight (camera to satellite, satellite to sun). This overestimates what is flared and visible by itself, however I then render the Earth as a oblate spheroid, so it will obscure things correctly.

A more significant issue might be refraction. When objects are close to the horizon they are raised up by 0.5 degrees or more (when you see the moon set on the ocean, it's geometerically obscured by the earth). But correcting for that (which I don't currently do) would just make MORE satellites visible - and seems not to be needed in any of the cases.
 
What website, Sitrec?

GMT is is technically UTC+0 (i.e. it's the same as UTC). One problem is that people refer to UK time as GMT regardless of the time of year. GMT is the correct time in the UK only in winter. British Summer Time (BST) is UTC+1 and GMT+1.
No it was dramarch.bitbucket that kept the extra hour in their conversion. Suncal.org did it properly.
 
Bug: Satellites not showing for me
Odd, it works fine here in all the different browsers, same version/date.

Does this link give you a valid TLE file?
https://www.metabunk.org/sitrec/sitrecServer/proxy.php?url=https://celestrak.org/NORAD/elements/supplemental/sup-gp.php?FILE=starlink&FORMAT=tle

If so, can you run it with Dev Tools and copy the console output.
(Chrome: Menu -> More tools -> Developer tools, console tab)

It should look like this:
Code:
Running on https://www.metabunk.org/sitrec/?sitch=nightsky
index.168cfdd3b9ef09c89669.bundle.js:2 Not running on localhost
index.168cfdd3b9ef09c89669.bundle.js:2 SITREC_ROOT = https://www.metabunk.org/sitrec/
index.168cfdd3b9ef09c89669.bundle.js:2 SITREC_SERVER = https://www.metabunk.org/sitrec/sitrecServer/
index.168cfdd3b9ef09c89669.bundle.js:2 setNodeMan
index.168cfdd3b9ef09c89669.bundle.js:2 Instantiating CNodeManager
index.168cfdd3b9ef09c89669.bundle.js:2 registerNodes
index.168cfdd3b9ef09c89669.bundle.js:2 SITREC START
index.168cfdd3b9ef09c89669.bundle.js:2 Three.JS Revision = 159
index.168cfdd3b9ef09c89669.bundle.js:2 >?sitch=nightsky
index.168cfdd3b9ef09c89669.bundle.js:2 CNodeDateTime - par.frame = 0 Sit.fps = 30 Sit.simSpeed = 1 Sit.startTime = 2024-02-13T16:31:47.322Z
index.168cfdd3b9ef09c89669.bundle.js:2 PST
index.168cfdd3b9ef09c89669.bundle.js:2 Window inner size = 2133,1065
index.168cfdd3b9ef09c89669.bundle.js:2 START Load Assets
index.168cfdd3b9ef09c89669.bundle.js:2 >>> loadAsset() Loading Started: https://www.metabunk.org/sitrec/sitrecServer/proxy.php?url=https://celestrak.org/NORAD/elements/supplemental/sup-gp.php?FILE=starlink&FORMAT=tle
index.168cfdd3b9ef09c89669.bundle.js:2 START Location Request
index.168cfdd3b9ef09c89669.bundle.js:2 <<< loadAsset() Loading Finished: https://www.metabunk.org/sitrec/sitrecServer/proxy.php?url=https://celestrak.org/NORAD/elements/supplemental/sup-gp.php?FILE=starlink&FORMAT=tle id=starLink
index.168cfdd3b9ef09c89669.bundle.js:2 parseAsset(https://www.metabunk.org/sitrec/sitrecServer/proxy.php?url=https://celestrak.org/NORAD/elements/supplemental/sup-gp.php?FILE=starlink&FORMAT=tle,starLink,<buffer>)
index.168cfdd3b9ef09c89669.bundle.js:2 DONE Parse https://www.metabunk.org/sitrec/sitrecServer/proxy.php?url=https://celestrak.org/NORAD/elements/supplemental/sup-gp.php?FILE=starlink&FORMAT=tle
index.168cfdd3b9ef09c89669.bundle.js:2 Flagging initial starlink file
index.168cfdd3b9ef09c89669.bundle.js:2 >>> loadAsset() Loading Started: ./data/nightsky/IAU-CSN.txt
index.168cfdd3b9ef09c89669.bundle.js:2 <<< loadAsset() Loading Finished: ./data/nightsky/IAU-CSN.txt id=IAUCSN
index.168cfdd3b9ef09c89669.bundle.js:2 parseAsset(./data/nightsky/IAU-CSN.txt,IAUCSN,<buffer>)
index.168cfdd3b9ef09c89669.bundle.js:2 DONE Parse ./data/nightsky/IAU-CSN.txt
index.168cfdd3b9ef09c89669.bundle.js:2 >>> loadAsset() Loading Started: ./data/nightsky/BSC5.bin
index.168cfdd3b9ef09c89669.bundle.js:2 <<< loadAsset() Loading Finished: ./data/nightsky/BSC5.bin id=BSC5
index.168cfdd3b9ef09c89669.bundle.js:2 parseAsset(./data/nightsky/BSC5.bin,BSC5,<buffer>)
index.168cfdd3b9ef09c89669.bundle.js:2 DONE Parse ./data/nightsky/BSC5.bin
index.168cfdd3b9ef09c89669.bundle.js:2 RESOLVED Local Lat, Lon = 38.67 -121.18
index.168cfdd3b9ef09c89669.bundle.js:2 WAIT Load Assets
index.168cfdd3b9ef09c89669.bundle.js:2 FINISHED Load Assets
index.168cfdd3b9ef09c89669.bundle.js:2 Setup()
index.168cfdd3b9ef09c89669.bundle.js:2 ++++++ SituationSetup
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: defaultLights {"brightness":100}
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: lookCamera {"fov":10}
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: ptz {"az":6.2,"el":9.8,"fov":32,"roll":0,"showGUI":true}
index.168cfdd3b9ef09c89669.bundle.js:2 MAKE PTZ lookCamera, quaternion = 0
index.168cfdd3b9ef09c89669.bundle.js:2 Adding CONTROLLER PTZUI to lookCamera
index.168cfdd3b9ef09c89669.bundle.js:2 FACTORY Making a ControllerPTZUI id= lookCameraPTZ
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: lookPosition {"fromLat":51.48,"fromLon":-3.16,"fromAltFeet":822,"fromAltFeetMin":0,"fromAltFeetMax":55000}
index.168cfdd3b9ef09c89669.bundle.js:2 Adding CONTROLLER UIPositionLLA to lookCamera
index.168cfdd3b9ef09c89669.bundle.js:2 FACTORY Making a ControllerUIPositionLLA id= CameraLLA
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: mainCamera {"far":80000000,"startCameraPosition":[2032347.51,19437577.3,23271391.24],"startCameraTarget":[2032292.18,19436849.64,23270707.53]}
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: mainView {"left":0,"top":0,"width":0.5,"height":1,"background":"#132d44"}
index.168cfdd3b9ef09c89669.bundle.js:2 SituationSetup: lookView {"left":0.5,"top":0,"width":0.5,"height":1,"ptzControls":true}
index.168cfdd3b9ef09c89669.bundle.js:2 Setup2()
index.168cfdd3b9ef09c89669.bundle.js:2 ++++++ SituationSetup
index.168cfdd3b9ef09c89669.bundle.js:2 Finalizing....
index.168cfdd3b9ef09c89669.bundle.js:2 addAlignedGlobe()
index.168cfdd3b9ef09c89669.bundle.js:2 addNightSky()
index.168cfdd3b9ef09c89669.bundle.js:2 Adding CNodeDisplayNightSky
index.168cfdd3b9ef09c89669.bundle.js:2 Loading stars
index.168cfdd3b9ef09c89669.bundle.js:2 Loading planets
index.168cfdd3b9ef09c89669.bundle.js:2 parsing starlink
index.168cfdd3b9ef09c89669.bundle.js:2 Adding celestial grid
index.168cfdd3b9ef09c89669.bundle.js:2 Done with CNodeDisplayNightSky constructor
index.168cfdd3b9ef09c89669.bundle.js:2 Adding night Sky Overlays
index.168cfdd3b9ef09c89669.bundle.js:2 addFrustum()
index.168cfdd3b9ef09c89669.bundle.js:2 animate
index.168cfdd3b9ef09c89669.bundle.js:2 Startup time = 4.476700000047684
 
I suspect that the Celestrak data was bad, which then got cached for an hour. I need to add in some checks to fallback on an older version - and also display what TLE is being used.

Unrelated, It looks like there might be an issue with sprite sizes. Your stars in the screenshot are scaled up 2x
2024-02-13_08-46-59.jpg

This is likely related to screen resolution.
 
I suspect that the Celestrak data was bad, which then got cached for an hour. I need to add in some checks to fallback on an older version - and also display what TLE is being used.

Unrelated, It looks like there might be an issue with sprite sizes. Your stars in the screenshot are scaled up 2x
2024-02-13_08-46-59.jpg

This is likely related to screen resolution.
I may have adjusted the satellite and Star brightness slides in an attempt to redraw the missing satellite.
 
Bug: Satellites not showing for me

1707813559969.png
I have noticed that creating a permalink to a "paused" sitch will not render the satellites until some part of the app is interacted with. Hovering over certain elements, clicking, or unpausing will cause the satellites to render. Has confused me a few times because Sitrec can take a little while to load fully and not seeing the satellites would give the impression it wasnt ready yet.

Your screenshot does not appear to be paused, so what I am describing is probably unrelated.
 
This new version of THPS2 is lacking grinding rails and a killer soundtrack..
I just saw a bright Starlink flare, and confirmed it in the app. And whilst the soundtrack was indeed killer, I noticed that the skateboard was lacking wheels. Here's the screenshot.
 
I think that might be to do with extrapolating satellites that have just launched, and so don't have a stable orbit and end up (virtually) floating off into space (as it can not account for future orbit corrections).

Needs a little investigation.
So yes, that seemed to be it. I now cull satellites if they get too far away from reasonable values for altitude and speed. I display in "In Range" % showing how many are left. It's at 100% within around 10 days of the date of the TLE

Also changed the default illumination so all satellites in the sun are brighter than those not in the sun.

And fixed the "Flare Region"

2024-03-15_15-26-35.jpg
 
Back
Top