Help for MARSROUGH
PURPOSE:
MARSROUGH computes a measure indicating the roughness of the surface for
each pixel, given XYZ and UVW (surface normal) images as input. This
roughness value is a floating-point number representing the maximum peak-to-
peak deviation from the plane perpendicular to the normal, measured in the
same coordinate system that the XYZ's are expressed in.
The inputs for MARSROUGH are an XYZ image such as that created by the MARSXYZ
program, and a UVW image such as that created by MARSUVW. These can each
be single 3-band files or three 1-band files; see MARSXYZ and MARSUVW for
details.
The output of MARSROUGH is a single 1-band file of type REAL. As with
XYZ images, the output image may contain holes (missing data), defined
by MISSING_CONSTANT. In addition, values for which roughness could not
be calculated are assigned a different constant, specified by the BAD_ROUGH
parameter identified by the INVALID_CONSTANT label.
There will likely be many more holes than in the input images, since the
roughness algorithm requires a patch around each pixel.
EXECUTION:
marsrough inp=data.xyz out=data.rough uvw=data.uvw
where:
data.xyz is an input 3-band image of type REAL with the X, Y and Z values
at that pixel in meters (the unit is actually irrelevant).
data.uvw is an input 3-band image of type REAL with the U, V, and W components
of the unit vector for each pixel.
Any program producing 3D position could be used; marsxyz is simply an example.
METHOD:
NOTE: At the present time, it is ASSUMED that the input XYZ image is in
Site coordinates, while the input UVW image is in Rover coordinates. This
matches what is generated for MER. This will soon be updated to read the
coordinate system directly from the label.
The actual algorithm and core code was developed by Chris Leger of Section 348.
Description from him:
The surface roughness algorithm attempts to quantify the suitability of a
surface for RAT placement. At each point in an image, the algorithm examines
points lying within an inner disc and outer annulus about the 3D point at the
current pixel. The highest and lowest points (relative to the local surface
normal) lying in the annulus are recorded, as is the highest point in the
disc. The surface roughness is computed as MAX(max_disc_height,
max_annulus_height) - min_annulus height. The rationale is that the RAT
contact sensors could touch the surface at the low points in the annulus, and
the rest of the RAT hardware will be safe only if the high points in the
annulus and disc are less than 1cm above the low points. Low points in the
inner disc do not affect the RAT's safety.
The parameters have been tuned for MER RAT. While the algorithm may be
applicable to other missions, the parameters almost certainly would need
tweaking.
The output will be expressed in units defined by the coordinate system
specified by the COORD and COORD_INDEX parameters.
HISTORY:
06-30-03 Initial marsuvw by B. Deen, based on code from Chris Leger (348).
12-10-03 Major revamp of algorithm by C. Leger
COGNIZANT PROGRAMMER: B. Deen
PARAMETERS:
INP
Input XYZ images.
Must be 1 3-band file
or (x,y,z) triplet.
OUT
Output files.
Mast be 1 filenames
UVW
Input UVW images.
Must be 1 3-band file
or (u,v,w) triplet.
NAVTABLE
Corrected navigation
filename.
OUTER_RADIUS
Outer Radius of annulus.
INNER_RADIUS
Inner radius of annulus.
MAX_ROUGH
Maximum roughness
to output.
BAD_ROUGH
Value that represents
invalid computations.
MAX_WINDOW
Max window size.
MIN_CLOSE
Min # of points in the
plane fit.
X_CENTER
Center of bounding box.
Y_CENTER
Center of bounding box.
BOX_RADIUS
Half-width of bounding box.
CONFIG_PATH
Path used to find
configuration/calibration
files.
POINT_METHOD
Specifies a mission-
specific pointing
method to use
NOSITE
Disables coordinate
system sites.
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
DATA_SET_NAME
Specifies the full name given
to a data set or a data product.
DATA_SET_ID
Specifies a unique alphanumeric
identifier for a data set or data
product.
RELEASE_ID
Specifies the unique identifier
associated with the release to the
public of all or part of a data set.
The release number is associated with
the data set, not the mission.
PRODUCT_ID
Specifies a permanent, unique
identifier assigned to a data
product by its producer.
PRODUCER_ID
Specifies the unique identifier
of an entity associated with the
production a data set.
PRODUCER_INST
Specifies the full name of the
identity of an entity associated
with the production of a data set.
TARGET_NAME
Specifies a target.
TARGET_TYPE
Specifies the type of a named target.
See Examples:
Cognizant Programmer: