SKYSAT v0.64 (c) 1997, 1998, 1999, 2000, 2001, 2002, Randy John home.comcast.net/~skysat/ skysat@comcast.net 13-Sep-2006 SKYSAT displays a map of the sky with a trail to indicate where a satellite may be seen. This program has been released to allow people to try to predict IRIDIUM (and other satellite) flares. Since I designed it for my own use and since you didn't pay anything for it, don't expect too much in the way of support. Ownership of this program remains with the author. Insert your favorite legal disclaimer here. Required files: SKYSAT.EXE The program. AF.DAT Data. STARSORT.DAT Data. (SKYSORT.DAT is no longer used.) LOCATION.DAT Site information (see below). Auxiliary files: README.TXT This file. ALGO.TXT The IRIDIUM mirror algorithm. You will also need orbital elements. I don't provide them. Usage. ====== 1. Place the required files in the same folder. You might as well name the folder SKYSAT. 2. Edit LOCATION.DAT. Notice that I use LONG/LAT not LAT/LONG!!!!!! Format of LOCATION.DAT: Line 1 - Any text. Line 2 - Site longitude (decimal degrees west). Line 3 - Site latitude (decimal degrees north). Line 4 - Site altitude (in meters). Line 5 - Y or N. Most people will use 'Y'. Due to a bug in the display code I am forced to use, SKYSAT will look somewhat ugly if you say 'N'. If 'Y', then SKYSAT will poke some bytes in a part of the executable, hopefully fixing the problem. If SKYSAT fails after you press the first , then try setting this to 'N'. Line 6 - The default filename for the elements. This is just a default value, you can override it when you run the program. Line 7 - The delay in milliseconds between updates. A value of 0 or less does nothing. A value of 1 makes a call and probably returns immediately. You need to get to at least 100 or more to make a real difference. Line 8+ You can put any text here (like other sites) but beware that I may start using this space someday so leave a few blank lines. 3. Run the program. 4. Verify the location data and press RETURN. 5. Enter the location of the elements file. SKYSAT was designed to read Ted Molczan's file, including standard magnitude. Make sure the last line has a carriage return. Checksums are ignored. You no longer need to trim the leading and trailing headers. The commands. ============= P - Prediction maps. This is the normal usage when not searching for flares. Enter the starting date and time in UT. The system time is the default. This is not a problem for me since my system time is set to UT. If you do not give a date it uses the date that is shown. If you do not give a time it uses the time that is shown. Dates MUST be entered in DD-MMM-YYYY format. Enter the duration for the search in hours (fractional allowed). Enter the minimum altitude in degrees. The satellite must reach this altitude to be displayed. However, under the following circumstances the minimum altitude is reduced to 5 degrees: o If you entered a search text (see below). o If the satellite has a standard magnitude brighter than 4. o If the satellite's inclination is smaller than your latitude. (Otherwise, low inclination, low altitude satellites might never be shown). If you entered a minimum altitude smaller than 5 degrees then it is left unchanged. Enter the search text. If this is not blank, SKYSAT will only look at satellites whose name contains the text you enter. It checks for a match on either the name, NORAD number or international designation. Case is not significant. If you enter a search text, SKYSAT will ignore the minimum altitude and maximum distance (see below). To see all IRIDIUM's enter IRIDI. But realize that this will also pick up Iridium rockets, the simulated payloads and non- functional Iridiums. The 'F' command will only show satellites in the SKYSAT.MIR file (including the non-functional satellites). S - Prediction maps (SUNCHECK = Off) The P command will not show satellites when the sun is up or the satellite is in shadow. The S command will. Otherwise this command is the same as P. Use this to manually search for daytime satellite flares. F - Find Satellite Flares The F command will search for and show only those flares which meet your specifications. You will be asked 'Nightime only' (sun below the local horizon). Then 'Maximum acceptable mirror angle' (see 'Mirror angles' below). Enter a small number to see a few good flares or a big number (less than 10) to see a large number of flares (but not so good). After that it's the same as the P command. Only those satellites listed in SKYSAT.MIR are tested. The is no need to specify a search text, although you may. O - Set up satellites in chronological order. Enter a start time and duration. SKYSAT will go through the entire database and sort the satellites chronologically in order of culmination time. After it's finished you are asked all of the questions in a 'P' command. The database will then be searched chronologically (SKYSAT normally searches in the reverse order of the elset file). Note that if you enter a start time and duration that takes you out of the sort range, SKYSAT will happily search and report no passes. The database is now sorted and will remain sorted until you run the 'O' command again or exit. L - Log file. When a log file is in use, no graphical display can be seen and the only satellite searching command that is available is 'F'. When a flare is found, a line of text is output to the screen and the log file. If the log file is NUL, text is only output to the screen. To close the log file, use the L command again or Exit. If you wish the output file sorted by time, exit SKYSAT and use the following DOS command (assume that the output file was called SKYSAT.LOG): SORT /+7 SKYSAT.LOG Format of the Log file: Name - The name of the satellite. This is just the NORAD number if SKYSAT can't determine that it is an Iridium. Date/Time - In UT. The format is YYYYMMDD HHMMSS. Azi Alt - The azimuth and altitude of the satellite in degrees. Range - The observer/satellite distance in kilometers. Mag - The predicted magnitude (not including the flare effect). Phs - The phase angle in degrees (sun-satellite-observer). RA/Dec - The Right Ascension and Declination of the satellite. SunAlt - The altitude of the Sun as seen by the observer. Mirror - The mirror designation and mirror angle. M - Set maximum distance. SKYSAT ignore satellites farther than the given maximum distance. While searching for a pass, SKYSAT will give up if it sees the range to the satellite exceed this distance (it incorrectly assumes that it will not get closer later). This means that you might miss a pass if the satellite was far away at the beginning of the period being checked and grew closer. However, if you enter a search text, this parameter is ignored. This was added to filter out GPS and other dim high flyers. E - Exit the program. The Output. =========== A sky map is shown on the right side of the screen. The satellite path is shown as a continous line when the sun is more than -0.5 degrees above the satellite's horizon, a series of circles when in shadow. The stars and planets are plotted for the time the satellite is first drawn but there is a redraw command (see below). Object Symbol ====== ====== SATELLITE An 'x' ('o' if in shadow). SUN A large yellow circle with a dot. MOON A large filled yellow circle. MERCURY A small green circle. VENUS A small blue circle. MARS A small red circle. JUPITER A small brown circle. SATURN A small yellow circle. In the upper right corner: The name of the satellite. ERROR - An indication of the quality of the prediction. This is the correction term (in minutes of time) caused by drag. If this number gets very high the elset has gotten stale. I find this to be more useful than the age of the elset. 'Age' is too strict for some stable sats like LAGEOS and not strict enough for high drag sats that are about to re-enter or even MIR. If you really want to see a sat and the ERROR is high you might want to start looking a little early. If the text 'ERROR = ?' appears, then no drag terms were available. If ERROR is negative then the drag terms, probably NDOT2, produced a negative drag. You may wish to change the drag terms to zero if you don't believe in negative drag. SUN - The altitude of the sun in degrees as seen by the observer. SMAG - The standard magnitude from the elements file. If the file doesn't contain an SMAG, 5.5 is used. AGE - The age of the elements in days as of the display date. On the left hand side. Line 1 o Date and time (UT). Line 2 o Azimuth (0 = North, 90 = East). o Altitude. Line 3 o Distance from the observer (km). o Predicted magnitude (this does not include the IRIDIUM flare effect). Line 4 o The phase angle. According to Jean Meeus, the phase angle is the sun-satellite-observer angle. Who am I to disagree? o The illuminated fraction of the satellite. This is the area of the satellite that is illuminated by the sun (assuming a spherical satellite). Line 5 o Right Ascension of the satellite. o Declination of the satellite. Line 6 o Altitude of the sun above the earth as see by the satellite. Line 7 o Latitude and longitude of the satellite sub-point. Line 8 o Velocity of the satellite (km/sec). Line 9 o The mirror angle and mirror number. This is described in the next section. This line is only printed for those satellites present in the SKYSAT.MIR file (see below). Controls ======== o Press RETURN to advance to the next time (usually 10 seconds). o Press F9 to toggle 'continous' mode. When in 'continuous', the satellite position is continuously updated until it goes below the horizon or you press F9 again. The first time you press F9, the satellite starts moving. Press it again to stop it. Use the controls listed below to make it go faster or slower, forward or backward. When the satellite goes below the horizon, the message 'Press ESC for next sat' appears. You do not have to press ESC. Try F9, and you can make the satellite bounce back and forth between horizons. ESC Skip to the next satellite pass. RETURN Moves to the next time (forward or backward). R Redraws the stars and planets to the displayed time. RIGHT ARROW Forward in time one second. LEFT ARROW Backward in time one second. UP ARROW Forward in time 10 seconds. DOWN ARROW Backward in time 10 seconds. PAGE UP Forward in time 30 seconds. PAGE DOWN Backward in time 30 seconds. + Change direction to forward (you can also use '='). - Change direction to backward (you can also use '_'). F1 Sets the update time to 10 seconds. F2 Sets the update time to 30 seconds. F3 Sets the update time to 1 minute. F4 Sets the update time to 2 minutes. F5 Sets the update time to 5 minutes. F6 Sets the update time to 10 minutes. F7 Sets the update time to 1 second. F8 Searches for a flare. 15 second updates until the mirror angle is less than 10 degrees. Then 1 second updates until the mirror angle starts to go back up. Then it stops, goes back to the previous second but maintains the current direction. This is the exact second of the maximum predicted flare position. You are now out of 'continous' mode. If the mirror angle does not get below 10 degrees the satellite will be driven to the horizon. F9 Toggles 'continuous' mode. F10 Stop processing all satellites. Mirror angles. ============== This is the angle between the sun and the point on the sky where a mirrored surface is reflecting your gaze. When this angle is nearly 0 a flare should occur. The mirror whose angle is smallest and whose reflective side is visible to the observer is the only one that SKYSAT displays. If the angle has a question mark (?) after it, it means that the satellite is not at it's operational altitude. The interpretation is up to you but there are currently some 'dud' Iridiums that can be identified in this way. In addition, newly launched Iridiums take some time to reach operational altitude but should still flare. Information on Iridium's. ========================= An Iridium satellite is a long 3 sided body. It's long axis is generally pointed earthward. To be precise, one face of the spacecraft is normal to the velocity vector (one face faces into the direction of motion). At launch, each face is covered by a Main Mission Antenna (MMA) which is then deployed 40 degrees away from the spacecraft body, towards the earth. These antenna are covered with a silver coated teflon material that effectively turns them into mirrors for us. Mirror 1 is facing forward (but down 40 degrees). I believe that this mirror only flares when the sun is above the horizon (or just slightly below). Mirror 2 is 120 degrees to the right (as seen from above and facing the same direction as the spacecraft movement). Mirror 3 is 120 to the left. Here is a chart to explain which mirror is typically causing a flare if you know the direction of the satellite and whether it is in the East or West. Note that this table represents 'typical' evening conditions only. Atypical conditions also exist. Northbound Southbound East Mirror 3 Mirror 2 West Mirror 2 Mirror 3 Note that when I say 'mirror' I mean the Main Mission Antennas (MMA). They are radio antennas but for our purposes they are optical mirrors. SKYSAT.MIR ========== SKYSAT looks for a file called SKYSAT.MIR during startup. This file can be used to customize SKYSAT to search for flares on non-Iridium satellites. If the file is not found, default Iridium-only settings are used. If you create your own SKYSAT.MIR file, NO default settings are used; you must include the default settings yourself (see below). Each line of the file represents one mirror on a satellite (or lack thereof). Here is the format: NAME, ORIENTATION, MM, MM_TOLERANCE, MIRROR_NAME, ROTATION1, ROTATION2 Where: NAME - The name, NORAD number or international designation of the satellite. Names can end in '*' for wild card matches. ORIENTATION - Iridium's are oriented with respect to the velocity vector (VV). Currently, SKYSAT only supports VV in this field. MM - The expected mean motion. If the actual mean motion is different by more than MM_TOLERANCE, a '?' is printed after the mirror angle. MM_TOLERANCE - See MM. MIRROR_NAME - A one letter designation of the mirror. Blank means that this satellite is to be ignored. As a convention I would like to use numbers for known mirrors and letters for experimentation. ROTATION1 - A rotation (in degrees) in the orbit plane starting at the velocity vector. Positive is away from the earth. ROTATION2 - This one is more complicated. As a first approximation, you could say that it is a rotation (in degrees) about the radius vector, positive being clockwise as seen from above. This is correct for circular orbits. For elliptical orbits, construct vector N, normal to the orbital plane. The rotation is about the vector normal to both the velocity vector and vector N. The two ROTATION angles don't specify what it is that you are rotating. To construct a mirror, start with the mirror facing into the velocity vector. Then, rotate the mirror by each rotation, number 1 first. Here are the defaults that are built into SKYSAT (in SKYSAT.MIR format). IRIDIUM SIM*, VV, 0, 0, , 0, 0 97020F, VV, 0, 0, , 0, 0 IRIDIUM*, VV, 14.34, 0.01, 1, -40, 0 IRIDIUM*, VV, 14.34, 0.01, 2, -40, 120 IRIDIUM*, VV, 14.34, 0.01, 3, -40, -120 The first line filters out the simulated payloads. The second line filters out 'Iridium 4 r'. The last three lines define the three mirrors for anything else matching 'IRIDIUM*'. Notice that if any more rocket bodies get the 'Iridium x r' designation, SKYSAT won't know the difference. SKYSAT searches this list for the first matching line. It then assumes that each suceeding line with EXACTLY the same name is another mirror. As soon as it sees a different name it stops so the placement of the lines is extremely important. I expect many of you will want to construct the following SKYSAT.MIR file to test the theory that certain 'dud' Iridiums have failed to deploy their MMA's. Remember to put these lines before 'IRIDIUM*'. If after, they will never be seen. NOTE : After having examined this I have realized that an Iridium whose MMA's are not deployed will only flare in the daytime! IRIDIUM 11, VV, 14.34, 0.01, A, 0, 0 IRIDIUM 11, VV, 14.34, 0.01, B, 0, 120 IRIDIUM 11, VV, 14.34, 0.01, C, 0, -120 IRIDIUM 21, VV, 14.34, 0.01, A, 0, 0 IRIDIUM 21, VV, 14.34, 0.01, B, 0, 120 IRIDIUM 21, VV, 14.34, 0.01, C, 0, -120 IRIDIUM 27, VV, 14.34, 0.01, A, 0, 0 IRIDIUM 27, VV, 14.34, 0.01, B, 0, 120 IRIDIUM 27, VV, 14.34, 0.01, C, 0, -120 ...Add the defaults here... Notice that these could also represent other mirrored surfaces. If you see an unexpected flare from a satellite you can use this to try to identify the mirrored surface and make future predictions. Of course, what you would really like is for SKYSAT to always show the two ROTATION's so you wouldn't have to figure it out. Maybe later... Make sure not to make too many guesses at the same time. Since SKYSAT only displays the 'best' mirror, you risk missing a correct flare prediction while an incorrect one is displayed. If an error is detected in one of the numeric fields an error message is printed and the line that generated the error is also printed. In addition, all lines after the error are printed. So, if you place a blank line at the top of your SKYSAT.MIR file, you can see if SKYSAT is reading the file correctly. State vectors and hyperbolic orbits (experimental) ================================================== Spacecraft which are launched to other planets leave earth in hyperbolic orbits. So do interplanetary spacecraft making gravity sling- shot manuevers past earth. Since hyperbolic orbits can not be represented in the standard two line format I have created a special format for SKYSAT. You will have to obtain the state vectors yourself. Here for instance, are the pre-launch elsets for STS-87 in standard TLE (no drag) format, and in the SKYSAT state vector format (twice). STS-87 1 99987U 97323.87376696 .00000000 00000-0 00000-0 0 9013 2 99987 28.4670 185.5332 0002856 329.4208 30.6405 15.96552982 29 STS-87 J2K 1 XYZ KM 97323.85362141 2380.52258 5530.70860 -2852.52455 2 -7.216294376 2.270661622 -1.617156306X STS-87 M50 1 XYZ KM 97323.85362141 2428.31275 5503.82876 -2864.20807 2 -7.198232446 2.351234163 -1.582134890X I'm only showing STS-87 because it was available. I would only use this special format for hyperbolic orbits. The name line is the same as Ted Molczan's (but I didn't show anything special here). Lines 1 and 2 MUST have a 1 or 2 in column 1. Line 1 contains the state vector indicator XYZ, units, and the epoch. Valid units are KM (kilometers), MI (miles), FT (feet) and MT (meters). Line 1 then contains X, Y and Z and line 2 contains XDOT, YDOT and ZDOT. These last 6 numbers MUST be right justified in their fields. The decimal point is not constrained to any particular column. If line 2 has an X (in upper case) after ZDOT then SKYSAT will print out the vector (in kilometers) when it is read from the file and again in Keplerian style the first time it checks for a pass. Here is a template. 1 XYZ UU YYDDD.DDDDDDDDXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZ 2 XXXXXXXXXXXXXXXYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZx Realize that SKYSAT wasn't designed to search hyperbolic orbits so it might have some trouble finding a pass. Use as few constraints as possible. Make sure the maximum distance is large enough (M command). Use the S command, not P. If you can, try to start the search when the satellite is at it's highest point in the observer's sky. Set the minimum altitude to 0. If you happen to compare the samples to each other you will find that the M50 and J2K elsets are within a few seconds of each other. Near the epoch, the standard TLE (even though it has no drag) gradually falls behind. This is an experimental feature, so be forewarned. I have only used it once (not many satellites are in hyperbolic orbits) but didn't get it working until the day after the spacecraft left earth (one of the recent Mars missions). It seemed to match the drawing of the orbit around the earth that I found with the state vector. Notes ===== o Use the 'F' command to search for known satellites flares. o Use the 'P' command and F8 when conducting experiments to find new flares. o The duration can be quite long. I routinely set the duration to 240 hours (10 days) when looking for upcoming Mir passes. o Mirror angles below 1 degree are usually good. Below 0.5 degrees they will burn your retina. Below 0.25 degrees should produce a specular reflection of the sun, but the spacecraft are not controlled to this kind of precision. Also, as the phase angle approaches 180 degrees, the intensity of a flare decreases. o Make sure that you do not leave out the '1' in line 1 and the '2' in line 2 in the elset file. I use these to detect real TLE's (instead of comments). It is valid for a satellite name to begin with a '1'. o When SKYSAT reads an elset file it converts international designations of the form '97 1 A' to '97001A'. o Use F5 (5 minutes) or F6 (10 minutes) when looking at high flying satellites.