joshuaferrara / go-satellite

Calculate orbital information of satellites in GoLang.
BSD 2-Clause "Simplified" License
78 stars 27 forks source link

ECI conversion not precise on LAT and ALTITUDE #17

Open canupe opened 2 years ago

canupe commented 2 years ago

This test

func Test0(t testing.T) { // middle of August 2022 jtime := JDay(2022, 8, 15, 12, 0, 0) // random place near Genoa, Italy lat := 45.0 DEG2RAD lon := 8.0 * DEG2RAD // on the hill heightInKm := 0.5 // put in struct myLatLon := LatLong{lat, lon} // Go to ECI posInECI := LLAToECI(myLatLon, heightInKm, jtime) //t.Log(posInECI) gmst := ThetaGJD(jtime) altitude, , backToLLA := ECIToLLA(posInECI, gmst) backToLLADeg := LatLongDeg(backToLLA) t.Log(LatLongDeg(myLatLon), heightInKm) t.Log(backToLLADeg, altitude) }

verifies that conversion back and forth to ECI is problematic. Altitude seems to be ignored (try to change it in 45 or 15 km) and latitude is badly converted. I think (but it is an impression) that the issue is in the forward conversion. Also ECEF conversion appears not perfect. UPDATE 26/08 : The issue is that latlon in input to LLAToECI is assumed to be SPHERICAL, while the output of ECIToLLA responds in WGS84

Paolo