Is Sensor Attitudes Possible?


It is possible to define the attitude to the spacecraft via the propagator method we use. However, I am wondering if it is possible with Orekit to assign a seperate attitude for the sensor we have on the satellite or not.

I would appreciate any discussion on this issue.


Hi @Echulion,

By “attitude” do you mean an Orekit Attitude object or just a rotation defining your sensor frame in spacecraft frame ?

In Orekit you can only bind one Attitude object to a Spacecraft.
And you can define a sensor field of view for aiming purpose (but I guess you already know that).

Could you elaborate on what you are trying to achieve ? It seems to me you would like a SpacecraftState to have several separate Attitude objects embarked.


Hello @MaximeJ, thanks for the quick reply.

Okay so let me put it like this. If I set up a simple FootprintOverlapDetector and say, I want to to have some angle where my FoV looks, I could simply change the attitude of the spacecraft which I have attached this sensor (so by changing attitude of s/c sensor’s attitude will also change in a sense).

I am trying to set up GroundFieldOfViewDetector for the detection of entrance-exit events of a s/c to the ground FoV. However, simpy using this method makes my ground FoV direct straight up towards “zenith”, whereas I would like to control its direction. How can I achieve that do you think?


Hello again @Echulion,

Not sure I understand, FoV here is attached to ground point.
If it looks towards Zenith it’s probably because you designed the FieldOfView in the constructor GroundFieldOfViewDetector to point to Vector3D.PLUS_K and used a TopocentricFrame.

If you want to look in a specific direction from the ground, you have to design a FoV vector with respect to the TopocentricFrame (X = East, Y = North, Z = Zenith)
I suggest you read this post for more information.

If you want your Fov to move with time, you have to design a similar detector using for example a TimeSpanMap instead of a basic fixed FoV.

Does this help ?


1 Like

@Echulion, just a side note I thought of as I was replying to this post.

If you want a moving ground FoV, you could also keep the FoV pointing towards Z direction (Vector3D.PLUS_K) and use the Frame attribute of GroundFieldOfViewDetector to implement the motion.

Frames are by design meant to move with time, by using a TransformProvider that will give you, at a given date, the Transform between the frame and its parent (a TopocentricFrame in the ground FoV case).

1 Like

@MaximeJ, thank you for the detailed explanation. I also checked the other posts you have linked, these information will definitely solve my issue.

Thanks again!