# The Meaning of halfApertureAcrossTrack and halfApertureAlongTrack

Hello, I would like to ask how to understand the half Aperture AlongTrack and half Aperture AcrossTrack here. I would like to know what exactly these two angles correspond to in the actual satellite sensor?

// Defining rectangular field of view
FieldOfView fov = new DoubleDihedraFieldOfView(Vector3D.MINUS_I, // From satellite to body center
Vector3D.PLUS_K, halfApertureAcrossTrack, // Across track direction
Vector3D.PLUS_J, halfApertureAlongTrack, // Along track direction
0); // Angular margin

``````    // Defining attitude provider
AttitudeProvider attitudeProvider = new LofOffset(inertialFrame, LOFType.LVLH);

// Defining your propagator and setting up the attitude provider
Propagator propagator = new KeplerianPropagator(initialOrbit);
propagator.setAttitudeProvider(attitudeProvider);
``````

This is the source code from the orekit libraryďĽš
public DoubleDihedraFieldOfView(final Vector3D center,
final Vector3D axis1, final double halfAperture1,
final Vector3D axis2, final double halfAperture2,
final double margin) {
super(createPolygon(center, axis1, halfAperture1, axis2, halfAperture2), margin);
}

The `DoubleDihedraFieldOfView` defines a field of view that is a subset of the unit sphere around the satellite defined by two dihedras. A dihedra is a wedge between two planes whose intersection line contains the center of the sphere. Each dihedra is symmetrically with respect to a center direction that it observes. The two dihedra share the same center direction.

So if in the constructor above you say `center` is `Vector3D.PLUS_K`, this means the two dihedras will have `Vector3D.PLUS_K` in the middle of the field of view. Then if you say `axis1` is `Vector3D.PLUS_I` and `halfAperture1` is `FastMath.toRadians(45.0)` this means the first dihedra will be defined by two planes that have the `Vector3D.PLUS_I` axis as their shared intersection and that are both 10 degrees away from the center. So one of the limit plane will be the bisecting plane between +J and +K and the other will be the bisecting plane between -J and +K. This dihedra will have a total aperture of 90Â° (since the half aperture is 45Â°). For the second dihedra, you woul use for example `axis2` is `Vector3D.PLUS_J` and the same `FastMath.toRadians(45.0)` hafl aperture. Then you would have defined a square field of view (projected on the unit sphere), with +K at the center of the field of view.

So, how could we understand the Vector3D.PLUS_K and Vector3D.PLUS_I and Vector3Dâ€¦?Besides, I can barely understand the dihedras, what is this?
In addition, I am also not familiar with dihedra, so could you please first introduce dihedra, then explain how satellites and dihedra are connected, and then introduce Vector3D.PLUS_K and Vector3D.PLUS_I and other Vector3D.PLUS content, and then talk about the content of hafl aperture.There is some mathematical knowledge in between, which I have not studied. Could you recommend a paper or book for me to learn?

`Vector3D.PLUS_I` is a constant representing the canonical vector with 3D coordinates (1, 0, 0). `Vector3D.PLUS_J` is a constant representing the canonical vector with 3D coordinates (0, 1, 0). `Vector3D.PLUS_K` is a constant representing the canonical vector with 3D coordinates (0, 0, 1).

A dihedra is the 3D angular sector on the unit sphere between two planes that contain the origin, see dihedral angle. It can be defined by the axis that is the â€śhingeâ€ť of the dihedra, the aperture (or half aperture in Orekit API) and the direction of the center.

Two dihedra set up such that the two axes (the two â€śhingesâ€ť) and the center are all orthogonal to each other define a â€śrectangularâ€ť zone projected on the unit sphere, this is what `DoubleDihedraFieldOfView` represents.

1 Like

Love the â€śhingeâ€ť analogy @luc, great explanation !