# Relative vector representation

Hi,

I need to represent both a point on a one axis ellipsoid/bodyshape’s surface and a satellite in orbit as 3D vectors relative to the centre of the one axis ellipsoid/bodyshape. Is this possible?

Any help would be greatly appreciated.

Hi @jarryd,

Welcome to the Orekit forum !

When the OneAxisEllipsoid body is created, it is attached to a frame (usually ITRF for the Earth).

Afterwards you can use the `getTransformTo` method from `Frame` class to convert any 3D vector in any frame into you body attached frame.
Or you can use the `transform` method from `OneAxisEllipsoid` to convert a vector into a geodetic point or the other way around.

If not, could you please elaborate on what you want to do ?

Cheers,
Maxime

1 Like

That does help a little. Basically what I’m trying to do is work out whether a satellite of known position orbiting the Earth can be seen from a lat/long position on the Earths surface. I considered using relative positional vectors (as mentioned in the post) but have also considered using a GroundFieldOfViewDetector to basically check whether the satellite moves through the positions field of view within a small time frame.

In your opinion, which would be the best way to approach this?

Thank you!

Jarryd

Hi,

Maybe you can try to use an `ElevationDetector`? The goal of this detector is to check satellite visibility from a ground station defined by its lat/long position and its body shape.
Here an example on how to initialize an elevation detector:

``````        // Earth and frame
double ae =  6378137.0; // equatorial radius in meter
double f  =  1.0 / 298.257223563; // flattening
Frame itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, true); // terrestrial frame at an arbitrary date
BodyShape earth = new OneAxisEllipsoid(ae, f, itrf);
0.0);
TopocentricFrame topo = new TopocentricFrame(earth, point, "Gstation");
ElevationDetector detector = new ElevationDetector(topo);
``````

Then, the detector can be added to your orbit propagator. You can also add to the detector an `EventHandler` in order to perform some actions during the event detection (print the detection date, etc).

Bryan

Thank you Bryan,

That is an immense help. I should be able to use this approach.

Thanks again to you and Maxime.