Content-type: text/html Manpage of SPOT1M

SPOT1M

Section: PSLAM stereo pipeline (1)
Updated: 11th August 1999
Index Return to Main Contents
 

NAME

spot1m - Advanced O'Neill-Dowman SPOT-1 camera model.

 

SYNOPSIS

spot1m [ -help ][ -version ][ -usage ][ -verbose ][ -growth_protection ][ -slots ][ -slotinfo ][ -argf argument_file ][ nice scheduling_level ][ -nscenes number of scenes in strip ][ -hfiles header_file_1, header_file_2, .. ][ -toground ][ -toimage look ][ -relax_tol tolerance ][ -max_iter max_iters ][ -wr_attitude attitude_file ][ -rd_attitude attitude_file ][ -rrs_cost_function [ -cost_ratio absolute skew ]][ -gcpd_cost_function ][ -orbit_correction ][ -la_correction ][ -all ][ -prune limit [ -max_sh_adev maximum pruning average deviation ]][ -bt_tol ][ -test check pt file test result file ][ -gcpf gcp point file ][ -scpf scene corner point file ][ -skew_limit max skewness ][ -startscene scene ][ -ltsize count ][ -stsize count ][ -strpchk ][ -restricted_ip ][ -shifted_image line shift in pixels sample shift in pixels ][ -scaled_image image scaling factor ][ -max_iter maximum number of iterations for Powell Direction Set optimiser ] < <ASCII ACM feature tagged matched point list> > <ASCII camera model feature tagged world point list> >& <log file>

 

DESCRIPTION

spot1m is a model of the SPOT-1 sensor. It provides a mechanism for transforming points between a geocentric object space and SPOT-1 image space. SPOT-1 is one of a family of rigid linear sensor models presently supported by the O'Neill-Dowman sensor supported by the O'Neill-Dowman sensor modelling system.

   

OPTIONS

-help invokes the on-line context help system for the geometrical camera modeller. This "man" page is displayed. The program then exits.

-version displays the program version number.

-growth_protection <retrys> causes the system to retry an sbrk(3) call up to retrys times. This option permits the program to wait until the core that it requires is available rather than simply exiting if sbrk(3) fails.

-usage displays the commands tail options which are accepted by this program.

-slots displays the pups(3) library dependancies for this program in short format.

-slotinfo displays the pups(3) library dependancies for this program in long format.

-nice scheduling_level determines the niceness at which the program is scheduled. In keeping with all UNIX uiser processes. The scheduling_level must be a cardinal number between 0 and 20, the default niceness for spot1m is 4.

-argf argument_file tells the program to take its command line arguments from the specified argument_file. The data format of the argument file is:

# ... optional comment line ...
-argflag [1]
argument_parameter [1,1]
argument_parameter [1,2]

argument_parameter [1,n]

# ... optional comment line ...
-argflag [2]
argument_parameter [1,1]
argument_parameter [1,2]

argument_parameter [1,n]

-verbose Tells the program to provide a running commentry on what it is doing. Setting the verbose flag is useful when the user is uncertain of the parameters being used with the model, or when feedback is required on the progress of the model [for an error log for example]. The information produced by setting the verbose flag is sent to standard error.

-toground Transforms data from a stereo SPOT-1 image multiplet to geocentric object space. The SPOT-1 permits up to 32 images in the stereo multiplet. The data format expected at standard input and produced on standard output are given below:

 

input data format [N image stereo multiplet]:

ft_code X1 Y1 X2 Y2 ... Xi Yi ... rest of line ...

Where ft_code is an integer feature code,
[X1,Y1], [X2,Y2], [Xi,Yi] are the co-ordinates of corresponding pixels in the images which comprise the stereo multiplet.

 

output data format:

ft_code X Y Z ... rest of line ...

[X, Y, Z] is the position of the corresponding point in world space, expressed in geocentric co-ordinates.

-toimage look tells the program to transfer data from ground space to the image space of the selected look.

-gvector tells spot1m(1) to output ground vector data (x,y,z) when in ground to image transformation mode. This data is required by the inverse warping program praw(1) when generating orthoimages.

-nscenes number of scenes in strip tells the camera model how many scenes are expected per image-strip. This value is assumed to be the same for each image-strip in the stereo multiplet.

-hfiles header_file_list reads in the list of header files associated with the stereo multiplet. The first header file read in is associated with the leftmost image of the stereo multiplet. The number of header files specified must agree exactly with the number of scenes specified via the n_scenes parameter. The header files are in the format produced by the Laserscan readcct program when operating in hdr mode.

-relax_tol tolerance Sets the tolerance for the Powell direction set minimiser. A value of 0.00001 is recommended.

-max_iter max iterations for Powell Direction Set optimiser Sets the upper iteration limit for the Powell Direction Set optimiser. At present this defaults to 200. For practical purposes an upper limit of 40-50 is recommended.

