$Id: README,v 17.1 2003/04/06 08:53:45 hme Exp $ Satellite v.1.9 The Satellite class is a memory representation of a set of NORAD two-line elements. The algorithm is that described in Hoots, Roehrich, Kelso [1]. The algorithm coded here is SGP8/SDP8. Most of the algorithm was coded from the printed report [1] and variable names derive from the symbols used in the equations in a straightforward manner. However, for the DEEP.FOR subroutine only the Fortran IV code is contained in the report. The corresponding parts of the algorithm here have been adapted from that and variables have very similar names to the Fortran code. The organisation of the algorithm is different from the Fortran implementation though. [1] Felix R. Hoots, Ronald L. Roehrich, T.S. Kelso, 1980, 1988, Spacetrack report no. 3 - Models for propagation of NORAD element sets, http://www.celestrak.com/NORAD/documentation/index.html The Satellite class is in fact part of an application called Sputnik. It includes the same source code and uses the object files compiled from it. The library built here is not used by Sputnik. Sputnik is a programme to calculate ephemeris (positions, motions, appearances of moving objects in the sky). Objects included are artificial earth satellites, Sun, Moon and planets. Another equally important aspect of this programme is three-dimensional graphics. This is not only used to display the results of ephemeris calculations, but can create more general graphs. v.1.9.3 changes from the Satellite class to the SDP4 class. This is a third port of the satellite orbit model. This one is, however, finally well tested against T.S. Kelso's port to Pascal. Previous ports are not correct for some satellites. This third port is of the SGP4/SDP4 model, because that is the one that Kelso ported. First Hoots' Fortran code was - with reference to Kelso's Pascal code - ported to Fortran 77 (GNU g77 in fact). After confirming compatibility with Kelso's DOS application the Fortran code was despagged to enable porting it to Java. After confirming that the Java port was still coompatible with Kelso this was ported back to C++ for use here. The SDP4 class has to be used differently from the Satellite class. For one, it is independent of any other code in Sputnik. Second, one has to call the Init method before reading the elements. Third, GetPosVel needs JD minus 2450000, i.e. 10000 smaller than the rest of Sputnik. Fourth, GetPosVel does not return itsR and itsV, these must be retrieved as public class variables by the user. Finally, the use of an inherited status by SDP4 is limited to file IO methods. To build libSatellite.a: There are three Makefile's for different platforms. Copy the relevant one to Makefile, e.g.: cp -f Makefile.linux Makefile Then, to build: make depend make The source is in ANSI C++, for which the GNU C++ compiler g++ is used. If you have the GNU compilers and if the make command is GNU make, you can use Makefile.linux no matter what your actual platform. Authors: hme: Horst Meyerdierks, c/o Royal Observatory, Blackford Hill, Edinburgh, EH9 3HJ, Scotland hme@roe.ac.uk Copyright: (C) 1996, 2000, 2003 Horst Meyerdierks. This programme is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version. This programme is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public Licence for more details. You should have received a copy of the GNU General Public Licence along with this programme; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.