Isis 2 Documentation
chipper - Subpixel register a point in one image to point in another chipper is a batch application that could otherwise be implemented as an interactive application that subpixel registers points in two images to one another. If you've ever wanted to see how two arbitrary points in two images correlate, chipper is your program! It has the ability to geometrically transform (project) one chip to match the geometry of the other image, perform the registration to subpixel accuracy and then translate the offsets back to the ungeomed space of the input image. Of course you can perform subpixel registration without geoming and also on whole images of differing sizes. It has been coded to be very flexible and therefore has many parameters. One must decide which image is the TRUTH image. This image is one that typically will have more than one other image matched to it. It is typically viewed as having the most accurate or desireable camera pointing or its position in a final mosaic with its current geometric location not subject to change. The name of this ISIS cube file should be given in FROMB. All variable that end in "B" and have a corresponding varible ending in "A" are associated with this cube file and all operations thereon. The other image is the image subject to UPDATE. The point identified in this image, when registered to the point in the TRUTH (FROMB) image, will have its line and sample location adjusted to the results of the subpixel registration. The name of this ISIS cube should be provided in the FROMA parameter. And all variables that end in "A" with like variables ending in "B" are associated with this file. This image's location related to camera pointing or a final mosaic are subject to change based upon point refinement with a TRUTH image. Chip image subareas are typically subject to geometric transformations (projections) (GEOMA = "YES") to the TRUTH geometry and will also typically have its box size unrestricted (RESTA = "NO"). Unrestricted boxes in a chip result in the maximum of LTOL (lines) or STOL (samples) pixels to be added to the current size of a box so that total data coverage is used in each box when computing the subpixel registration at the cooresponding points of the two chips. chipper provides several features to the user. POINTA and POINTB can be used to specify the line and sample of the UPDATE and TRUTH image chips, respectively. These points are mapped to the center pixel of each chip even when geoming one of the chips. Differences in geometric mapping between the two points are compensated for in the transformation equations so points can be provided that do not directly map to the line, sample location given the latitude, longitude of a point. The user can alternatively provide latitude and longitude coordinates of the points in both images. LATLONA and LATLONB can be used to give the latitude and longitude in the UPDATE and TRUTH images, respectively, to be converted to a line and sample locatation where the registration will occur. These points must be located within image boundaries or the geometric mapping is likely to fail. POINTA and POINTB are then determined by how the latitude and longitude coordinates map to each image. chipper furthermore has the ability to derive match points from a single input POINT{A|B} or LATLON{A|B}. Only one sample, line or latitude, longitude coordinate in either image can be provided to chipper. It will use camera angles (SPICE) to resolve all remaining values. Note that this may have a larger tendency to fail because of unreliable pointing or SPICE information. This scenario can be used to determine pointing error but only if sufficient LTOL and STOL search ranges are provided to find a solution. Note that this requires that SPICE be initialized for both images. BANDA and BANDB are used to specify which band of a multiband cube is to be used in the registration process. This is the absolute band in FROMA and FROMB, respectively. chipper can optionally write both image chips used in the registration after processing to an ISIS cube file. TOA and TOB should indicate new file names of the UPDATE and TRUTH chips, respectively, that will be created and the chip associated with each image written to it as a single band image cube. The output chip cubes will contain only the image subarea that comprises the chip. This will typically be the size of MAXBOX at the given line and sample match points for each cube. If REST{A|B} is "NO" then the chip will also include further coverage equal to twice the maximum of LTOL and STOL. (BE AWARE that when looking at these two chips in qview, they may have different scales when first loaded and can throw you off.) LTOL and STOL should be used to specify the maximum search range in the two chips to find the best registration. LTOL is the number of lines and STOL is the number of samples to shift in all directions the UPDATE chip about the TRUTH chip. It is essential that LTOL and STOL be large enough to find the best registering pixel. Otherwise the computation of the subpixel registration will yield wildly varying results indicated by variations in the reported box solutions. There will be roughly (MAXBOX-MINBOX+1)/BOXINC chip registrations attempted for the chips. They are then evaluated to determine which one is the best registering box at the subpixel level. This is done by finding the box that satifies the selected BESTBOX method of evaluating the resulting registration of the chips. Both MINBOX and MAXBOX need not be specified by the user. If this is the case, then only one coregistration is performed and it is done on the entire image size. Specifying MINBOX and not MAXBOX will result in MAXBOX being set to the maximum size of lines or samples and the using BOXINC to determine how many boxes will be registered in the range from MINBOX to MAXBOX. If only MAXBOX is specified, then MINBOX is set to MAXBOX and only one image coregistration is performed limiting the image dimensions to MAXBOX square pixels. For cases where only one box is computed, BESTBOX values have little meaning as it is the only one considered ("BESTTOL"). Correlations can sometimes fluctuate up and down as the box size decreases. Hence, the best box is one that either has the highest occuring correlation (BESTBOX="HIGH") or the last occuring (BESTBOX="LAST", i.e., smallest-sized box) until all the boxes are evaluated or a correlation coefficient drops below GOODFIT as specified by the user. Hence it is recomended to keep this value relatively high, close to 1.0 (the maximum correlation indicating perfect correlation). The BESTBOX="AVERAGE" option is computed by using all boxes that are greater than or equal to the GOODFIT and averaging the line and sample offsets and the correlation coefficient. These averages are returned to the user as the solution. On the other hand, the BESTBOX="NEARAVG" option also computes the average of all boxes with an acceptable level of tolerance but returns the box that is nearest the average. This option checks the absolute value of difference between BOTH the line and sample offsets from the average and returns the one closest. The "BESTTOL" option is much simpler as it simply scans through all boxes and finds the box with the highest tolerance (correlation value sometimes referred to as "R") greater than or equal to GOODFIT. The "BESTFIT" option uses the Chi-Square value of the least square difference. This option chooses the box with smallest chi-square value with the correlation coefficient greater than or equal to GOODFIT. Chi-Square is defined to be the sum of the square of the difference between the actual data and the modeled data. This is most likely a better indicator of a good least square model than the correlation coefficient, R. Note that the subpixel correlation coefficient is computed based upon a mathematical model of the surface created by surrounding correlations of the best registering whole pixel. The surface maximum is found and where this occurs is theoretically the location of the line and sample of the best registering subpixel. The subpixel correlation coefficient can fluctuate above and below the best registering whole pixel correlation based upon sensitivity of the model to the data. Because of this, the maximum of the subpixel and best whole pixel correlation is used as a single representation of the correlation coefficient for the current box. Also, note that the best registering box sample and line offsets cannot exceed the value of MAX(STOL,LTOL) as specified by the user or it will be rejected. This restricts the maximum amount the point can be moved in any direction. If you do not wish to apply this restriction, simply set it to a value greater than the maximum of STOL or LTOL. Furthermore, if any shift in line exceeds LTOL or sample exceeds STOL, the box is rejected regardless of correlation. This would indicate the the search range needs to be expanded to get a good registration result. chipper will allow the user to forego computation of the subpixel registration by setting REGISTER="NO". This is a special feature that is designed to be used when the caller would simply like to see how points map to images. Under this scenario, the user typically will provide one coordinate in one image and (implicitly) request to have the other point resolved using camera angles and SPICE. When ran this way, POINTA and POINTB are returned in OLDMPT and NEWMPT respectively. As mentioned before, geometric transformations of one chip to the geometry of the other is supported. One cannot geom both chips - attempting to do so will result in a error. Typically, the UPDATE chip is the one subject to geoming. This is specified by setting GEOMA = "YES" and GEOMB = "NO". The default is to not geom either chip. The TRANSFRM parameter is used to allow the caller to specify which geometric transform equation to use. The general form of all equations is: T(1) + T(2)*X + T(3)*Y + T(4)*X*Y where X cooresponds to the desired output chip sample and Y is the desired output chip line. There are transforms computed for both line and sample and the inverse of each one to provide mapping back to ungeomed space. The inverse is needed to convert the offsets of a transformed image chip back to actual line and sample coordinates in ungeomed space. Currently there are two geometric transform methods implemented in the match point software. The Affine transform (TRANSFRM = "AFFINE") is a variation of the above equation in that essentially the X*Y (T(4)) term is excluded. This is an equation of degree 1. The other method is the old Fit4 algorithm (TRANSFRM = "FIT4") using the X*Y term. It has been deemed less reliable in some situations and therefore the Affine transform is recommended. The default transform is the Affine transform. The processing involved in computing the transform is as follows: a) The match points for both chips are translated to latitude and longitude values. b) The latitude and longitude for the match point for the truth (not neccessarily TRUTH in this context) is used to find the cooresponding line and sample in the geom image. The offset between the actual point provided by the user and this line, sample is used as the offset in the mapping of the geom chip to the truth (one of three offsets required!). c) Next, starting at a box size of MAXBOX plus 2 * MAX(LTOL,STOL) if one of the chips is unrestricted, we iterate using a binary search algorithm until the corners of the truth box map to cooresponding line, sample locations in the geom image. d) Forward transforms are computed for line and sample that convert output lines and samples in the projected chip to line, sample coordinates in the ungeomed image. e) Scale and rotation differences are computed for the geomed chip. f) Average and maximum pixel errors are computed at the four box corners of the geom chip and the center point using the forward transforms. g) The error at the center point is applied to the additive component of the line and sample transforms (T(1)) to ensure that the users point is at the exact center of the geomed chip (second of three offsets). h) Compute the inverse transform that converts the line and sample locations of geomed space back to original ungeomed image coordinates. i) The error at the match point provided by the user is computed using the inverse line and sample transforms. It is then applied to the additive components of inverse line and sample transforms to ensure a one-to-one mapping of the match point (third of three offsets). Here is visually what the task of a geometric transform must perform: Input Output +1 +1 +2 +3 +2 . . +3 +4 +4 "Input" is the raw ungeomed image line and sample locations that is to be mapped to the "Output" coordinates. The "." in both illustrations represent the match point in ungeomed and geomed space. A "fast" transform is then applied to the input image to result in the output image using bilinear interpolation. Scaling and rotations are also inherently performed using this technique. The two chips are subpixel registered and the resulting offsets in each box apply to geomed space. This is what you will see when the box set of solutions are reported in chipper. If the UPDATE chip is geomed, the offsets are applied to the match point and the inverse transforms are used to compute the point in the input image that coorespond to the new subpixel registered match point. When the subpixel registration is completed, the original point (POINTA) and the new point are returned to the calling PDF for the convenience of the caller. The original line and sample coordinate in FROMA is returned in OLDMPT. The new adjusted point is returned in NEWMPT. If REGISTER = "NO", then the original POINTA is returned in OLDMPT and the original POINTB is returned in NEWMPT. This is primarily for a case where the caller wishes one or both points to be computed using latitude and longitude coordinates. chipper is only limited as to how much memory that it can allocate to process the input bands. For large 2-dimensional images, chipper may have trouble allocating 2 floating point image planes. The values of LOW and HIGH are used to exclude pixel values from the computation of the registration. If the user does not provide values for these parameters they are set to the minimum and maximum representable floating point values, respectively. Programmer: Kris Becker, USGS, Flagstaff, Arizona
Parm | Description | Default |
---|---|---|
FROMA | Name of cube file for registration chip POINTA. This is the point subject to UPDATE | NONE |
FROMB | Name of cube file for TRUTH chip POINTB | NONE |
POINTA | Line, Sample coordinate of point to register in FROMA. Alternative to LATLONA | -- |
LATLONA | Latitude, Longitude coordinate to register in FROMA. Alternative to POINTA | -- |
POINTB | Line, Sample coordinate of point to register in FROMB. Alternative to LATLONB | -- |
LATLONB | Latitude, Longitude coordinate to register in FROMB. Alternative to POINTB | -- |
TOA | Optional name of file to write the chip in FROMA used in registration | -- |
TOB | Optional name of file to write the chip in FROMB used in registration | -- |
LTOL | Maximum pixel misregistration allowed in LINE dimension | 10 |
STOL | Maximum pixel misregistration allowed in SAMPLE dimension | 10 |
GOODFIT | Specifies the minimim acceptable goodness of fit/correlation between the two chips. Correlation range is 0 (worst) to 1 (best). | 0.0 |
MINBOX | Minimum box size | -- |
MAXBOX | Maximum box size | -- |
BOXINC | Box size increment | 1 |
BESTBOX | Selects which box to use as the best correlating box: LAST - Pick the last occuring box above GOODFIT HIGH - Pick the highest correlating box of all boxes above GOODFIT AVERAGE - Compute the average of all boxes with a correlation coefficient greater than or equal to GOODFIT NEARAVG - Same as AVERAGE but returns the actual box that is closest to this average BESTTOL - Selects the box that has the highest sub- pixel correlation value (GOODFIT) BESTFIT - Selects the box that has the lowest Chi- Square value, an indicator of how well the data fits the least square model. | "BESTTOL" |
REGISTER | Proceed with registration or just get/report coordinates | "YES" |
GEOMA | Geom FROMA chip (Yes,No) | "NO" |
GEOMB | Geom FROMB chip (Yes,No) | "NO" |
TRANSFRM | Type of geometric transform to use (X=Sample, Y=Line): AFFINE - Equation of form T(1) + T(2)*X T(3)*Y FIT4 - Equation of form T(1) + T(2)*X T(3)*Y + T(4)*X*Y DEFAULT - Either AFFINE or FIT4 | "DEFAULT" |
BANDA | Band/image number from the FROMA chip file that will be used to calculate the pixel registration | 1 |
BANDB | Band/image number from the FROMB chip file that will be used to calculate the pixel registration | 1 |
RESTA | Size of chip in FROMA is restricted to current BOXSIZE rather than including MAX(LTOL,STOL) extension | "NO" |
RESTB | Size of chip in FROMB is restricted to current BOXSIZE rather than including MAX(LTOL,STOL) extension | "YES" |
LOW | Lowest value of valid DN | -- |
HIGH | Highest value of valid DN | -- |
BARF | Dump a large amount of information about the geom chip | "NO" |
OLDMPT | Returns the original match point provided by caller or one computed by chipper (POINTA) | LOCALA |
NEWMPT | Returns the new subpixeled point after the chips have been registered |
ADDITIONAL NOTES:
Parm | Description |
---|---|
FROMA | The name of the ISIS cube file associated with POINTA. This file should be viewed as the UPDATE file. This is the point that will have the result of the registration applied and returned to the caller. |
FROMB | The name of the ISIS cube file associated with POINTB. This file should be viewed as the TRUTH file. The point in this file and all other associated entities should be viewed as being "held" or fixed, not subject to change or alteration. |
POINTA | The line and sample, respectively, in FROMA of the match point to be registered. This point is the center of the chip that will be registered to POINTB in FROMB. It will be subject to adjustments based upon the result of the subpixel registration of the two chips. This parameter is optional. Alternatively, LATLONA can be used to derive this point from camera angles and SPICE. When used in conjunction with information about the point in FROMB, neither POINTA or LATLONA is required. Only one of POINTA, LATLONA, POINTB or LATLONB need be provided. In this case all other values are derived from whichever one is provided. Note that one cannot specify both POINTA and LATLONA as this can be conflicting information. |
LATLONA | Optional latitude and longitude, respectively, coordinates of a point in FROMA. These coordinates can be provided as an alternative to POINTA but cannot be provided in addition to POINTA. Only one parameter can be used but not both. |
POINTB | The line and sample, respectively, in FROMB of the match point to be used to register a point in FROMA. This point is the center of the TRUTH chip that will be used to register POINTA in FROMA. This parameter is optional. Alternatively, LATLONB can be used to derive this point from camera angles and SPICE. When used in conjuction with information about the point in FROMA, neither POINTB or LATLONB is required. Only one of POINTA, LATLONA, POINTB or LATLONB need be provided. In this case all other values are derived from whichever one is provided. Note that one cannot specify both POINTB and LATLONB as this can be conflicting information. |
LATLONB | Optional latitude and longitude, respectively, coordinates of a point in FROMB. These coordinates can be provided as an alternative to POINTB but cannot be provided in addition to POINTB. Only one parameter can be used but not both. |
TOA | [Optional] Name of output file where the chip used in FROMA to compute the subpixel registration is written. This chip can be used to get a visual image of what was actually used in the registration of the FROMA image. |
TOB | [Optional] Name of output file where the chip used in FROMB to compute the subpixel registration is written. This chip can be used to get a visual image of what was actually used in the registration of the FROMB image. |
LTOL | The maximum estimated pixel misregistration in the LINE dimension. LTOL must be greater than zero. If LTOL is less than or equal to zero, chipper will assign LTOL=5. |
STOL | The maximum estimated pixel misregistration in the SAMPLE dimension. STOL must be greater than zero. If STOL is less than or equal to zero, chipper will assign STOL=5. |
GOODFIT | This parameter allows the user to specify a minimum acceptable goodness of fit. If the correlation between the two chips is less that GOODFIT, the no solution will be found and the program returns an error condition. If the correlation coefficient is greater than or equal to GOODFIT, then a solution is derived from the best box from the returned pixel registration parameters. Note that the correlation coefficient will range from 0 to 1 where 0 is the worst fit, 1 is the best fit. |
MINBOX | Minimum box size. The smallest box size to be used to compute subpixel registrations for the chip pair. If this parameter is not provided, then it will be set to MAXBOX and only one image coregistration will be computed for the match points. |
MAXBOX | Maximum box size. The largest box size to be used to compute subpixel registrations for the chip pair. If this parameter is not given, will be set to the maximum of the lines and samples, which ever is larger, of the FROMA image. |
BOXINC | Specifies the increment of the "chip" box from MINBOX to MAXBOX. BOXINC=1 will compute a chip registration at every size box from MINBOX to MAXBOX. It can increment in any whole number greater than 0. The first "chip" registered will be done using MINBOX as the square size of the box. Each subsequent registration chip will be incremented by BOXINC and computed until the size of the box exceeds MAXBOX. Then all the boxes are evaluated to determine the best registering box size. |
BESTBOX | This parameter allows the user to choose which box is the best representation of a match. "LAST" will select the last occuring box in the first occuring span of registration correlations above GOODFIT. This cooresponds to the smallest box size in that span. "HIGH" will select the highest correlating box of all registrations in the first occuring span of value above GOODFIT. This is not always, or necessarily, the smallest box size. The "AVERAGE" option is computed using all boxes that have a correlation coefficient greater than or equal to GOODFIT. The average line and sample offsets are computed as well as the average of the correlation coefficient. The "NEARAVG" option is similar to the "AVERAGE" option except the actual box that is closest to the average is returned. This box is determined by the smallest absolute difference of the sums of both the line and sample offsets from the average. Note that the "AVERAGE" option will generate a completely separate box. With this option, the selected box will always show up in the report as the last box indicated as the one selected. It will inherit many characteristics of the box nearest to this average as defined by the "NEARAVG" option. The "BESTTOL" option will select the box that has the highest tolerance value. The highest possible value that can be attained is 1.0 indicating perfect correlation between the two chips. It will only consider correlation coefficients greater than or equal to GOODFIT selecting the box with the highest GOODFIT value. It considers all boxes. The "BESTFIT" option will select the box that has the lowest Chi-Square value. Chi-Square is an indicator of how well the data fits the least square fit model. It is defined as the mean difference between the observed data and the least square model of the data at each point. A lower value indicates a better model. All boxes must also have a correlation coefficient greater than or equal to GOODFIT. Note that the "BESTTOL" and "BESTFIT" options will not always return the same box but will more times than not. |
REGISTER | The parameter allows the caller to skip subpixel registration of the two chips. It is useful when providing information for only one input file. To skip subpixel registration, set REGISTER = "NO". In this case, chipper will compute the two matchpoints from provided information and return POINTA in the OLDMPT parameter and POINTB in the NEWMPT return parameter. The default is to compute subpixel registration. |
GEOMA | This indicates whether the chip in FROMA is to be geomed before trying to subpixel register. This will need to be done if the images are rotated or scaled differently from one another. For IMP images, it is best not to geom. |
GEOMB | This indicates whether the chip in FROMB is to be geomed before trying to subpixel register. This will need to be done if the images are rotated or scaled differently from one another. For IMP images, it is best not to geom. |
TRANSFRM | Allows the user to select which geometric transform method to use in the geoming of one of the input chips. Forward and inverse transforms are computed for both the line and sample mapping. The general form of all equations is: T(1) + T(2)*X + T(3)*Y + T(4)*X*Y where X is output sample and Y is output line One can use the Affine or Fit4 transform. Affine uses a three term polynomial of degree 1 to model the mapping of output line and sample coordinates to input coordinates. This transform essential does not use the T(4) term. It is set to 0.0 and does not contribute to the mapping. The FIT4 transform uses the the full form of the general equation utilizing the T(4) term. It is computed differently and may be less sound in certain conditions. |
BANDA | This parameter selects the BAND/image in the FROMA cube file that will be used to compute the pixel registration. |
BANDB | This parameter selects the BAND/image in the FROMB cube file that will be used to compute the pixel registration. |
RESTA | This parameter is used to restrict the box around POINTA to a maximum size of the MAXBOX. This concept is extended to each size box used in the course of computing registrations at MINBOX to MAXBOX. Data in the chip in FROMA is restricted to the current box size surrounding POINTA. If RESTA = "NO", then the box size is allowed to be as large as the current box size plus twice the maximum of LTOL and STOL. This is so that the maximum amount of data is used for each registration. |
RESTB | This parameter is used to restrict the box around POINTB to a maximum size of the MAXBOX. This concept is extended to each size box used in the course of computing registrations at MINBOX to MAXBOX. Data in the chip in FROMB is restricted to the current box size surrounding POINTB. If RESTB = "NO", then the box size is allowed to be as large as the current box size plus twice the maximum of LTOL and STOL. This is so that the maximum amount of data is used for each registration. |
LOW | The lowest value of valid DNs. If LOW = 11, then pixels with DN values less than 11 will be excluded from registration computations. |
HIGH | The highest value of valid DNs. If HIGH = 200, then values greater that 200 will be excluded from registration computations. |
BARF | This parameter, when set to "YES", will report a lot of additional information about the geometric properties of the chip set when GEOM = "YES". It can be quite lengthy and detailed but informative to the inquiring mind. |
OLDMPT | This return parameter reports the value of POINTA in the FROMA file used as the center of the chip. It may be redundant if the caller provides POINTA but may be needed if POINTA is derived from an alternative method. |
NEWMPT | This return parameter reports the value of the adjusted POINTA after successful subpixel registration of the two chips. It is the point in FROMA that is produced from the subpixel registration result with the point in FROMB. If REGISTER = "YES", the new point is returned. If REGISTER = "NO", then NEWMPT will return POINTB. This duality is provided for cases where testing of camera pointing and SPICE is desired. POINTA will always be returned in OLDMPT. POINTB is returned in NEWMPT only when REGISTER = "NO", otherwise it returns an updated POINTA. |
Contact us online at the Isis Support Center: http://isisdist.wr.usgs.gov