-wr_attitude attitude_file tells the program to write attitude and orbital segement data to attitude_file in standard sensor modelling system format. This attitude data may be used if the model is needed at a later data. It may also be imported by other sensor models supported by the system, for example glsm(1) for simulation purposes

-rd_attitude attitude_file tells the program to read in attitude and orbital segment data from the file attitude_data. This attitude and orbital segment data is then used to form the camera model. Note that if rd_attitude is specified no header data is required, therefore under these conditions, a -hfiles flag is not parsed and will cause an error.

-test places the camera model in test mode. In this mode the camera model produces diagnostic information in the files <test_result>.rchk, and <test_result>.pchk. The output of the file <test_result>.rchk is of the form:

minimiser_iteration checkpoint_ARMS_residual checkpoint_RRMS_residual
The first column gives the iteration number of the relaxer. The second column gives the absolute RMS error and the third column the relative [ray-ray] skewness error of the camera model relative to a set of independent check points, which given in the file <check_pt_file>. The format of this file is given below:

ft_code X Y Z

where ft_code is a feature code associated with a given check point. X, Y and Z is the geocentric position of the check point in object space. The performance of the relaxer may be assessed by using a suitable plotting program, for example the UNIRAS based filter megagraph to display the absolute and relative RMS errors as a function of the relaxer iteration number:
For a good PAN model, the checkpoint_ARMS residual should be less than about 15 metres.
For a good XS model, the checkpoint_ARMS residual should be less than about 50 metres.

The second file <test_result>.gchk, contains the vector error at each of the independent check points. If N checkpoints are used, <test_results>.gchk will contain N lines, each of the form:

ft_code X Y Z X' Y' Z'
ft_code is the feature code associated with a given check-point. X,Y and Z is the measured geocentric position of the feature in object space. X', Y', Z' is the corresponding geocentric position of the feature code generated by the camera model. This may be turned into an explicit vector error in a given local co-ordinate system by using one of the co-ordinate conversion filters such as gcutm(1), gcgeo(1), or gclz3(1) in test mode.

This vector error may be assessed using a suitable vector display program, for example the UNIRAS based vector_plot program:

The Third file <test_result>.ichk, contains the vector error at each of the independent check points in image space. If N checkpoints are used, <test_results>.ichk wil contain N lines, each of the form:

ft_code X Y X' Y'
where X and Y are the line and sample positions of a given pixel in the image which has been measured by a photogrammetric operative.
X' and Y' are the corresponding points in image space predicted by the camera model back-transform.

A full set of error plots may be generated for a particular camera model run by running the camera model in test mode and then using the shell scripts SPOTefg and SPOTefp to generate a set of vector plot files. These scripts are intended to be interactive, and their usage should be self explanatory.

In the statistics file generated with the plot files, the following values would indicate a good PAN camera model:

IRMSE: 0.0-1.5 pixels, ARMSE: 0.0-15.0 metres [in both plan and height], RRMSE: 0.0-10.0 metres [in both plan and height].

-gcpf gcp_point_file specifies the GCP point file. The control points given within this file are used to orient the camera to ground. The format of the gcp_point_file is identical to the check_point_file described above.

-scpf corner_point_file tells the program to read in a file of scene corner points which have been extracted from the SPOT-1 header and converted to geocentric co-ordinates. There is good reason to believe that inclusion of scene corner will produce zero GCP model with an absolute RMS plan error of less than 100 metres. The format of the corner point file is:

ft_code l s X Y Z l' s' X' Y' Z'

