comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » satellite orbit computation in IDL
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
satellite orbit computation in IDL [message #38329] Wed, 03 March 2004 16:39 Go to next message
cseynat is currently offline  cseynat
Messages: 1
Registered: March 2004
Junior Member
Hello all,

I am looking for IDL routines computing satellite positions as a
function of time, given a set of initial orbital parameters.

I have implemented basic orbit computation routines myself (based on
Keplerian parameters), but I am looking for very accurate orbit
propagation involving atmospheric drag, luni-solar perturbations,
earth tides etc.

I have looked on the IDL libraries available on the web but did not
find anything. If you have implemented such routines or if you can
suggest who I can contact, I would very much appreciate to hear from
you.

Many thanks
Cedric
Re: satellite orbit computation in IDL [message #38398 is a reply to message #38329] Thu, 04 March 2004 20:57 Go to previous messageGo to next message
Craig Markwardt is currently offline  Craig Markwardt
Messages: 1869
Registered: November 1996
Senior Member
profxtjb@earthlink.net (Thomas Brueckner) writes:
> Craig Markwardt <craigmnet@REMOVEcow.physics.wisc.edu> wrote in message news:
>> I have a high precision predictor corrector integrator on my web page.
>
> Craig, which bundle in your library contains the predictor-corrector? Quadpack?

It's under "Math", and the routine is called DDEABM, the ABM being for
the Adams-Bashford-Moulton predictor-corrector method. It's more or
less a direct translation of the same routine in the DEPAC library,
originally by the ubiquitous Dr. Shampine and collaborators.

Craig

P.S.
http://cow.physics.wisc.edu/~craigm/idl/idl.html


--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@REMOVEcow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
Re: satellite orbit computation in IDL [message #38435 is a reply to message #38329] Mon, 08 March 2004 06:55 Go to previous messageGo to next message
schaa is currently offline  schaa
Messages: 10
Registered: March 2004
Junior Member
Cedric Seynat wrote:
> Hello all,
>
> I am looking for IDL routines computing satellite positions as a
> function of time, given a set of initial orbital parameters.
>
> I have implemented basic orbit computation routines myself (based on
> Keplerian parameters), but I am looking for very accurate orbit
> propagation involving atmospheric drag, luni-solar perturbations,
> earth tides etc.
>
> I have looked on the IDL libraries available on the web but did not
> find anything. If you have implemented such routines or if you can
> suggest who I can contact, I would very much appreciate to hear from
> you.

Hi Cedric,
perhaps the NAIF-group from NASA provides something that you are
looking for: high precision orbit calculations. The tool provided by
NAIF is called Spice, take a look at the website
http://naif.jpl.nasa.gov/naif.html.
This week the Icy-package for IDL version 1.0 (!) is out and can be
found on the ftp-server of NAIF, (under 0:/pub/naif/misc/edw/icy/).

Icy has to be linked against IDL's export.h (external directory) and
can be used as a dlm-kind of thing ...
An example from the Spice-tutorial is:

""
Check whether the angle between (Cassini) camera boresight and
direction to Sun is within allowed range:
cspice_spkpos( �SUN', ET, �CASSINI_ISS_NAC', �LT+S', �CASSINI',
SUNVEC, LT )
angle = VSEP( NAC_BORESIGHT_nac, SUNVEC )
""
and a lot more ...

It's open source, free and Naif answers Mails!

Best regards
-Ralf
Re: satellite orbit computation in IDL [message #38449 is a reply to message #38329] Fri, 05 March 2004 15:42 Go to previous messageGo to next message
Roberto Monaco is currently offline  Roberto Monaco
Messages: 11
Registered: August 2002
Junior Member
Cedric,

I took an existing C implementation of the SGPSDP orbital model by NORAD (I
can't remember the link now) and wrapped it into a DLL, so that I could use
from IDL (under Windows). I don't have this in an FTP server, but if you are
interested I can send you the DLL, DLM, and a test IDL program (that shows how
to use it).

To get meaningful information you need an actualized TLE file for the
satellite or satellites you are interested in, which you can get from
http://www.celestrak.com

There are two main functions from IDL:
- SGPSDP_INIT(tle_file, satellite_ID)
- SGPSDP_GETSAT (date_time, satellite_structure)

You call the SGPSDP_INIT to load the satellite orbital parameters from the TLE
file (for a certain satellite), and to do some initializations. After this you
call SGPSDP_GETSAT as many times as needed, to get the geographical position
of the satellite (latitude, longitude, altitude) for a certain time (Julian
date). This last function assumes a satellite structure which is shown in the
IDL test program. SGPSDP_GETSAT also copies the previous time and position in
the structure for convenience of use (I thought it was good to keep both,
previous call and current call data together). You need to call SGPSDP_INIT
again only if you change satellite, or TLE file, or both.

There is a third function that defines the position of an observer, needed to
determine if the satellite is eclipsed or under sun light from the observer's
position (if you care about this):
- SGPSDP_SETOBS(observer_data)

I don't have a documentation page (sorry), but I think all the parameters are
shown in the test program.

I tested this against data provided in NORAD documentation, also using Dr.
Kelso TrakStar program (http://www.celestrak.com), and finally with STK. It
looks OK, but I can't honestly say that I have tested it thoroughly.

Regards,
Roberto Monaco
rmonaco@coresw.com
Re: satellite orbit computation in IDL [message #39043 is a reply to message #38329] Mon, 12 April 2004 12:53 Go to previous message
Roberto Monaco is currently offline  Roberto Monaco
Messages: 11
Registered: August 2002
Junior Member
Cedric,

I am sending you a copy. Let me know how it fits within your application, and
any comments/feedback.

Cheers,
Roberto


"CED" <cseynat@swiftdsl.com.au> wrote in message
news:ffa744684128602b8872c73db657d192@localhost.talkaboutpro gramming.com...
> Hello Roberto,
>
> Yes I'd like to have a look at the DLL you generated, and how you used it
> with IDL.
>
> From my experience, calling a Windows DLL from IDL is not totally robust
> and I sometimes got trouble with this method, especially when the DLL is
> called in an IDL loop.
>
> I need to compute orbits of GPS satellites and there are about 30 of them,
> so I may run into performance problems by calling a Windows DLL, but it is
> worth a try.
>
> I would appreciate if you cold send me your code, as mentioned in your
> reply.
>
> Thanks for your help,
>
> Cedric
>
Re: satellite orbit computation in IDL [message #39044 is a reply to message #38449] Sun, 11 April 2004 18:57 Go to previous message
CED is currently offline  CED
Messages: 2
Registered: April 2004
Junior Member
Hello Roberto,

Yes I'd like to have a look at the DLL you generated, and how you used it
with IDL.

From my experience, calling a Windows DLL from IDL is not totally robust
and I sometimes got trouble with this method, especially when the DLL is
called in an IDL loop.

I need to compute orbits of GPS satellites and there are about 30 of them,
so I may run into performance problems by calling a Windows DLL, but it is
worth a try.

I would appreciate if you cold send me your code, as mentioned in your
reply.

Thanks for your help,

Cedric
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: plotting x vs. (y & T) in 2 dimensions?
Next Topic: 3D velocity vectors

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:37:54 PDT 2025

Total time taken to generate the page: 0.00717 seconds