[Kstars-devel] SatLib

Bernard GODARD bernard.godard at gmail.com
Sun Jul 16 17:21:39 CEST 2006


Hi,

Oops, I was working on that too...

I guess, I should have written more often to the list (I just wrote
once), but I am quite busy at the moment I am quite slow to code
(always changing the interfaces to my libs..).

I made a C++ library for SGP4 (and other models) from a GPL C lib.
It doesn't have global variables.
You can find it here:
http://godard.b.free.fr/dotclear/index.php?2006/05/26/4-sgp-cpp-library
there's a small documenting test program inside

basically, it works like this :

_____________
Sxpx * sat1;         // the Sxpx class is a pure virtual class that is used to
                            // compute the position and velocity of a satellite
                            // independantly of the model used (SGP,
SGP4, SDP4, SGP8
                            // or SDP8). The Sgp, Sdp4, Sgp4, Sgp8 and
Sdp8 classes all
                            // implement the Sxpx interface

string fname("sat.tle");  // the name of the file containing the TLE
string id1("88888");      // a NORAD ID for a satellite

t = new Tle(fname,id1);  // open the file whose name is fname. Look in this file
                                 // for the first TLE whose satellite
NORAD ID is id1
e = new SgpElements(*t); // convert the TLE from string to numerical data

sat1 = new Sgp(*e);         // create an SGP model with the TLE PosVel

pv=sat1->getPosVel(jd); // get satellite position and velocity at julian day jd
// in the TEME reference frame of TLE epoch
_______________________

I have been thinking that we need a new SkyComponents class with all
the "active" satellites and I was working on a TleManager class that
can read TLE files, add and remove satellites.

Well, I will be happy to help if I can.

           Bernard




On 7/15/06, Jason Harris <kstars at 30doradus.org> wrote:
> Hi Jean-Baptiste,
>
> I have finally begun work on adding earth satellites to KStars using your
> SatLib framework.  If you don't mind, I'd like to give some feedback on the
> API to hopefully make a future version of the lib a little more usable for
> KStars.
>
> First, a brief introduction to your library for my fellow KStars devs:
>
> The two main functions for our purposes are:
>
>    int SatInit(char *ObsName, double ObsLat, double ObsLong, double ObsAlt,
> char *TLE_file);
>    int SatFindPosition(char *satname, double jd_start, double step, long
> number_pos, SPositionSat *pPositionSat[]);
>
> SatInit() reads in all of the satellites' orbital data from the TLE_file and
> creates the global sat array to hold these data.  It also sets up the
> geodetic position of the observing station.
>
> SatFindPosition() returns an array of SPositionSat structs, which basically
> encode the instantaneous Azimuth/Elevation coordinates for the named
> satellite, for a series of instants, starting at jd_start.
>
> So, the usage pattern is to first call SatInit() and then call
> SatFindPosition() on each satellite for which you want a track.
>
> Now, my comments:
>
> *) Is it possible to decouple the initialization of the satellite orbital data
> from the initialization of the geographic position?  Ideally, I'd like to
> call SatInit() once when KStars starts up, and then be able to react when the
> user changes their geographic position without reading the orbital data all
> over again.  Maybe the geographic position data would make more sense as
> arguments to SatFindPosition() than SatInit() ?
>
> *) Maybe this is just my prejudice as a C++ guy, but it seems kind of
> dangerous to have global variables with simple names like "sat".
>
> *) Can there be a version of SatFindPosition() that returns Equatorial
> coordinates rather than Horizontal?  This isn't a big deal; we have functions
> to do the conversion, of course.  Also, do you correct for atmospheric
> refraction in determining the elevation coordinate?
>
> *) What are the units for the ObsAlt parameter of SatInit()?  Is it the height
> above sea level, or the distance from Earth's center?
>
> thanks for your efforts!
>
> Jason
>
> On Sunday 25 September 2005 06:35, jb wrote:
> > Hi all :)
> >
> > On a previous mail, I've told developping a C library for position
> > satellites calculation.
> >
> > This job will be done on 8-9 October week end ;) (a good code week end)
> >
> > What's the aim ?
> > Having a strong, fast and light C library that gives Ra & Dec of a
> > satellites, by given TLE, position and time.
> >
> > To do what ?
> > search what satelites you've seen last night, predict ISS pass on Sun or
> > moon...
> >
> > Why not include this on Kstars code ?
> > We want to share it with all other ephemerids program (cartes du
> > ciel/Skycharts for example)
> >
> > A Little problem :
> > we aren't really good programmers ;) but we'll be helped by Patrick
> > Chevalley to do this.
> >
> > If you have any asks, hints, clue, code to do this, please send me a mail
> > to this adress.
> >
> > Mail you soon,
> >
> >                                       Jean-baptiste BUTET
> >
> >
> >
> > _______________________________________________
> > Kstars-devel mailing list
> > Kstars-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/kstars-devel
>
> --
> -------------------------------
> KStars: http://edu.kde.org/kstars
> Forums: http://kstars.30doradus.org
> _______________________________________________
> Kstars-devel mailing list
> Kstars-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kstars-devel
>


More information about the Kstars-devel mailing list