where:
[l,s], [l',s'] are the pixel positions of a given corner point in the logical left and logical right images respectively and [X,Y,Z], [X',Y',Z'] are the corresponding positions of the scene corner points in the geocentric co-ordinate system.
The inclusion of scene corner points in the absolute orientation is only possible with the -gcp_cost_function rather than -rrs_cost_fucntion flagged.

-prune limit shift prunes the control and checkpoint datasets using the given limit in metres [from the average deviation] as a cut-off. Any point which lies more than limit metres from the average deviation will be rejected.

The use of shift pruning is not recommended unless there is a reasonable statistical sample [5+] griound control points and/or checkpoints.

If the shift pruning option is selected with the camera model in verbose mode, the individual deviation of each of the shift vectors from the mean is recorded on stderr. This may then be used as an additional tool for dealing with erronious check/ GCP datasets supplied to the camera model.

-max_sh_adev maximum pruning average deviation tells spot1m(1) the maximum tolerable average deviation for the shift vectors computed during the pruning operation. If the avergae deviation is greater than this value the orientation/checkpoint dataset is marked as suspect and further processing by spot1m(1) is aborted. This option may be specified only if the -prune option is specified. If it is specified with shift pruning disabled a comamnd line parse error will be generated.

-rrs_cost_function uses a relaxation cost function which minimises the RMS distance between the ray-ray space intersections and the supplied ground control points when performing an absolute orientation.

-cost_ratio is used to define the weights absolute and skew which are used by the ray-ray skewness cost function. If unset by the user these weights default to unity for both components of the cost function. This command line option will only be recognised if the previous flag is also present on the command line

-gcpd_cost_function uses a relaxation cost function which minimises the perpendicular distance between a given ray and the nearest supplied GCP. This effectively orients each of the sensor looks in a given SPOT stereo model seperately. The tests which were conducted under the aegis of the RAE/LSL subcontract appear to indicate that this option yeilds absolute RMS errors which are between 2 and 3 metres better than the RRSKEW option described above. Note -gcpd_cost_function and -rrs_cost_function are mutually exclusive options.

-orbit_correction use an uncorrellated linear orbit shift as input to the cost function used to determine the absolute orientation.

-la_correction use linear rotations about the sensor X [along track] and Y [cross track] reference axes as input to the cost function used to determine the relative orientation.

-ltsize set the blocking factor in the line dimension of the sensor. The default value for this should not, generally be changed. Defaults to 100.

-stsize set the blocking factor in the sample dimension of the sensor. The default value for this should not, generally be changed. Defaults to 600.0

-startscene tells the sensor model which scene is to be considered as the starting scene [the central line of which is line zero] in the case of a strip of stereo scenes.

-strpchk enables strip checking if flagged. The strip checking facility uses the SPOT-1 header files to ensure that headers supplied for a strip are contiguous. If an out of sequence header is found, an error is generated, and processing is abandoned.

Note that in the case of strips, the relative overlap between any images which preport to be in a strip are calculated from the SPOT-1 headers irrespective of whether the images are contiguous.

-restricted_ip tells the camera model in back transform mode to ignore any image space points which fall outside the default image plane [6000 x 6000 PAN, 3000 x 3000 XS] of the SPOT-1 camera model.

-shifted_image line shift in pixels sample shift in pixels tells spot1m(1) the shifts (in pixels) to be applied to stereo matched data before it is projected into world space. This option is useful for generating DTM's from data which has been subsampled from SPOT stereo imagery. Defaults to [0,0] the origin of the SPOT image(s).

-scaled)image image scaling factor tells spot1m(1) the scaling factor which is to be applied to stereo matched data before it is transformed into world space. Defaults to 1.0.

   

EXAMPLE OF USE.

The following example shows typical use of the spot1m filter to transform a set of Gruen stereo matched points from image space to ground space:

cat -n gruen_in | awk '{print $1,$3,$2,$5,$4,$11,$12}' | spot1m -argf
spot1.agf | gclz3 |
compress >ground_dat.Z&

The file spot1.agf contains a canned command tail for the SPOT-1 filter. A typical example would be:

# example control file for spot1m
# 12th Feburary 1990

# verbose switch on - give a log of all that happens
-verbose

# iteration limit for Powell
-max_iter 100

# use header data to set up model
-hfiles hdr.left hdr.right

# tolerance for fast back-transform
-bt_tol 2.0e-16

# prune input ground control and checkpoint datasets
-prune 4.0

# cost function parameters
-rrs_cost_function
-orbit_correction
-la_correction

# test file parameters
-test check.itir itir.chk

# ground control point file
-gcpf itir.orn

 

LIBRARY DEPENDENCIES

This program requires the following pups(3) support libraries in order to function:

utilib: portable utilities library, casino: portable random number generator library, nfolib: portable numerical functions library, veclib: portable vector/matrix arithmetic library. mtdlib: multi threaded DLL and process status request protocol library

 

SIGNALS

SIGUSR2 is used to support PSRP event handling

 

PSRP INTERACTIVITY

Supports interactive querying while running using Process Status Request Protocol [PSRP], see psrp(1).

 

BUGS

There needs to be an angular constraint considered in the shift pruning mechanism.

 

DIAGNOSTICS

The program uses the pups(3) error handling system: Diagnostics should be self explanatory

 

REFERENCES

M.A. O'Neill, A Kinematic Numerical Model of the SPOT-1 Sensor, Ph.D. Thesis, University College London, August 1992.

      

PROGRAM COPYRIGHT

(C) 2000 Digital Vision, Didcot, Laser-Scan Ltd, Cambridge.

 

LIBRARY COPYRIGHT

(C) 1986-2000, Digital Vision.

 

PROGRAMMER

M.A. O'Neill.
   

SEE ALSO

lz3gc(1),gclz3(1),geogc(1),gcgeo(1),utmgc(1),gcutm(1),tospot(1), fromspot(1),gproc(1),vec(1),psrp(1),pups(3)


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
input data format [N image stereo multiplet]:
output data format:
EXAMPLE OF USE.
LIBRARY DEPENDENCIES
SIGNALS
PSRP INTERACTIVITY
BUGS
DIAGNOSTICS
REFERENCES
PROGRAM COPYRIGHT
LIBRARY COPYRIGHT
PROGRAMMER
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 10:23:07 GMT, May 07, 2001