Can I see the ISS from a point on earth (lat, lon, alt)?
I used the Elevation Detector and set a min elevation of 10 degrees (converted to rads).
lat, lon, alt
38.832772, -104.74755, 0
TLE
1 25544U 98067A 24138.72899227 .00027305 00000+0 46004-3 0 9997
2 25544 51.6391 106.3505 0003428 178.2016 240.1821 15.51476363453820
I got the TLE on May 17.
AS you can see the results are quite different. Any suggestion on what should I look for?
For reference, I used one of the tutorials as a guide (I used a TLE propagator instead of the propagator used in the tutorial.)
Here, it seems you build an earth frame but use another one, returned by the getEarthFrame method. Does this method also return a rotating Earth frame?
The dates on the site are a bit weird… when i set london time (Which i expect to be Z, UTC, GMT-0) the site shows UTC+1
With that information… I get all visibilities and get one hit that matches 07:03:20 to 07:08:18
18 May
-
00:34:42
10°
SSE
00:36:40
15°
SE
00:38:39
10°
E
daylight
18 May
-
02:09:44
10°
WSW
02:13:00
53°
NW
02:16:17
10°
NE
daylight
18 May
-
03:48:31
10°
NW
03:50:15
13°
NNW
03:51:59
10°
NNE
visible
18 May
-
07:03:20
10°
NNW
07:05:49
19°
NNE
07:08:18
10°
ENE
visible
18 May
-
08:39:27
10°
WNW
08:42:45
65°
SW
08:46:00
10°
SE
night (unlit)
My code (which i presume is +0) gives me only one hit for the 18 and missing all the other that are supposed to happen.
Curiously enough, that time is one of the two the site considers as visible.
Another thing you could do is reduce the maxCheckInterval to something like 10s. This interval is used to separate zero crossings before launching the accurate root finding algorithm. If you have a very short visibility, it means there are two crossings that are close to each other in time (satellite goes above and then below threshold elevation). The propagator is enforced to perform at least one check each maxCheckInterval (but it may perform more checks), so you can consider this value to be the length of a visibility interval you accept to miss because it is too short. For visibility, we often set it to 60 seconds because operationaly short visibilities are not useful to retrieve telemetry or send telecommands. But the visibilities here are larger than one minute so the problem is probably different.
I have modified the VisibilityCheck tutorial to use your TLE and your dates. You can look at visibility-check.patch to see these modifications. When I run the modified tutorial, I get the following results which matches the list you give above (beware of the 1 hour UTC offset which moved one visibility from may 17th at 23:34 to May 18th at 00:34)
Yes it is possible, using AdaptableInterval for the max check. In the case of visibility, one should perhaps propose some algorithm based on global Keplerian motion around perigee for the satellite and Earth rotation rate to estimate an upper bound of relative velocity and then use that to have large intervals when the satellite is on the other side of the Earth and short intervals when closing the ground point.
Could you open an issue for that? I may give it a try to solve it.
I’ve been thinking about such AdaptabelInterval actually. I thought it could use the angular speed w.r.t. the station to devise a predicted entry or exit of visibility. It should work ok for near circular orbits, less so for elliptical ones. You probably have a better insight Luc.
Regarding Heavens-Above’s timezone, you can specify it with &tz=UT if you want to use UTC. This is a tricky one, probably caused by DST issues. I discovered this early on. And contacted them about it.
FWIW, we had a similar idea on a project I was working, but for whatever reason, we never got around to implement it.
We implemented a variable step scheme using the angular speed, than in most cases worked well, but it was not great, like you said, for some orbits.
What did worked for us, was to make constant big-ish steps (7 minutes, but we did play with larger and smaller steps, and 7 minutes was kind of a good spot for us) and determine the following given 2 states:
state 1 was approaching and state 2 is approaching = you are still approaching, next
state 1 was approaching and state 2 is inside the area, compute the entry
state 1 was inside, state 2 is not approaching, you got out, compute the exit
state 1 was approaching, state 2 is not approaching, you may have skip a window, use bisection (or another root finding alg) to determine if you really skipped a window.
this in combination with luc idea could provide a very fast visibility finder.
I tried and did not worked for me… The site bombs if do that…
Thanks for the information tho… I will keep trying…maybe the site is having issues now