Help for MARSPROJ
PURPOSE:
Simple program to accept an XYZ coordinate (expressed in the coordinate
frame specified by COORD), project it through the camera model, and report
the line/sample coordinates of the point in the supplied image.
The coordinates can be output to TAE variables as well via IMAGE_POS
(use v2param to access them).
In some sense, this program is the inverse of marstiexyz. That takes a
tiepoint in a stereo pair and reports the XYZ location; this takes an XYZ
location and reports the image position. A stereo image is not needed for
this process.
TBD: Implement reverse projection: given a line/sample position, report
the view ray origin and vector, and its intersection (if any) with the
surface model. Possibly even its intersection with another view ray a la
marsxyz.
EXECUTION:
marsproj inp=input.img xyz=\(3.4, 2.2, -1.0\) -rover
METHOD:
marsproj takes the given point, projects it through the camera model, and
reports the result. Couldn't be simpler.
There are two filters that might toss out points: FOV and missing the image.
Camera models do not necessarily work well when you go off the edge of the
image. They generally work for some time but can exhibit nonlinear behavior,
as in going too far of the edge could actually project back into the image.
For this reason, we toss out points that are outside the nominal FOV, as
computed by PIG. This can be overridden by the FOV parameter; FOV=180
will completely disable the check (but caveat emptor! That will allow
projection from behind the camera).
Also, if the projected ray does not hit the image plane, the point is
rejected. Sometimes however you want to get points that are just off the
edge of the image. Specifying -MISS will allow points that miss the image
plane to be projected.
HISTORY:
Oct. 07 Initial version: B. Deen
2021-03-04 rgd Added -MISS
COGNIZANT PROGRAMMER: Bob Deen
PARAMETERS:
INP
Input image.
Must be 1.
NAVTABLE
Corrected navigation
filename.
XYZ
Input XYZ coordinate
IMAGE_POS
Optional output
line/sample coordinate
FOV
Override computed FOV
MISS
Allow points that miss
CONFIG_PATH
Path used to find
configuration/calibration
files.
POINT_METHOD
Specifies a mission-
specific pointing
method to use
MATCH_METHOD
Specifies a method
for pointing corrections.
MATCH_TOL
Tolerance value for
matching pointing params
in pointing corrections file.
NORMAL
Surface normal vector.
GROUND
Surface ground point.
SURF_COORD
Coordinate system used to define
surface parameters.
SURFACE
The type of mars
surface to use INFINITY, PLANE,
SPHERE1, SPHERE2, MESH.
SURF_MESH
Mesh file for surface model
VARI SURF_CSFILE
File containing CS for surface
model
RSF
Rover State File(s) to use.
DEBUG_RSF
Turns on debugging of RSF
parameter.
COORD
Coordinate system to use.
COORD_INDEX
Coordinate system index for
some COORD/mission combos.
FIXED_SITE
Which site is FIXED for
rover missions.
SOLUTION_ID
Solution ID to use for
COORD_INDEX
See Examples:
Cognizant Programmer: