Hot answers tagged

6

For Python and TLE propagation using SGP4 one very handy option is https://rhodesmill.org/skyfield/ As you probably already know a TLE is a strange animal. It does not really contain proper orbital elements, but instead is engineered with one purpose; to be fed into SGP4 so that that will generate reasonable position information for at least a few days ...


5

You can find a C++ method contained in the source code of Andrew Holme homemade GPS receiver project. The method is called GetXYZ and is the EPHEM (ephemeris) namespace and looks as the following: void EPHEM::GetXYZ(double *x, double *y, double *z, double t) { // Get satellite position at time t // Time from ephemeris reference epoch double t_k = ...


5

Disclaimer: I'm the author and lead developer of poliastro. Happy to see many others are recommending it, though! :) I also work for Satellogic, the company that open sourced orbit-predictor. I have personal experience with two libraries: poliastro and orbit-predictor (see disclaimers above). poliastro provides a generic framework for initial orbit ...


4

Check out PoliAstro by Juan! It's got great visualisation tools in addition to its propagation. Plyades too, is a library for orbit propagation with visualisation. I have heard that there is a cohesive effort to merge Plyades, PoliAstro and other orbital mechanics Python software (the Python Astrodynamics Project). I have also heard of, but not used, Orekit ...


4

Why is acceleration of the engines should not be defined as the current acceleration? alt_burn is not an acceleration. It is, I think, the altitude to start the suicide burn. I don't know why the other poster called it an acceleration. If part of an answer confuses you, it's usually a good idea to ask for clarification from the person who gave you the ...


4

For an instantaneous delta V, you definitely want to have the integrator stop exactly at the point in time where the change in velocity is to be applied. Dynamic step sized integrators stop where they want to stop. You'll need to force the issue and make the integrator stop at the desired point in time. You can specify a step size that makes a multistep ...


4

This answer doesn't talk about how to do it Python at all: rather how to deal with the rotation. I think once you can do that then turning the maths into Python is simple. Initially I'll assume that you are computing positions in terms of three orthogonal axes, and the positions look like $(x, y, z)$, and you're just projecting these down onto the $(x, y)$ ...


4

Start with answers to How can I plot a satellite's orbit in 3D from a TLE using Python and Skyfield? Plotting in 3D makes my head hurt too, but for some reason I like it when my head hurts. If you like you can paste python into your question; blocks of text that are indented by 4 spaces appear as a "code block". You can have a look at the 3d plotting in ...


3

You need to take into account that the Hohmann transfer and the Lambert solution receive different inputs and are therefore not equivalent. The Hohmann transfer is known to be the optimal two-impulse transfer between two coplanar, circular orbits. There are several proofs to this. The initial and final states are defined by position and velocity. Therefore, ...


3

Seeing that you already have the orbital period, you can use the mean anomaly directly to calculate the time parameter. This should work if you set time_of_periapsis to 0, as you have all the other required parameters. (GM is 1 since your python program assumes a unit mass system) Combine everything to a wrapper function, containing nothing but parameter ...


3

The required equations and much more are contained in the GPS Interface Control Document (IS-GPS-200L Table 20-IV. Broadcast Navigation User Equations), available on the GPS Website: https://www.gps.gov/technical/icwg/ This is the source of the equations given above by cy8berpunk


2

I know this is an old question but for funsies, here's a quick script. This question was asked when the .subpoint() feature wasn't supported in Skyfield to grab the long/lat for a satellite orbit projected onto the Earth. Here's a quick script that shows how to use Skyfield's built in functions with plotting using cartopy to build the map and projections. ...


2

Like Sam Low, I can also recommend PoliAstro, it's a great project with ever more contributors. I am using the Orekit Python Wrapper a lot. The learning curve in Orekit can be steep at the beginning, because there are hundreds of Java classes. However, when you know how to use it, it is the most capable astrodynamics (open-source) library I know. Also, it ...


2

NASA manages several repositories of data, one of interest is software which includes things like code for image processing working with google earth, A c++ 'mass atrocity predictor' or kernal for code verification. In terms of technology used I'd assume space agencies will use pretty much anything (lots of Fortran code there) that has ever existed, and some ...


2

Here's an example using a "soft" normalized Gaussian bump for the impulse. $$ \frac{1}{\sigma_1 \sqrt{2 \pi}} \exp\left(-\frac{1}{2}\left(\frac{t-t_0}{\sigma_1} \right)^2 \right) \mathbf{a_{bump}} $$ You can make it quite short, but even a short ramp up and down gives the integrator a chance to notice that things are changing and to reduce its internal ...


1

To add to Sam's point about accesses, there is also NASA's GMAT free software that allows you to report the accesses. Alternatively, you can calculate that by yourself. I had no need to calc that before, but I did some related calcs that could be easily transformed into access windows calc. My proposed way is that I would define the ground station of ...


1

If both orbits are in the same plane, then the optimal solution will be called hohmann transfer where you need to start from perigee of the inner orbit towards an apogee of the outer orbit. So you will start from 200 km perigee and end at 8000 km apogee. I hope this is clear now.


1

Summarizing some answers from the poliastro issue: The Lambert problem is nothing more than the two body boundary value problem under the assumption of Newtonian dynamics and spherical gravity. Therefore, to solve a case with a different gravity field, you would need to write the equations of motion and use a boundary-value problem solver. I don't know of ...


1

Not sure exactly what you want as the origin and what corrections for aberrations are wanted and whether you want Mercury itself or its barycenter but there didn't appear to be much/any difference in this case (no Mercurian moons...) but the following code defines a mapping for both and also for Parker Solar Probe (PSP) to the correct HORIZONS id. You can ...


Only top voted, non community-wiki answers of a minimum length are eligible