Basic Procedure
The following is a very basic cook book type of way to fix bad landmarks that usually works.
How to Fix Landmarks
Once a problem landmark is identified, the executable lithos can be entered in the working directory to fix the landmark. The steps to do this are as follows:
Step 1: Loading Landmark
The first major step in fixing a bad landmark is to select that landmark within lithos. As an example, the landmark EM0004 in the find_nofit output above has major errors. To select this landmark the following commands are entered in the lithos executable:
i EM0004 n n
The output of these commands looks like this:
Current landmark = NONE Main Menu: Q 0123O IUCRSG NVAMBX DEPL FZH? i >i Input 6-character landmark name.[Q] EM0004 -0.31014 0.47683 -0.31113 0.29307 gc slope.pgm Check for more images? y[n] n Include a single image? y[n] n
Step 2: Aligning Landmark
With a landmark identified in lithos, the next step is to align the landmark within various images of which it is present to one another. To do this, the following commands are typed into the lithos main menu.
1 0 1
The output of these commands looks like this.
Main Menu: Q 0123O IUCRSG NVAMBX DEPL FZH? 1 >1 0. Auto align 1. Individual shift 2. Global shift 3. Align with picture 4. Align with gradient q. Quit 0 0 k picnm lambda phi cvg nlmk 1 M595328241F0 1.541 0.000 1.000 347 2 M595414641F0 1.093 0.000 1.000 140 3 M595415038F0 1.282 0.000 1.000 171 4 M595415434F0 1.227 0.000 1.000 188 5 M595415831F0 1.301 0.000 1.000 203 6 M595416228F0 1.312 0.000 1.000 230 7 S595062704F1 1.391 0.000 1.000 173 8 S595063099F1 1.138 0.000 0.548 189 9 S595063212F1 1.385 0.000 1.000 202 10 S595063299F1 1.474 0.000 0.702 93 11 S595063602F1 1.390 0.000 0.885 190 12 S595063694F1 1.372 0.000 1.000 123 13 S595063997F1 1.385 0.000 0.550 201 14 S595281612F2 1.857 0.000 0.569 53 15 S595282021F2 0.170 0.000 0.801 112 gc LMRK_DISPLAY0.pgm gc LMRK_DISPLAY1.pgm check display enter spacing 1 1 1 M595328241F0 0.0000 0.0000 0.000 2 M595414641F0 -0.014 0.116 0.825 ++++ 3 M595415038F0 -0.012 0.124 0.850 ++++ 4 M595415434F0 -0.044 0.061 0.827 ++++ 5 M595415831F0 -0.034 -0.109 0.790 ++++ 6 M595416228F0 0.231 0.101 0.698 +++ 7 S595062704F1 -0.027 0.018 0.685 +++ 8 S595063099F1 -0.027 0.017 0.821 ++++ 9 S595063212F1 -0.015 -0.005 0.778 ++++ 10 S595063299F1 -0.017 -0.005 0.854 ++++ 11 S595063602F1 -0.010 0.005 0.775 ++++ 12 S595063694F1 -0.013 -0.010 0.779 ++++ 13 S595063997F1 -0.017 -0.016 0.670 +++ 14 S595281612F2 0.075 0.159 0.608 +++ 15 S595282021F2 -0.011 0.000 0.684 +++ 0.068 0.069 new spacing? y[n]
From the output above, the + marks next to each picture indicate how well its respected image is correlated with the others/topography. The more landmarks the better. The columns to the right of the image names indicate how much each image has moved in the x, y, and z direction (by pixels?)respectfully. For the the example, all the images seem to be well correlated except for the first image. This means that the first image needs to be moved more than 1 space (which was previously selected) to correlate. Thus the following commands are entered to see if the first image will become correlated.
1 3
These give the following output.
new spacing? y[n] y enter spacing 3 3 1 M595328241F0 2.703 5.959 0.819 ++++ 2 M595414641F0 -0.266 0.064 0.877 +++++ 3 M595415038F0 -0.269 0.087 0.897 +++++ 4 M595415434F0 -0.185 0.116 0.869 +++++ 5 M595415831F0 -0.063 0.138 0.830 ++++ 6 M595416228F0 0.283 0.534 0.751 ++++ 7 S595062704F1 0.101 -0.178 0.795 ++++ 8 S595063099F1 -0.007 -0.115 0.891 +++++ 9 S595063212F1 0.044 -0.144 0.861 +++++ 10 S595063299F1 0.002 -0.103 0.899 +++++ 11 S595063602F1 0.057 -0.243 0.853 ++++ 12 S595063694F1 -0.007 -0.138 0.862 +++++ 13 S595063997F1 0.099 -0.437 0.778 ++++ 14 S595281612F2 0.0000 0.0000 0.000 15 S595282021F2 -0.183 0.015 0.715 +++ 0.719 1.558 new spacing? y[n]
As can be seen, the first image appears to be correlated, but now the fourteenth image is all messed up. At this moment it worth visually inspecting the images for any irregularities. The best way to visually inspect the images is to use the updateDisplay tool Eric provided. See the updateDisplay tool for instructions on how to set up and use. Type the following commands first to save the newly positioned images.
n 0 y
The images and maplets for landmark EM0004 look like this.
As can be seen from the picture above, it is hard to identify landmarks in images 1 and 14. Image 14 is especially hard to identify landmarks in due to it showing a limb (outline of object/asteroid). At this point it would usually be beneficial to just delete the images that are too poor to visually inspect for landmarks. This would be done using the following commands from the lithos main menu.
e m (type image number) 0
However, in this example only 15 images contain landmark EM0004. Since only a few images contain landmark EM0004 all should be utilized in order to have an accurate shape model where landmark EM0004 is located. Had a lot of images (more than 30) contained landmark EM0004 then some images could be deleted and the shape model would still be accurate at EM0004s latitude and longitude.
Step 3: Building Template
Since the images are having trouble aligning to one another we will next rebuild the template and see if that helps. To rebuild the template enter in the following commands from the lithos menu. Do a u 1 first to save though.
1 0 c .7 0 0 40
The output is as follows.
Main Menu: Q 0123O IUCRSG NVAMBX DEPL FZH? 0 >0 BG0001 Lat = 59.954 Lon = 239.830 Rad = 0.256 k chi lambda phi res 1 0.714 1.541 0.000 0.752 2 0.851 1.090 0.000 1.703 3 0.870 1.318 0.000 1.751 4 0.819 1.250 0.000 1.834 5 0.787 1.311 0.000 1.903 6 0.701 1.291 0.000 2.022 7 0.685 1.392 0.000 1.129 8 0.821 1.110 0.000 1.117 9 0.778 1.385 0.000 1.121 10 0.854 1.474 0.000 1.128 11 0.774 1.390 0.000 1.112 12 0.779 1.372 0.000 1.129 13 0.669 1.385 0.000 1.131 14 0.633 1.887 0.000 0.276 15 0.661 0.170 0.000 0.279 Picture to toggle a use all b use registered c use correlated 0 end/continue q Quit c c Enter correlation limit .7 Repeat find template Current landmark = BG0001 SCALE = 0.000700 QSZ = 49 Lat/Lon/Rad = 59.954 239.830 0.256 Region = BG gc LMRK_DISPLAY0.pgm gc LMRK_DISPLAY1.pgm check display Main Menu: Q 0123O IUCRSG NVAMBX DEPL FZH? 0 >0 BG0001 Lat = 59.954 Lon = 239.830 Rad = 0.256 k chi lambda phi res 1 0.744 1.538 0.000 0.752 2 0.848 1.033 0.000 1.703 3 0.867 1.259 0.000 1.751 4 0.818 1.268 0.000 1.834 5 0.785 1.284 0.000 1.903 6 0.690 1.304 0.000 2.022 7 0.678 1.389 0.000 1.129 8 0.819 1.204 0.000 1.117 9 0.776 1.383 0.000 1.121 10 0.853 1.468 0.000 1.128 11 0.770 1.392 0.000 1.112 12 0.779 1.371 0.000 1.129 13 0.660 1.381 0.000 1.131 14 0.656 0.169 0.000 0.279 15 0.634 1.857 0.000 0.276 * Picture to toggle a use all b use registered c use correlated 0 end/continue q Quit 0 0 Enter number of iterations 50 rms brightness residual = 0.13937285423817991 rms brightness residual = 0.13840215448620702 rms brightness residual = 0.13777823364788827 rms brightness residual = 0.13745987583507183 rms brightness residual = 0.13726859236918110 rms brightness residual = 0.13715577463433185 rms brightness residual = 0.13711308843159803 rms brightness residual = 0.13710770184062157 rms brightness residual = 0.13713293085743503 rms brightness residual = 0.13718012783095987 rms brightness residual = 0.13725043216381239 rms brightness residual = 0.13733962671281447 rms brightness residual = 0.13743805692425473 rms brightness residual = 0.13755314736780155 rms brightness residual = 0.13767993754902150 rms brightness residual = 0.13779006127113091 rms brightness residual = 0.13793847079737773 rms brightness residual = 0.13809373550181991 rms brightness residual = 0.13824985689595348 rms brightness residual = 0.13841032261874156 rms brightness residual = 0.13857504745091770 rms brightness residual = 0.13874353582594620 rms brightness residual = 0.13891712887558788 rms brightness residual = 0.13909222613840685 rms brightness residual = 0.13926782631589679 rms brightness residual = 0.13943806033377015 rms brightness residual = 0.13959857761143235 rms brightness residual = 0.13978534326524650 rms brightness residual = 0.13997258324473152 rms brightness residual = 0.14016231434640636 rms brightness residual = 0.14034920471442239 rms brightness residual = 0.14053629681298557 rms brightness residual = 0.14072443479551688 rms brightness residual = 0.14091525137218253 rms brightness residual = 0.14110541856417053 rms brightness residual = 0.14129459208635833 rms brightness residual = 0.14148757800416745 rms brightness residual = 0.14167656885248883 rms brightness residual = 0.14186572881015189 rms brightness residual = 0.14205289751815300 rms brightness residual = 0.14223865519752718 rms brightness residual = 0.14242609748894119 rms brightness residual = 0.14261308861733168 rms brightness residual = 0.14279885586777571 rms brightness residual = 0.14298459351292703 rms brightness residual = 0.14317155816340854 rms brightness residual = 0.14335416982157603 rms brightness residual = 0.14353696849322983 rms brightness residual = 0.14371599325953929 rms brightness residual = 0.14389491925724357 slope sigma = 0.11257585131244863 -0.36410 0.37431 -0.60000 0.49910 -0.78641 0.73300 gc tmpl.pgm Current landmark = BG0001 SCALE = 0.000700 QSZ = 49 Lat/Lon/Rad = 59.954 239.830 0.256 Region = BG gc LMRK_DISPLAY0.pgm gc LMRK_DISPLAY1.pgm
The major thing to note from this output is the * next to the image names that are shown after the second 0 command. Those * symbols indicate which images are not being used to make the template. Essentially that means that all images with a * that are not correlated do not have to be properly aligned since they were not included in the making of the template and will not be used in the making of the EM0004 landmark region of the shape model. All images that are used to make the template must be properly correlated though.
With the template rebuilt, step 2 will be repeated to see how the images realigned. The images are correlated as follows.
enter spacing 1 1 1 M595328241F0 -0.007 -0.068 0.755 ++++ 2 M595414641F0 0.057 0.177 0.890 +++++ 3 M595415038F0 0.123 0.214 0.927 +++++ 4 M595415434F0 0.049 0.099 0.919 +++++ 5 M595415831F0 0.106 -0.117 0.857 ++++ 6 M595416228F0 -0.038 -0.451 0.754 ++++ 7 S595062704F1 -0.088 0.076 0.725 ++++ 8 S595063099F1 -0.040 0.032 0.862 +++++ 9 S595063212F1 -0.035 -0.005 0.825 ++++ 10 S595063299F1 -0.013 -0.004 0.883 +++++ 11 S595063602F1 -0.052 0.043 0.818 ++++ 12 S595063694F1 0.008 -0.028 0.819 ++++ 13 S595063997F1 -0.098 0.050 0.708 +++ 14 S595282021F2 0.016 0.006 0.724 ++++ 15 S595281612F2 0.0000 0.0000 0.000 0.064 0.151
As the code output above shows, images 1 through 14 correlate really well, but image 15 poorly aligns. However, since image 15 was not used in the making of the template we ignore it. Thus, we are now good to make the topography.
It is important to note that the images may still not be properly correlated after a template is made. Thus, multiple iterations of steps 2 and 3 may have to be performed or an image might have to be manually moved (explained in other link).
!!!!!!!!!!!!!!!!!!!!MAKE SURE YOU DO A U 1 TO SAVE!!!!!!!!!!!!!!!!
Step 4: Building Topography
Next, topography is built from the template that was created. To do this the following commands are inputted from the lithos main menu.
2 8 2 .01 1 4 1 2.5 3 6 y y 0 0.025 30 0
The output looks like this:
Main Menu: Q 0123O IUCRSG NVAMBX DEPL FZH? 2 >2 TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 5. Include external map 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Include control points Q. Exit 8 8 TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 5. Include external map 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Include control points Q. Exit 2 2 input fraction of points .01 TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 5. Include external map 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Include control points Q. Exit 1 1 TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 5. Include external map 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Include control points Q. Exit 4 4 Input expansion, res/scale limit, d_hgt limit 1 2.5 3 TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 5. Include external map 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Include control points Q. Exit 6 6 Use gradients? (y/n) y gc LMRK_DISPLAY0.pgm gc LMRK_DISPLAY1.pgm Autoheights? (y/n) y TOOLS 0. Begin integration 1. Auto include neighboring maps 2. Include existing heights 3. Include shape vectors 4. Include limb vectors 5. Include external map 6. Include differential stereo 7. Include shadowing 8. Fill with shape 9. Include control points Q. Exit 0 0 gc seeds.pgm input weight .025 Enter number of iterations 30 -0.42625 0.48858 -0.69346 0.47153 gc slope.pgm -0.33686 0.36999 -0.62958 0.49423 gc slope.pgm -0.31721 0.34645 -0.63698 0.49335 gc slope.pgm -0.31626 0.34195 -0.62821 0.48661 gc slope.pgm -0.32261 0.33072 -0.62788 0.47868 gc slope.pgm -0.32585 0.33061 -0.63335 0.47234 gc slope.pgm -0.32739 0.33577 -0.63620 0.46839 gc slope.pgm -0.32911 0.33586 -0.63158 0.46419 gc slope.pgm -0.33044 0.33478 -0.63285 0.46109 gc slope.pgm -0.33124 0.33566 -0.63677 0.45911 gc slope.pgm -0.33189 0.33571 -0.63205 0.45735 gc slope.pgm -0.33246 0.33581 -0.63670 0.45605 gc slope.pgm -0.33283 0.33566 -0.64131 0.45508 gc slope.pgm -0.33337 0.33565 -0.63607 0.45402 gc slope.pgm -0.33359 0.33565 -0.63398 0.45339 gc slope.pgm -0.33442 0.33578 -0.63574 0.45296 gc slope.pgm -0.33486 0.33561 -0.63685 0.45252 gc slope.pgm -0.33452 0.33585 -0.63407 0.45235 gc slope.pgm -0.33475 0.33638 -0.64038 0.45178 gc slope.pgm -0.33494 0.33568 -0.63893 0.45157 gc slope.pgm -0.33500 0.33572 -0.63568 0.45154 gc slope.pgm -0.33499 0.33573 -0.63545 0.45117 gc slope.pgm -0.33501 0.33539 -0.63959 0.45099 gc slope.pgm -0.33541 0.33613 -0.63602 0.45122 gc slope.pgm -0.33538 0.33564 -0.63868 0.45093 gc slope.pgm -0.33552 0.33592 -0.63970 0.45102 gc slope.pgm -0.33565 0.33653 -0.63914 0.45075 gc slope.pgm -0.33544 0.33564 -0.63753 0.45086 gc slope.pgm -0.33636 0.33580 -0.63892 0.45077 gc slope.pgm -0.33577 0.33611 -0.63846 0.45049 gc slope.pgm 0. end iterations 1. more iterations 2. change weight 0 2.7593018322793345E-004 Current landmark = BG0001 SCALE = 0.000700 QSZ = 49 Lat/Lon/Rad = 59.946 239.813 0.256 Region = BG gc LMRK_DISPLAY0.pgm gc LMRK_DISPLAY1.pgm check display
The images with the maplets not look like this.
From the picture above, everything looks good. From visual inspection the features from the images appear to line up with those shown on the template. Thus, this landmark is now fixed.
Step 5: Finalizing Landmark
The final commands are then entered from the lithos menu to finalize the fixed landmark. The v 1 command basically updates the vector from the center of the shape model/asteroid to the landmark, which was just repositioned by fixing the image alignments.
v 1 u 1