[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] Sensor FOV with DihedralFieldOfViewDetector



Hi Carlos,

Carlos Krefft <ckrefft@rsmas.miami.edu> a écrit :

I'm trying to model a satellite sensor FOV with the DihedralFieldOfViewDetector. I'm assuming this would be the right approach. I've attached the complete compile-able source to this email in case you want to take a look or run it.

I started out with the test code for DihedralFieldOfViewDetector:
https://www.orekit.org/forge/projects/orekit/repository/revisions/master/entry/src/test/java/org/orekit/propagation/events/DihedralFieldOfViewDetectorTest.java
And started modifying it to fit my need. I changed the propagator to use TLEPropagator with the appropriate TLE's for the day in question. (which I know works well because I'm using the same code to calculate satellite subtracks and line of sight visibility schedules and it's working perfectly.)

Now I get stuck in the parameters to feed the DihedralFieldOfViewDetector.

I changed:
final PVCoordinatesProvider sunPV = CelestialBodyFactory.getSun();
to
GeodeticPoint point = new GeodeticPoint(FastMath.toRadians(25.61379), FastMath.toRadians(-80.38402), 0.0); TopocentricFrame stationFrame = new TopocentricFrame(earth, point, "CSTARS Ground Station");
            final PVCoordinatesProvider aoiTarget = stationFrame;

So that it detects when the FOV encounters a target on earth and not the sun.

I left the Vector3D parameters the same because I don't know enough to know what to change.

And I changed the aperture1 & aperture2 variables like so:
final double aperture1 = FastMath.toRadians(20);
                final double aperture2 = FastMath.toRadians(45);

Because the sensor I'm trying to model has an incidence angle of 20-45 degrees.

So I'm pretty sure I could have multiple things wrong here. I'd appreciate if anyone can tell me what that is.

It looks good so far.

Here is an explanation for the axes and angles. The center, axes and angles define the rectangular shape of the Field Of View in spacecraft frame. A triple center/axis/angle defines a spherical lune (see <http://mathworld.wolfram.com/SphericalLune.html>). The center is a direction in the middle of the lune, and the axis is the common line at the intersection of the two planes defining the lune. In the diagram on the MathWorld link above, the axis would be a vertical vector and the center would point roughly towards the reader, slightly to the left. The angle is the half aperture, i.e. it is the angle between the center and one side of the lune. The intersection of two lunes sharing the same center and having orthogonal axes defines a spherical quadrilateral which is the field of view we want to define.

So if you have center = Vector3D.MINUS_J
               axis1 = Vector3D.PLUS_K
               halfAperture1 = FastMath.toDegrees(20)
               axis2 = Vector3D.PLUS_I
               halfAperture2 = FastMath.toDegrees(45)

You define a field of view pointing towards spacecraft -Y axis, which is 40 degrees wide (2 times 20 degrees) around +Z, and 90 degrees high (2 times 45 degrees) around X.

This field of view will look at the Earth only if attitude is such that -Y spacecraft axis points towards Earth.

Hope this helps
Luc



Thanks,
Carlos Krefft






----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.