Home | Downloads | 

Satellite Finder Home Page

Current Version: 4.3 Build 1166 (04/03/2007)

Typical SatFinder display

Here is Satellite Finder's appearance while running. The user has chosen a state and a city from the provided drop-down lists. The ZIP code and geographical position for that city are acquired from the provided database, then a table of satellite positions is generated.

What is Satellite Finder?

Satellite Finder is a way to accurately point satellite dishes at communications satellites in geostationary orbit.

Simply choose a state and city, or a ZIP code, or enter a geographic position, and Satellite Finder will create a list of satellite positions for that location.

Satellite Finder includes a list of all US ZIP codes and their geographical positions. You may access this database by entering a state and city name or a ZIP code.

Once you have provided a —
  • State and City,
  • ZIP code, or
  • Geographical position,
— Satellite Finder will create a list of common satellites and their sighting angles for your position.

You may easily add new or changed satellites to Satellite Finder's plain-text data files.

Oh, I almost forgot the other good news. Satellite Finder is CareWare — that means no money, now or ever. You just have to care.


Download Instructions
  • For those more comfortable with Windows installation programs, click here to download Satellite Finder as a self-extracting Windows executable containing the SatFinder.jar Java executable (711 KB).

  • For all other users on Windows and users of all other operating systems, click here to download the SatFinder.jar Java executable (478 KB).

  • All users need to download and install a recent Java runtime engine (1.5 or more recent) at http://java.com.
Installation Instructions
  • If you downloaded the Windows executable option above, run the self-extracting executable.

  • If you downloaded the Java JAR file, place it in any convenient location on your system and create appropriate links.

  • All users should also install an appropriate java runtime engine, as explained above.

  • Be sure to read the provided help file if difficulties arise, or if you wish to add satellites or Earth locations not provided by default.

Running Satellite Finder
  • After installing the program and the Java runtime engine, Windows users can simply click the program icon provided under "Start ... Programs ... SatFinder".
  • Linux and other users, and any who downloaded the JAR file instead of the Windows installer program, can place the JAR file in any convenient location, install the Java runtime engine, and type this from a command shell:

    $ java -jar SatFinder.jar
                    

    This invocation can be made part of a shell script or desktop shortcut.
User Support

  • Sorry — there is no user support. Please do not write to ask for this kind of assistance.

  • Satellite Finder is basically free, and I cannot possibly offer "customer support" for a free program.

  • If you want to update the satellite list that comes with Satellite Finder, you can find out how to do this by reading the help file. That's the tab clearly marked "Help." The satellite list is a plain-text data file, trivial to understand and edit. I really cannot re-release Satellite Finder every time there is a change in the satellite list.

  • To report bugs (not to ask for help), you may post to my message page.

Revision History
  • 04/03/2007 Version 4.3 build 1166. Changed to target Java runtime version 1.5. This recent series of changes moves Satellite Finder from Java 1.4.2 -> 1.5, with consequent improvements primarily in appearance and launch speed.
  • 04/03/2007 Version 4.3 build 1164. Updated Java required runtime target to 1.6.
  • 04/02/2007 Version 4.3 Build 1162. Upgraded and recompiled to Java 1.6. Some users will have to update their Java runtime engines at http://java.com.
  • 12/20/2004 Version 4.3 Build 1138. Updated/corrected the default satellite list.
  • 04/09/2004 Version 4.2 Build 1134. Added polarization angle (skew) computation, added one-click option to copy satellite position list to system clipboard.
  • 12/28/2003 Version 4.1 Build 1045. Improved position data entry and display format.
  • 12/08/2003 Version 4.1 Build 1037. Corrected some errors in the help file.
  • 12/07/2003 Version 4.1 Build 1035. Improved the formatting of the data display, rewrote the help file.
  • 12/06/2003 Version 4.0 Build 1000. First public release of the Java version.
Technical note
The mathematics required to generate satellite sighting angles is not terribly difficult, and there are sites that offer this service free online. Notwithstanding this, there is a site that charges US$12 per position for this information. This is a new low, even for the Internet.

Here are my Java functions to compute azimuth and elevation angles and skew angles for satellites:
    final double toDeg = 180.0/Math.PI;
    final double toRad = Math.PI/180.0;
    /*
     *
     * ComputePos(input: (earth) lat (deg), lng (deg),
     * (satellite) satlng (deg),
     *
     * output: Complex(x = az true (deg), y = el (deg))
     *
     * az format: North = 0, East = 90, South = 180, West = 270
     * el format: Horizontal 0, Vertical 90
     *
     */
    private Complex computePos(double lat, double lng, double satLng) {
        double dlngr = (lng-satLng) * toRad;
        double az = Math.atan2(Math.sin(lat * toRad),Math.tan(dlngr)) * toDeg;
        az = (270.0 - az) / 360.0;
        az = az - Math.floor(az);
        az *= 360.0;
        double r1=6.6107; // ratio synchronous orbit/earth radius
        double clng = Math.cos(dlngr);
        double clat = Math.cos(lat * toRad);
        double v1=r1*clat*clng-1.0;
        double v2=r1*Math.sqrt(1-clat*clat*clng*clng);
        double el = Math.atan2(v1,v2) * toDeg;
        return new Complex(az,el);
    }
    /*
     *
     * ComputeSkew(input: (earth) lat (deg), lng (deg),
     * (satellite) satlng (deg),
     *
     * output: double skew (deg)
     *
     */
    private double computeSkew(double lat, double lng, double satLng) {
        double dlngr = (satLng-lng) * toRad;
        return (Math.atan2(Math.tan(lat * toRad),Math.sin(dlngr)) * toDeg) - 90.0;
    }
    // The rather simple "Complex" class:
         public class Complex {
             private double x;
             private double y;
             public Complex(double x,double y) {
                 this.x = x;
                 this.y = y;
             }
             public double x() {
                 return x;
             }
             public double y() {
                 return y;
             }
         }
              
This is not terribly complex. These functions can obviously be revised for other languages. Remember that southern latitudes and western longitudes should be negative numbers. And be sure to read the provided help file.


These Pages Created and Maintained using    Arachnophilia.

Main Page

Home | Downloads |