Kevin Ring suggested the following. Could someone please walk me through how this would be done in code?
If you're interested in the elevation angle as observed by a point on the ground, your plane of interest is probably the local horizontal plane. In other words, a plane with a normal parallel to the WGS84 ellipsoid surface normal. This plane isn't exactly the same as what a level would show you at that point on the Earth, but it's very close. To transform your target point in the Earth-fixed frame to this local horizontal plane, you can use Transforms.eastNorthUpToFixedFrame. That returns a Matrix4, which you then multiply your target point vector by, yielding a new vector. Normalize that vector, and then the elevation angle is simply asin(z) of the normalized vector.