[Kstars-devel] SatLib
Jason Harris
kstars at 30doradus.org
Sun Jul 16 19:47:20 CEST 2006
Hi Bernard!
Glad to hear this message. It sounds like what you and I have done
separately so far will fit together well. I have written a
SatelliteTrack class that stores the SkyPoints that make up a
satellite's track in the sky. I have also written a SatelliteComponent
class to manage the currently-acive satellite tracks.
I'd be very happy to give you what I have so far and let you adapt it to
your C++ library (which sounds very nice, BTW), unless you'd prefer
another way? Maybe I can just commit what I have so far to SVN...let me
know.
Jason
Bernard GODARD wrote:
> 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
>>
> _______________________________________________
> 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