Determining the x and y position of an object in an image given the objects location in space I am trying to come up with a method to be able to determine where in an image (x and y in pixels) an object will appear in a photo. I have the altitude, longitude and latitude of the object (in the fame of the camera) and I also have the altitude, longitude and latitude for the camera, as well as direction it is facing and its focal length.
For some context, the object will be an aircraft.
 A: This sounds like a job for homogeneous coordinates and projective geometry. I am relatively new to using projective geometry, and I know little about photography, so I might not give the best answer, but I'll give it my best shot. 
Always consider the origin to be the eye of the viewer. The way to compress the $3d$ image into some plane that you have chosen (say you are imagining the plane as between the observer and the observed object) is to compute the intersection of the line from the origin to the observed point with that plane. This is easy to do if you set up your frame of reference such that the camera is pointing along one of the coordinate axes.
If, say, you have erected the plane at $y=1$ and you are observing the point $(1,2,3)$. The intersection of the line through the origin and $(1,2,3)$ is just $(\frac12,\frac22,\frac32)$. Scaling this way brings the point into the plane $y=1$ with new $x$ and $z$ coordinates. These two axes coordinatize the picture that is appearing in that plane.
Now with real cameras I guess the image actually recorded is behind the point of observation, since rays are passing through the aperture and striking a surface behind it, creating an inverted image. The above trick still works, but then you'd actually be looking at the plane $y=-1$ and the relevant point is $(\frac{1}{-2},\frac{2}{-2},\frac{3}{-2})$, but in the end this image is just going to be a $180$-degree of the image you'd get in the $y=1$ plane, so they are basically identical.
In general, given the plane $y=d$, you're going to transform $(a,b,c)$ to $(\frac{ad}{b},\frac{bd}{b},\frac{cd}{b})$ in order to scale the "real world" point into the "photo world" point of the plane you're using.
I would recommend taking the coordinates of the initial frame of your camera and performing a coordinate transformation to new axes so that one of the new axes is along the camera direction. I think (if I'm not mistaken) that the plane you're interested in is $y=d$ where $d$ is the focal length of the camera.
After performing the scaling I described above, you'll have a plane parameterized by the $x$ and $z$ coordinates of the new frame. The origin of this plane is the direction the camera is pointing in.
