Stars and Other Celestial Object in Sitrec

Mick West

Administrator
Staff member
Early days yet, but I've made the first steps toward adding stars, planets, the sun and moon, and satellites to Sitrec. I'm using the Twentynine Palms sitch as a testbed, as it's just a photo with some stars in it. I've got it to the stage where I can get a view of the stars from a particular location. time of day is manual right now. But here's the photo match:2023-09-01_12-11-35.jpg
Lots to do:
  • Get correct field rotations for time and date DONE!
  • Add planets - Partial
  • Add Sun and Moon
  • Add ISS
  • Add Starlink
  • Add tools to adjust star brightness.
  • Add arbitrary TLE sources (for historical Starlink, etc)
  • Add indicator for Starlink horizon flare regions
  • Add tools to adjust location to match things like a plane passing a particular star.
You can see this early pass in action here:
https://www.metabunk.org/sitrec/?sitch=29palms
(pause it and adjust the time/frame to rotate the field. The match is at frame 165)
 
Last edited:
MInor tech details:
  • I'm using the Yale Bright Star Catalog.
  • Not currently doing any precession/nutation calculations. I think they probably won't be needed.
  • Stars are rendered with sprites on a 100m sphere with the camera always at the origin (center of the sphere) and parallel to the world rendering camera.
  • Implementing datetime rotation should be pretty simple, just modify the rotation about the celestial axis.
  • The Moon has detectable parallax based on your position on the Earth, I might implement that.
 
Well, that went better than I expected! Correct rotation for time/data/longitude is working. The rotation required is:

JavaScript:
function getSiderealTime(date, longitude) {
const JD = date / 86400000 + 2440587.5; // convert to Julian Date

    const D = JD - 2451545.0; // Days since J2000.0
    let GMST = 280.46061837 + 360.98564736629 * D; // in degrees

    // Add the observer's longitude (in degrees)
    GMST += longitude;

// Normalize to [0, 360)
    GMST = GMST % 360;

if (GMST < 0) {
GMST += 360; // make it positive
    }

return GMST; // returns in degrees
}
(plus longitude)

Which led to this thing of beauty.


Which is the ADB-B tracks, and stars that match this photo from 29 Palms
210420-M-ET234-1036-bright.jpg

Something that became obvious was the role of lens distortion. The stars (and the 3D world) are projected with a perfect rectilinear projection. The iPhone photo is close, but you can't get all of the stars to match at the same time.

The time of the animation is the previously calculated start time of the photo (the clock was slow), and the known six seconds. If we look at the plane in the lower right, and line up the local stars as best as possible, we get:



The correct length, an only about 1-2 seconds off in time calculation (which came from me eyeballing the ADS-B data, so this is more accurate).

With the other two tracks, we get:

Basically the same thing

Note the motion blur in the photos is raised up a bit relative to the track. I'm not 100% sure why. Maybe something to do with the altitude reporting. Maybe something to do with rendering. But it's still essentially a perfect match.
 

Attachments

  • ScreenFlow-29palms-six seconds.mp4
    1.6 MB
  • ScreenFlow - closup of the single plane.mp4
    1.6 MB
  • ScreenFlow other two tracks.mp4
    1.5 MB
Last edited:
Comparing Sitrec vs. Google Earth


Verty close. GE is so frustrating. Very powerful, yet super clunky. The stars are very hard to make out (I boosted the levels here).

But it provides verification that the rendering of stars, terrain, and ADS-B tracks is all working the same, and presumably accurately.
 
phenomenal work mick! the more and better tools we have for understanding the sky the better off we are in evaluating uap claims.
 
Early days yet, but I've made the first steps toward adding stars, planets, the sun and moon, and satellites to Sitrec. I'm using the Twentynine Palms sitch as a testbed, as it's just a photo with some stars in it. I've got it to the stage where I can get a view of the stars from a particular location. time of day is manual right now. But here's the photo match:2023-09-01_12-11-35.jpg
Lots to do:
  • Get correct field rotations for time and date
  • Add planets
  • Add Sun and Moon
  • Add ISS
  • Add Starlink
  • Add tools to adjust star brightness.
  • Add arbitrary TLE sources (for historical Starlink, etc)
  • Add indicator for Starlink horizon flare regions
  • Add tools to adjust location to match things like a plane passing a particular star.
You can see this early pass in action here:
https://www.metabunk.org/sitrec/?sitch=29palms
(pause it and adjust the time/frame to rotate the field. The match is at frame 165)
in the upper left quadrant there seems to be something off. in the simulation theres that one bright star missing.

is this due to crop or incomplete data?
 
Also is it at all possible to project lines from the star positions through the KML to get a potential ground location?
 
Also is it at all possible to project lines from the star positions through the KML to get a potential ground location?
Yes it is! In fact, you could plot a track of a star on the ground, like the "shadow" of plane cast by the star.

If you could do this with two stars (or even just an ra/dec position, you should get an intersection point of the two shadow tracks
 
Maybe it's the altitude data in the KMLs we export

1693649657095.png
Yeah, I was thinking that. I uses the geometric altitude, as it should in theory be a perfect fit for a WGS84 curved terrain. I'm just using a sphere, but I thought that would be accurate enough for local curvature.
 
Added a simple UI for adjusting the start date/time of the video. Useful because often the start time of the video is uncertain - maybe given vaguely, or suspected inaccuracies, or unknown timezone. This was we can just adjust until we find a match.



Planets are in, but not yet updating correctly with date/time.
 
Back
Top