ISIS Application Documentation
Characterize jitter for rolling shutter images.
Description
This program calculates two sets of polynomial coefficients that characterize the jitter in an
image acquired by a rolling shutter instrument. One polynomial for the line direction and one
for the sample direction. The ISIS camera model for the instrument can
then use the coefficients to adjust for the time dependent jitter.
The coefficients are
calculated by coregistering lines in the main cube with each line in the check line cube, where each
check line was acquired durring the readout of the main cube using the
same detector, but at a different time. The registration produces sample and line offsets
which are fed into a least squares solution to determin the coeficients of an Nth degree
polynomial in time. The coefficients are written to the cube label for use by the ISIS camera model.
The main cube (FROM) is expected to be a full frame image collected by a rolling shutter sensor.
The cube must have a table named "Normalized Main Readout Line Times" containing
records for each line in the cube where
the first column contains the sensor line number used to collect the corresponding image line,
and the second column contains the associated exposure time (normalized -1 to 1). A table that
meet these requirements is attacted to the cube during ingestion to ISIS (i.e., eis2isis).
The checkline cube is expected to have individual lines (possibly repeated) from the same sensor as the
main cube. The checklines must be read during the readout of the main image sequence. A table
named "Normalized Main Readout Line Times" containing records for each check line
where the first column is the sensor line number used to
collect the corresponding check line and the second column contains the normalized time the line was
exposed. The same minimum and maximum must be used to normalize these times as was used for
the main image times.
An example line readout order for a 100 line sensor with 3 check lines read 3 times each
could be (readout time for a line = line exposure number * exposure duration):
Type Line Exp#
Number
--------------------
Main 1-10 1-10
Check 75 11
Main 11-20 12-21
Check 50 22
Main 21-30 23-32
Check 25 33
Main 31-40 34-43
Check 75 44
Main 41-50 45-54
Check 50 55
Main 51-60 56-65
Check 25 66
Main 61-70 67-76
Check 75 77
Main 71-80 78-87
Check 50 88
Main 81-90 89-98
Check 25 99
Main 91-100 100-109
In this example the 9 check lines cause the last line of the array to be readout
(9 * exposure duration) later than it would have without the check line readouts.
This program was designed around work for the Europa Clipper Europa Imaging System Narrow
Angel Camera by Randy Kirk. Since the program relies on the check lines and their
spatial and temporal relationship to the main lines, the program will not work with
other instruments unless they provide similar data.
Categories
History
Stuart Sides | 2020-01-20 |
Original version
|
|
Parameter Groups
Registration
Name
|
Description
|
FROM |
Input cube to be jitter corrected.
|
FROM2 |
Input cube containing the check lines.
|
DEFFILE |
The Auto Registration template
|
SCALE |
The scale of the image.
|
TO |
Output file where the registration results will be written.
|
TO2 |
Output file where the registration statistics will be written.
|
Fitting
Name
|
Description
|
TOLERANCE |
The tolerance that determines which points will be excluded based on the goodness of fit
of the registration.
|
DEGREE |
The order of polynomial to solve for.
|
MAXTIME |
The time, in seconds, that the last line was taken. The minimum is .0026 seconds it takes for
a 2250 line image to be taken plus the time it takes to take 60 check lines.
|
COEFFICIENTTO |
Output file that holds the coefficients.
|
RESIDUALTO |
Output file that holds the solution residuals.
|
|
Registration:
FROM
Description
This input cube is the cube that needs to be de-jittered. The algorithms used
are designed for a rolling shutter instrument with an accompanying check line cube
file (see main description). This cube file must be writable. Coefficients to adjust
the jitter will be written to the cube labels for use by the rolling shutter camera model.
Type
| cube |
File Mode
| input |
Filter
|
*.cub
|
Registration:
FROM2
Description
This input cube is the check line cube. It contains a set of lines that were
repeatedly read from the sensor array interspersed with the readout of the main
image data.
...EXPAND...
Type
| cube |
File Mode
| input |
Filter
|
*.cub
|
Registration:
DEFFILE
Description
The parameter template to use for the auto registration process. The default template
calls the Maximum Correlation pattern matching algorithm with predefined parameter values.
There are other templates available in the system autoreg/template directory. Also, the user
can use the 'autoregtemplate' application to create a new template file.
Example minimal auto registration definition file:
Object = AutoRegistration
Group = Algorithm
Name = MaximumCorrelation
Tolerance = 0.7
SubPixelAccuracy = True
EndGroup
Group = PatternChip
Samples = 1391
Lines = 1
EndGroup
Group = SearchChip
Samples = 1399
Lines = 7
EndGroup
Group = SurfaceModel
WindowSize = 7
EndGroup
EndObject
Type
| filename |
File Mode
| input |
Filter
|
*.def
|
Registration:
SCALE
Description
This is the scale of the image. Only use this parameter if you have enlarged the main cube.
This will allow the program to access the correct normal cube line number based on the
un-enlarged check table values.
Enlarging the main image by 4x is used to assist the registration from becoming pixel locked
(i.e., registering on the whole pixel value instead of a sub-pixel)
Example: For a 4x enlargement set this value to 4.0.
Registration:
TO
Description
The resigstration results from the bundle adjustment will be written to this file.
Type
| filename |
File Mode
| output |
Internal Default
| None |
Filter
|
*.csv
|
Registration:
TO2
Description
This file will contain the statistics gathered during the registration process. The
format is PVL and is identical to the statistics for all auto registration applications.
Type
| filename |
File Mode
| output |
Internal Default
| None |
Filter
|
*.csv
|
Fitting:
TOLERANCE
Description
This tolerance is used by the auto registration to determine which registrations are valid and
which are invalid. See the auto registration documentation for more information.
Type
| double |
Default
| .7 |
Minimum
| 0.0
(inclusive)
|
Fitting:
DEGREE
Description
SOMETHING
Type
| integer |
Default
| 3 |
Minimum
| 1
(inclusive)
|
Fitting:
MAXTIME
Description
SOMETHING
WHAT IS THIS USED FOR
Type
| double |
Default
| 0.0027114285714286 |
Minimum
| 0.0
(exclusive)
|
Fitting:
COEFFICIENTTO
Description
A comma separated value file of the line and sample coefficients. One line of line, sample for each
degree.
Type
| filename |
File Mode
| output |
Filter
|
*.csv
|
Fitting:
RESIDUALTO
Description
A comma separated value file of the residual information from the least squares solution. The columns are:
Registered Line, Solved Line, Registered Line Residual, Registered Sample, Solved Sample, Sample Residual, Time Taken
Type
| filename |
File Mode
| output |
Internal Default
| None |
Filter
|
*.csv
|