(Compiled by DL)
Purpose: Program for registering existing maplets with imaging data from a single image.
autoregister adds landmarks to a single image, adding the image name to all relevant LMKFILEs. It provides basic tools for aligning the landmarks, cross-correlating new images to existing maplets, eliminating landmarks and setting image flags. When the user accepts the changes from the auto-align (or manually aligns), autoregister will update the S/C position and pointing in the SUMFILE.
autoregister is similar to register, but can handle 3 degrees of freedom, orientation, and twist.
IMAGEFILES/ - a directory containing the image .DAT files;
SUMFILES/ - a directory containing the image .SUM files (updated solution image, S/C and camera information; lmrks and limbs);
MAPFILES/ - a directory containing the full suite of maplets;
LMKFILES / - a directory containing the full suite of landmarks;
LMRKLIST.TXT - a list of the landmarks contained in the solution;
LMRKLISTX.TXT - landmark information (size, scale, position vector, number of images containing the lmrk);
SUMFILES/ - Landmarks are added to the image's SUMFILE. Spacecraft/camera position/attitude are updated upon user acceptance of alignment shifts.
LMKFILES/ - LMKFILES are updated to contain the image the user is working with.
- LMRK_DISPLAY1.pgm - 100x100 pixel display of images (odd rows) and maplets (even rows). Unlike LITHOS, each pair is a separate landmark, consisting of a completely different location on the surface and image.
- TEMPFILE.pgm - A pgm image of the image that the user is working with.
(The following section is taken from SPOC v3.02A PDF/LITHOSPHERE/AUTOREGISTER.f File Reference, rearranged for convenience.)
This procedure aligns existing maplets with imaging data from a single image and uses subroutine IPL2SCOBJPTG to update the camera pointing and spacecraft-object vector in the corresponding SUMFILE. The program uses the file LMRKLISTX.TXT to pre- screen the maplets, so if maplets have been added or deleted recently, the procedure make_lmrklistX should be run.
input 12-character picture name. q to quit. P3T11S2H0409 1 EE0001 * 2 EE0002 * 3 EE0003 * 4 EE0004 * 5 EE0005 * 6 EE0006 * gc TEMPFILE.pgm kb = 1 kk = 1 Add landmarks? (y/n) y enter fractional width (0=center) .5 Reject invisibles? (y/n) n 7 EE0007 0.00 8 EE0008 0.00 9 EE0009 0.00 10 EE0010 0.00 11 EE0011 0.00 12 EE0012 0.00 13 EE0013 0.00 14 EE0014 0.00 15 EE0015 0.00 16 EE0016 0.00
The program first asks for an image name. The image name is the name that is stored in IMAGEFILES. Some versions of process_img will make some changes to the filename, so it may not be the "original name".
The program produces a list of existing landmarks if any, creates the TEMPFILE.pgm and displays the kb, and kk values. (kb and kk are de-bugging flags relating to the generation of TEMPFILE.pgm and will therefore not be discussed herein.) The program asks if more landmarks should be added.
The user is asked for two more inputs:
Fractional width: Normally=0.5. Allows images that overlap any part of a window that is half the size of the maplet window. If 0.0 is chosen, the image must contain the landmark center.
Reject invisibles; If reject invisibles is chosen, the program uses the current shape to determine whether there is topography blocking the camera's view of the landmark center. Unless the object is bizarre such as Eros, choose 'n'.
INIT_LITHOS.TXT Settings: An initial filter for added images is set in INIT_LITHOS.TXT. RESLM is the maximum ratio of the image resolution to the maplet scale, while SIZLM is the maximum ratio of the linear maplet size to the image size. NUMLM sets the minimum number of maplets found in the image before the other two filters come into play.
IMPORTANT: When maplets are added in AUTOREGISTER they immediately populate the SUMFILE. The remaining processing must be carried out to eliminate unwanted ones, unlike LITHOS where added images do not stay added until the landmark file is updated.
The remaining processing steps are shown in the main menu below:
... MAIN MENU ... 0. Exit REMOVE MAPLETS a. Auto remove n. Auto remove new only m. Manual remove p. Check peripheral visibility o. Remove low-correlation lmks IMAGE/MAPLET ALIGNMENT 1. Auto align 2. Manual align LANDMARK ADJUSTMENTS 3. Repredict px/ln 4. Change flags l. Change repredict limit
0: exits the processing of the current image and asks for a new one. Entering 'q' for the image name quits the process altogether.
REMOVE MAPLETS: The first block of options remove landmarks according to a variety of filters. If any of the first four are chosen a table is produced with the column headers:
- # = landmark number
- LMKNM = landmark name
- EMISS = emission angle
- COV = maplet-image overlap
- RES = image resolution/maplet scale
- INV = 1000 x invisible fraction of maplet
- #PIC = number of images in maplet
Options a and n: remove landmarks according to a filter:
- INVLIM: maximum fraction (in thousandths) of invisible points in the maplet according to the current topography. For example, an obliquely viewed maplet may have part of a crater bottom that can't be seen. An INVLIM of 27 represents 2.7%.
- SLIM: maximum emission angle.
- CLIM: coverage limit. Minimum fraction of maplet covered by illuminated image data.
- RSMN: Minimum allowed ratio of image resolution (km/px) to maplet scale.
- RSMX: Maximum allowed ratio of image resolution (km/px) to maplet scale.
The a option filters all landmarks and n filters only newly added ones. A display provided for the a and n options shows the number of images with resolutions from 0 to 3 times the maplet scale (column labels 00 - 30) and emission angles from 00 to 90 (rows).
Option m: allows the user to remove landmarks manually.
Option p: removes images in which part of the maplet is obscured by another part of the body.
Option o: eliminates images whose correlation with the illuminated maplet is less than a specified value. Option 1 must be run first to establish those correlation values.
The next menu block aligns extracted imaging data with the corresponding illuminated maplets. The EXTRACT_DATA subroutines populate the landmark displays with image data projected onto the current maplet surface. We assume the maplet surfaces are correctly placed and oriented and have the correct topography. If the spacecraft position and camera pointing were correct at the image exposure time, then all maplets would align. If not all the maplets align, then the amount of mis-alignment can be used to correct the spacecraft state. This process performs the alignment, updating the pixel/line image-space landmark positions from their predicted values.
All windows in AUTOREGISTER are 99x99 pixels. If a maplet has QSZ < 49, as sometimes happens very early in the SPC process, then there will be dark space surrounding it. If QSZ > 49, then only the central portion of the maplet will be aligned.
Option 1: The auto-align option:
1 1 EE0001 2 EE0002 3 EE0003 4 EE0004 5 EE0005 6 EE0006 7 EE0007 8 EE0008 9 EE0009 10 EE0010 11 EE0011 12 EE0012 13 EE0013 14 EE0014 15 EE0015 16 EE0016 enter spacing 1 1 EE0001 0.008 0.153 0.955 +++++ 2 EE0002 0.023 0.152 0.956 +++++ 3 EE0003 0.058 0.062 0.961 +++++ 4 EE0004 0.185 -0.056 0.960 +++++ 5 EE0005 0.006 0.029 0.967 +++++ 6 EE0006 0.002 0.009 0.966 +++++ 7 EE0007 0.043 -0.030 0.963 +++++ 8 EE0008 0.109 -0.038 0.963 +++++ 9 EE0009 -0.031 0.047 0.971 +++++ 10 EE0010 -0.021 0.014 0.969 +++++ 11 EE0011 -0.008 -0.048 0.958 +++++ 12 EE0012 0.069 -0.109 0.943 +++++ 13 EE0013 -0.352 -0.027 0.927 +++++ 14 EE0014 -0.175 -0.039 0.914 +++++ 15 EE0015 0.073 -0.058 0.913 +++++ 16 EE0016 0.371 -0.119 0.859 +++++ 0.147 0.076 new spacing? (y/n) n 0. continue. 1. halve shifts. 2. quarter shifts. 0 update landmark pixel locations? (y/n)
Spacing: Auto-align first asks for a spacing, the size of the search area for the correlation. '1' searches a 5x5 pixel area, '2' a 10x10 and so on. After a correlation, the process will ask whether you want to change the spacing. Simply enter 'y' and then the new spacing. When you are satisfied with the correlation, choose 'n' for new spacing.
Auto-alignment routine output table:
- column 1 - landmark number;
- column 2 - landmark name;
- column 3 - the pixel shift predicted by the correlation;
- column 4 - the line shift predicted by the correlation;
- column 5 - the correlation value;
- column 6 - the goodness of fit indicator that ranges from 0 to 5.
If there is no correlation result at all, columns 3 and 4 have values 0.0000. This value, with the extra decimal place is recognized by some diagnostic programs.
0. continue will shift all the maplets by the amount determined by the correlation.
1. halve shifts will shift all the maplets by half the amount determined by the correlation.
2. quarter shifts will shift all the maplets by a quarter the amount determined by the correlation..
Finally, the procedure will ask whether you want to accept the shift. A 'n' answer returns parameters to the starting values. For the larger search area the data is binned, so after alignment is reached, we should always go back and do it with a spacing of 1 again.
A typical set of keystrokes in a script might be:
1 <- auto align 3 <- spacing 3 n <- no spacing change 0 <- shift by full amount y <- keep shift 1 <- auto align 1 <- spacing 1 n <- no spacing change 0 <- shift by full amount y <- keep shift
Option 2 can be used to align the problem image data to a maplet by hand by referencing LMRK_DISPLAY!.pgm. The process asks the user to move the image window in pixels (+right) and lines (+ down) in order to align it to the maplet. Option 2 is only used occasionally.
Option 3: Because the maplets have different resolutions, some may correlate well and some not at all. AUTOREGISTER only uses correlations greater than CORLIM, nominally set to 0.5, to determine the s/c state. This new state can be used to repredict the image-space landmark locations for all maplets using option 3 of the final menu block, with the result that subsequent correlations with option 1 will be much better.
Option l can be used to choose a different value for CORLIM.
Option 4 adjusts the topo flags on the PICNM entry of each landmark (.LMK) file. When AUTOREGISTER adds new landmarks, it does so with an * on the PICNM record, indicating that that image is not to be used for topography. There are several sub-options to option 4, but the one usually used is 'b' that removes the * from the PICNM record for all landmarks.
4 1 EE0001 0.955 0 * 2 EE0002 0.956 0 * 3 EE0003 0.961 0 * 4 EE0004 0.960 0 * 5 EE0005 0.967 0 * 6 EE0006 0.966 0 * 7 EE0007 0.963 0 * 8 EE0008 0.963 0 * 9 EE0009 0.971 0 * 10 EE0010 0.969 0 * 11 EE0011 0.958 0 * 12 EE0012 0.943 0 * 13 EE0013 0.927 0 * 14 EE0014 0.914 0 * 15 EE0015 0.913 0 * 16 EE0016 0.859 0 * Input number to change (a chg all, b use all, 0 to end).
AUTOREGISTER can be run in a batch mode, following a script set up by make_scriptA, but this is rarely done. Usually, the parallel process autoregisterP and its script maker make_scriptAP fulfills this role.
When maplets are added in AUTOREGISTER they immediately populate the SUMFILE. The remaining processing must be carried out to eliminate unwanted ones, unlike LITHOS where added images do not stay added until the landmark file is updated.
Alignment changes are immediately accepted (i.e. there is no save/revert option).