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: