[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orekit Users] Sensor FOV with DihedralFieldOfViewDetector
Carlos Krefft <email@example.com> 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:
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.
final PVCoordinatesProvider sunPV = CelestialBodyFactory.getSun();
GeodeticPoint point = new
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
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
This message was sent using IMP, the Internet Messaging Program.