lithos
Aligns maplets to the current shape model and will provide slight changes to the shape (stored in MAPFILES).
Lithos is the key for SPC. It works on a single landmark, which defined the associated maplet. This landmark must be created (i.e. fully defined) and all the images it includes must be shifted so that everything is aligned. Once those are done, you can calculate the topography which includes identifying other maps that overlap, creating a template, and then solving the whole system.
The output from make_script(P) is used as input to Lithos and LithosP for batch processing. The mark_script program will create a script for each landmark that you will process, which is taken as input (e.g. lithos < LAND01.IIN > LAND01.OOT)
Build a template
- Option 0
Align images
- Option 1
Calculate topography
- Option 2
Housekeeping functions
- Option c - create a landmark
- Option i - "input" a landmark. Basically, load and start using the landmark.
- Option e - eliminate
- - Good values to use, "0 40 0.2 0.2 0 2"
- - Based on: Input INVLIM, SLIM, CLIM, ILIM, RSMN, RSMX
- INVLIM
- Fraction of the landmark that is obscured by other objects (ex. If a large boulder is in the way)
- 1000 * max invisible fraction (0-1000).
- Suggested: 0
- 0 keeps everything
- SLIM
- Emission Angle: Eliminate the image if above the entered value (user range: 0-90)
- Suggested: 40-60, eliminate images with big emissions angles.
- 90 keeps everything
- CLIM
- How much of the maplet is visible: Eliminate the image if below the entered value (user range: 0-1.0).
- Suggested: 0.2, the image must only contain 20% of the maplet.
- 0 keeps everything
- ILIM
- How much of maplet is in shadows: Eliminate the image if below the entered value (user range: 0-1.0).
- Suggested: 0.2, the image cannot have more than 20% in shadow.
- 0 keeps everything
- RSMN
- Minimum ratio of the image to maplet, eliminate the image if less than the entered value (user range: 0 to inf).
- Suggested: 0, accept the highest resolution images you can.
- 0 keeps everything
- RSMX
- Maximum ratio of the image to maplet, eliminate the image if greater than the entered value (user range: 0 to inf).
- Suggested: 2, reject images with less than twice the resolution of your maplet.
- 999999 keeps everything
Input - optional file
- aaa.INN - a script that sends batch commands
Input - stdin
- Basic steps
- Create a landmark, "C"
- Input a landmark (really that is selecting it for use), "I"
- Creating a template (the virtual idea of the topography and albedo based on the maplets), 0, 0, 40
- Aligning the maplets (0 for auto, 1 for manual, 2 for move all maplets, 3 to align to a specific maplet)
- Update and save, "U 1"
Output
- aaa.OOT
- landmark and map files
- LMRK_DISPLAY0.pgm
- LMRK_DISPLAY1.pgm -- stretched version
- slopeb.pgm - shows slope both in x and y
PowerPoint Notes
Description
- Creates landmark files, determines landmark topography (MAPFILE), and locates landmark center in images
Inputs
- INIT_LITHOS.TXT
- SUMFILESR
- SPC IMG
- NOMINALS
- SPICE
- MAPLETSL
Outputs
- SUMFILESL
- LMKFILESL
- MAPLETSL
- LMRKLIST.TXT
Process Overview
Maplet Definition
3D topography & relative albedo model of a portion of the surface
Control vector V from body center to origin of local coordinate system
- Local coordinate system axes ui(i=1, 3) with u3 normal to the local surface
- 2-D grid, typically 99x99 pixels with positions x=(x1, x2) relative to origin
- Local heights h(x1, x2) and relative albedos a(x1, x2) at each grid point
Camera coordinate system ci(i=1, 3) and S/C position W
- Maplet control point not tied to a specific surface feature
- Maplet pixel scale not tied to specific image resolution
Specifying a Maplet
- Maplets specified by selecting control point based on
- (1) pixel, line position of a given image
- (2) Lat/Lon
- (3) Relative to local coordinates (x1, x2) of existing nearby maplet
- Setting scale (km/pix), #pixels/row
(1) => (p, l) mapped onto surface, control vector V determined by bi-linear interpolation from heights of nearest 4 vectors of a-priori topography. Same with (2), (3)
- Construct local tangent plane and set u3 normal to local surface
Interpolate heights from a-priori topography to maplet pixels => h(x1,x2)
Picture Description
- Left: empty placeholder maplet wrt which we select maplet centers
- Right: Control point distribution on Enceladus based on Lat/Lon
Extracting Image Data
- Automatically find all images that contain area of given maplet, whole or in part, based on the a-priori geometry
- Automatically filter candidate images based on number of criteria such as;
- Resolution ratio between maplet/image scale (typically 1/3 - x3)
- Range of off-nadir view angles at maplet center (typically up to 60 )
- Brightness threshold of portion of image extract
- Any number of images (3 - few hundreds) used
- Maplet pixels projected in focal plane and image brightness resampled on maplet pixels via bilinear interpolation
Dark & invisible pixels are ignored & pixel brightness rescaled
Extracting Image Data With No A-Priori Topo Information
- Zero initial albedo
- Flat slopes from smooth sphere a-priori shape
- Predicted brightness is a near uniform value across template
Extracting Image Data With A-Priori Topo Information
- Resampled images at 175 m/pix projected on existing low-res topography at 500 m/pix
- Predicted brightness is derived from that low resolution topography
Menu Description
- Be aware that bold characters are inputs, boxed characters are code output, and normal text is description. Some of the descriptions are in the code, but are not boxed in this wiki
LANDMARK/MAPLET CONSTRUCTION
0. Find template
1. Align landmarks
2. Find heights
O. Attach map to maps or limbs
LANDMARK/MAPLET I/O AND CREATION
I. Input landmark
- Input 6 character name
U. Update landmark files
C. Create new landmark
- Input 6 character landmark name
R. Replicate or Rename landmark
- Input 6 character old landmark name
- Input 6 character new landmark name
- Delete old landmark? (y/n)
S. Change scale, qsz or orientation
G. Turn on rename
ADJUST INPUT DATA AND NOMINALS
N. Find normal
- Normal from radius vector
- Normal from heights
- Normal from shape
- Normal from stereo
V. Find V, Z or PTG
- V from Z and pointing
- Z from V and pointing
- PTG/SCOBJ from Z and V (selected image)
- PTG/SCOBJ from Z and V (current images)
A. Reset albedo or slopes
M. Get heights from shape model
B. Get heights from surrounding map
- List possibilities? (y/n)
if y
CP0002 0.0500 1.0000 CQ0004 0.0500 1.0000 CQ0008 0.0250 1.0000 CQ0009 0.0250 0.9822 CQ0017 0.0120 0.9153 DP0002 0.0500 0.8923 ...... ...... ......
- Input a 6-character name.
- 0 to cancel
- List possibilities? (y/n)
X. Turn on/off extract filter. Tol = 0.050
DELETE, ELIMINATE OR IGNORE FILES
D. Delete or Disconnect landmark
E. Eliminate pictures from landmark
c. Continue
a. Auto remove
n. Auto remove (new pictures)
m. Manual remove
p. Check peripheral visibility
o. Remove no-correlation pix
t. Auto change topo flag
For a, n, & t Input INVLIM, SLIM, CLIM, RSMN, RSMX
P. Picture status
- Tuck or untuck
- Toss
L. Turn off picture restriction
INFORMATION AND DISPLAY
F. Find maplets containing surface point
Z. Use zoom display
H. Hide screen output
Example of Finding a Tempalte
../LITHOSPHERE/LITHOS
i
CQ0082 - input landmark
n - no new pictures (auto)
n - no new pictures (manual
x - turn on extract filter
.025 - filter setting
0 - find template
CQ0082 Lat = 34.721 Lon = 30.609 Rad = 7.830 k chi lambda phi res 1 0.982 1.657 0.000 0.013 2 0.980 1.758 0.020 0.013 3 0.978 1.894 0.000 0.013 . . . 19 0.975 1.566 0.000 0.013 20 0.890 0.564 0.388 0.011 21 0.967 1.200 0.106 0.006 22 0.974 1.467 0.039 0.006 Picture to toggle a use all b use registered c use correlated 0 end/continue q Quit
a use all pics (find template will then be repeated)
0 find template
CQ0082 Lat = 34.721 Lon = 30.609 Rad = 7.830 1 0.982 1.657 0.000 0.013 2 0.980 1.758 0.020 0.013 3 0.978 1.894 0.000 0.013 . . . 19 0.975 1.566 0.000 0.013 20 0.890 0.564 0.388 0.011 21 0.967 1.200 0.106 0.006 22 0.974 1.467 0.039 0.006 Picture to toggle a use all b use registered c use correlated 0 end/continue q Quit
0 - find template
40 - entering number of iterations
rms brightness residual = 0.0263363486 rms brightness residual = 0.025349268 rms brightness residual = 0.0248495566 rms brightness residual = 0.0245736285 rms brightness residual = 0.0244101752 . . . rms brightness residual = 0.0237731646 rms brightness residual = 0.0237679522 rms brightness residual = 0.0237629545 rms brightness residual = 0.0237581461 rms brightness residual = 0.023753511 slope sigma = 0.20933789259641114 -0.13586 0.16231 -0.42437 0.16636 -0.21634 0.21424 gc tmpl.pgm
(slope sigma above is not correct for example landmark)
gc LMRK_DISPLAY1.pgm
z (zoom display)
gc LMRK_DISPLAY1.pgm
- Useful when hundreds of images are displayed
- We have used the brightness variations in 22 pictures at varying geometries and illuminations to solve for a “template”. This is a slope/albedo map of the landmark.
- This only works if the landmarks are roughly aligned (Option 1) and the map normal (Option N) is roughly correct and the pointings and s/c positions (see REGISTER) are roughly correct.
Example of Aligning Landmarks
1 - aligning landmarks
0. Auto align 1. Individual shift 2. Global shift 3. Align with picture 4. Align with gradient
0 - auto align
1 - value selected for spacing (larger values do a dumber correlation over a wider range)
1 M0130996017 -0.001 0.006 0.983 +++++ 2 M0130996102 0.013 -0.008 0.980 +++++ 3 M0130996187 0.012 0.003 0.979 +++++ 4 M0131278391 -0.052 -0.011 0.972 +++++ 5 M0131278655 0.010 -0.005 0.979 +++++ 6 M0131278919 0.006 0.004 0.977 +++++ 7 M0131279183 0.002 0.001 0.983 +++++ 8 M0131279711 0.014 -0.011 0.977 +++++ 9 M0132106609 -0.002 0.003 0.944 +++++ 10 M0132106706 0.007 0.045 0.896 +++++ 11 M0132225961 0.012 0.003 0.960 +++++ 12 M0134213600 0.012 0.014 0.952 +++++ 13 M0135729214 -0.001 0.000 0.983 +++++ 14 M0135844895 0.029 -0.002 0.934 +++++ 15 M0135844957 0.006 0.011 0.960 +++++ 16 M0137457715 0.020 0.009 0.979 +++++ 17 M0138840893 -0.002 0.005 0.979 +++++ 18 M0140968493 0.004 0.008 0.981 +++++ 19 M0143092151 -0.006 -0.003 0.976 +++++ 20 M0132106900 0.000 0.007 0.890 +++++ 21 M0138580606 0.010 0.012 0.967 +++++ 22 M0138580916 0.004 -0.003 0.974 +++++
n - new spacing? (y/n)
0. continue. 1. halve shifts. 2. quarter shifts.
0 - continue
y - update landmark pixel locations? (y/n)
1 - (Don't know what this does)
0. Auto align 1. Individual shift 2. Global shift 3. Align with picture 4. Align with gradient
If 1 (Individual shift) selected
1 - individual shift
5 - picture to move landmark in. 0 to quit.
2,6 - input shift of windowin pixels
0 - picture to move landmark in. 0 to quit. (window shift)
If 2 (Global shift) selected
2 - global shift
2,6 - input shift of window in pixels
If 3 (Align with picture) or 4 (align with gradient) selected
3 or 4
4 - entered key picture (0 for auto)
1 - value entered for spacing
- “3. Align with picture” is like auto align except that it uses imaging data instead of the template.
- “4. Align with gradient” is like auto align except that it uses the gradients normal to the sun direction instead of the template.
- Note that the key picture gets moved to the first position.
- Note that all pictures except the key pictures have their topo flags set to *. To turn them back you’ll need to type a “0” followed by a “a” from the main menu.
- Note that we move the window around the image data and not the data itself
- We prefer to use 99x99 pixel landmarks (qsz=49). Because there is a single black pixel between displays, common points should always be at the same location, modulo 100.
Example of Finding Heights
2 - finding heights
TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Restart Q. Exit
2 - include existing heights
0.001 - include fraction of points
8 - fill with shape
1 - auto include neighboring maps
4 - include limb vectors
1,2.5,3 - input expansion, res/scale limit, d_hgt limit
0 - begin integration
.025 - inputted weight
30 - entered number of iterations
gc slope.pgm
- If this display has “pimples” it means that some constraining heights are out to lunch. Change the weight (2) to a smaller value like 0.01 and do more iterations (1).
0. end iterations 1. more iterations 2. change weight
0 - end iterations
- We have integrated the slopes we got in Option “0” to produce a height map. The integration is conditioned by existing heights from the previous distribution (2), overlapping maps (1), limbs (4). We can also get heights from the shape model (3) and from differential stereo (6). The latter is used at the very beginning when there are no other options.
- We have not saved our new map yet. To do that type “u” from the main menu and then “1” . The other u option “0” just saves the .LMK file and removes the .MAP file.
Example of Attaching Map to Maps or Limbs
o
RECENT (=CQ0082) - input 6-character landmark name
y - Reset?(y/n)
1. Automatic 2. Manual 3. Limbs 4. Detach from limb or landmark
If 2 (Manual) is selected:
Overlapping maps: CQ0017 0.0120 CQ0046 0.0060 CQ0049 0.0060 CQ0077 0.0060 CQ0080 0.0060 CQ0081 0.0060
CQ0046 - entering name of overlapping map. (0 to end)
gc tmpl.pgm
0. laplacian correlation. 1. albedo correlation 2. gradient correlation
0 - laplacian correlation
0.0521 0.0998 0.9254 0.9977
y - iterate offset?(y/n)
y - ?
y - ?
n - ?
y - save result?(y/n)
y - reciprocate (correlation I think)?(y/n)
o
RECENT - inputted 6-character landmark name
y - reset? (y/n)
1. Automatic 2. Manual 3. Limbs 4. Detach from limb or landmark
1 - Automatic
CQ0017 -0.1161 0.2823 0.6792 0.9825 0.0211 -0.0060 0.6810 0.9819 0.0010 0.0024 0.6811 0.9819 0.0003 0.0000 0.6811 0.9819 -0.0937 0.2787 -0.3610 CQOO82 0.1085 -0.1120 0.9092 0.9974 0.0073 -0.0067 0.9141 0.9974 0.0006 -0.0009 0.9141 0.9974 0.0000 -0.0001 0.9141 0.9974 0.1164 -0.1197 0.1653
o
RECENT - inputted 6-character landmark name
n - reset? (y/n)
1. Automatic 2. Manual 3. Limbs 4. Detach from limb or landmark
3 Limbs
y - clear? (y/n)
1,5,3 - input expansion, res/scale limit, d_hgt limit
M0126110079 286.05 103.29 0.02 33 M0126606842 461.07 199.50 0.05 19 M0127878280 47.32 188.06 0.05 26 M0128123031 263.28 105.08 0.03 62 M0128124639 160.01 81.49 0.01 11 M0128164602 420.62 167.69 0.02 12
o
CQ0082 - inputted 6-character landmark name
n - reset? (y/n)
1. Automatic 2. Manual 3. Limbs 4. Detach from limb or landmark
4 - Detach from limb or landmark
CQ0046 - entered 6-character image (12-character works too). 0 to end.
0 - entered 6-character image (12-character works too). 0 to end.
- We have now determined the location of landmark CQ0082 relative to overlapping landmarks and limbs of some images, in addition to its location on the body in other images.
- Note the use of “RECENT” as an input.
Slope and albedo estimation