pyephem

Is there any way to calculate the visual magnitude of a satellite (ISS)?


Just got the basics of PyEphem working on my Raspberry Pi. Working really well.

The approach to getting the next_pass of an object (in my case the ISS) is very useful... but I really also want to be able to take in to account the actual visual magnitude for the observer. That way I could list only the VISIBLE passes of the ISS rather than all of them.

Is there some method to calculate the visual magnitude by accounting for the position of the Observer, the ISS and the Sun?


Solution

  • The quick summary is that I calculate the separation angle between the sun and the iss. With the two known distances (sun.earth_distance) and iss.range) I then solve the triangle to get the phase angle. This gets pumped in to the magnitude equation below... and VIOLA. The values returned by this seem to be close to what is on Heavens-above.com. That's all I wanted.

    See this post for the actual Python code I use to calculate the phase angle.

    Many online services that supply satellite predictions do in fact provide magnitude predictions as well. Heavens-Above.com is one such site so there are definitely techniques out there to do this.

    The predictions for the ISS that are available on Heavens-Above are generally pretty reliable and take in to account when it will pass in to the earths shadow. EDIT: In fact PyEphem does show if a satellite is eclipsed or not. body.eclipsed

    Also while the ISS is known to occasionally flash brighter than predicted that is still a pretty rare occurrence and I'm not too interested in predicting that (and I would agree trying to do that seems rather pointless). Iridium fares are of course very variable in visual magnitude - but nevertheless are very predictable based upon the location the observer / satellite / angle of their highly polished antenna and the sun.

    I'm really just looking some pointers to an approach to calculate this using the PyEphem library if possible.

    I found a discussion about this very point here-> http://www.satobs.org/seesat/Apr-2001/0313.html

    >Mag = Std. Mag - 15 + 5*LOG(Range) -
    >      2.5*LOG(SIN(B) + (pi-B)*COS(B))
    >
    >where Range is in km, and B is in radians and measures
    >the angle from the sun to the satellite to the observer.
    >At full phase, B is 0; at new phase, B is pi (i.e.
    >satellite transiting the sun).
    enter code here
    

    Standard.Mag I use for the ISS is -1.3 (intrinsic brightness at 1000km) - several online sources reference this. e.g. http://satobs.org/seesat/Aug-2005/0114.html and this one Quicksat intrinsic magnitudes file: qsmag.zip

    I've got a sense that PyEphem has the capability to do this calculation given a starting magnitude (std.mag) number. There are "standard" magnitude numbers available on the internet (not sure how they are calculated... but they are available none-the-less).

    So.. the bit I am not 100% certain on is how to get that angle B. I'll be looking at that next (note: worked this out - see top of the post)