AT_3D Class Function Manual


ADJUST

| HOME | BACK |

Purpose

To perform a block adjustment by using 3D conformal transformation.  This is the so-called "Block Adjustment by Independent Model".

Please note that all observed points are treated as tie points, thus they form equations, no matter whether it is a single point or tie point.  However, single points will not get adjusted, hence no residual.

The input Ground control point file can contain points which are not measured in model and they will be automatically discard by the program.

The function requires a filename to store the adjustment result.  If file name extensions are omitted, the function will add default extensions to the files.  The default extension of the camera file is ".txt".  if a path name is not include in the specified file name, the function will store the file in the current data path, set by command "set path".

***** Important Note: sd_xmymzm and sd_gcp which are used as default value for SD if it is omitted in the input measuring file, must be set BEFORE reading data (loadobs, and loadgcp).

Class

AT_3D

Usage

{Matrix} ret  =  object.ADJUST({String} argm1)

argm1 = filename to store the adjustment result

Example:

->BLK = AT_3D()

->BLK.sd_gcp() = 0.5

->BLK.sd_xmymzm() = 0.03

->BLK.loadobs("my_input_data")

->BLK.loadgcp("my_gcp")

->Mtmp = BLK.adjust("my_result")

->

See also (class function)

loadobs, loadgcp

| HOME | BACK |


FOCAL

| HOME | BACK |

Purpose

To report the current setting of default value of focal length of photos in the block.  It is used to calculate a better approximate Z coordinate value of projection center (PC), specified by a negative point number, if any.

Class

AT_3D

Usage

{void} ret  =  object.FOCAL()

Example:

->f = BLK.focal()

->

See also (class function)

sd_xmymzm, sd_gcp

| HOME | BACK |


LOADGCP

| HOME | BACK |

Purpose

To load ground control point data from a file.  The file is an ASCII file and must consists of two block of data, namely horizontal ground control and vertical ground control, separated by a symbol "-", strung together at least 3 times, e.g. "-----" (see example in the file below).

For horizontal control points, each record must have 3 or 4 fields, namely point number, x coordinate and y coordinate and SD.  If the last field is omitted, the default SD, set by function "sd_gcp", will be used. 

For vertical control points, each record must have 2 or 3 fields, namely point number, elevation and SD.  If the last field is omitted, the default SD, set by function "sd_gcp", will be used. 

The following shows an example of a ground control point file.  Please note the use of "/" symbol in the data file, which indicates that the particular line is not wanted to be read, could be a comment line, or a wrong piece of data.

If file name extensions are omitted, the function will add default extensions to the files.  The default extension is ".txt".

Unless the path name is given in the file names, the function will search for the files in the current working directory, defined by command "set path".

 

/ Ground control coordinates for AT 3D block adjustment
/ accuracy about 0.50 meters
/ Horizontal gcp
     1    519898.940    6383552.900
     2    523315.010    6384439.300
     3    535181.650    6383715.140
     4    533254.000    6376835.320
/    5    526469.420    6381542.240
     6    530488.230    6378564.820
     7    521900.170    6376364.040
     8    517865.880    6377812.070
    11    513740.170    6381186.920
    12    516216.450    6384903.280
----------------------------------
/ Vertical gcp
     1       370.980
     2       360.180
     3       370.180
     4       383.780
     5       344.300
     6       339.960
     7       311.610
     8       305.920
/    9       308.560
    99       308.560
    10       303.270
    11       300.240
    12       305.430

 

Class

AT_3D

Usage

{void} object.LOADGCP({String} argm1)

argm1 = ground control point filename

Example:

->BLK = AT_3D()

->BLK.loadgcp("my_gcp")

->

See also (class function)

loadobs, adjust

| HOME | BACK |


LOADOBS

| HOME | BACK |

Purpose

To load observation data, 3D model coordinates, from a file.  The file is an ASCII file and must consists of blocks of records having 4 or 5 fields, namely point number, x coordinate and y coordinate and SD.  If the last field is omitted, the default SD, set by function "sd_xpyp", will be used.

Each block in the observation file must start with a number represent the model number.  Then it is followed by all measurement in that model.  Then it starts again with the second model and so on.  Each model measurement can come in any order.

The following shows an example of a observation data file.  Please note the use of "/" symbol in the data file, which indicates that the particular line is not wanted to be read, could be a comment line, or a wrong piece of data.

Please note that most points do not have SD, and the setting default value will be used.  Points that require a particular SD can be manually assigned, and the program will ignore the default SD and assign the specified SD to them, for example points 117 and 121 in model 1 in the file below.

If file name extensions are omitted, the function will add default extensions to the files.  The default extension is ".txt".

Unless the path name is given in the file names, the function will search for the files in the current working directory, defined by command "set path".

Projection center must have a negative point number, however it can be at anywhere in the file (within the same model),
Unlike some AT packages, Noobeed AT does not expect that the first two lines must be projection centers, and
thus you do not need to give projection centers if you do not want to.

The reason to give a negative point number for PC is to let the program calculate a more correct approx of Z value of PC by adding mean ground elevation with flying height.  An experiment shows that it is also possible to treat PC just as traditional tie points, with a positive point number, and the computation is still able to convert.

/ Input data for AT 3D block adjustment
     1
  5281          .000           .000        183.264  
  5282        85.838           .000        183.264  
   120         5.989         -4.715         29.172
   117         3.626         47.782         28.588   0.1
   128        83.932         75.779         29.483
     2        57.689         69.121         29.656
   121        83.943          -.685         30.102   0.1
   126        88.555        -81.968         30.554
     5       -19.259        -83.873         29.562
   125        29.864        -86.788         30.499
     2 
  5220          .000           .000        183.264  
  5221        85.916           .000        183.264  
   142         2.600          1.041         29.114
   136         1.125         67.737         28.285
   146         -.266        -76.869         28.608
   147        86.957        -83.435         27.732
   143        90.039          -.665         30.094
   137       100.431         53.983         29.769
     3 
  5219          .000           .000        183.264  
  5220        80.907           .000        183.264  
     6       -28.826         51.616         29.830
   135        -7.018         72.793         29.677
   141         2.606         -5.498         31.279
   145         4.775        -82.056         31.838
   146        79.986        -78.590         33.456
   142        83.299         -2.304         32.292
   136        82.287         62.987         30.066
/ more....
/ ........

 

 

Class

AT_3D

Usage

{void} object.LOADOBS({String} argm1)

argm1 = observation data filename

Example:

->BLK = AT_3D()

->BLK.loadobs("my_observed_data")

->

See also (class function)

loadgcp, adjust

| HOME | BACK |


NO_ITERATE

| HOME | BACK |

Purpose

To report the current setting of the maximum number of iterations.  In case that the computation can not be converted, the program will stop if the number of iteration reaches this value. 

Class

AT_3D

Usage

{int} ret  =  object.NO_ITERATE()

Example:

->n = BLK.no_iterate()

->

See also (class function)

sd_gcp, sd_xmymzm

| HOME | BACK |


SD_GCP

| HOME | BACK |

Purpose

To report the current setting of default value of standard deviation of ground control.  This value will be only used for those data that have no SD. 

Class

AT_3D

Usage

{double} ret  =  object.SD_GCP()

Example:

->sd1 = BLK.sd_gcp()

->

See also (class function)

sd_xmymzm

| HOME | BACK |


SD_XMYMZM

| HOME | BACK |

Purpose

To report the current setting of default value of standard deviation of observation data, 3D model coordinates.  This value will be only used for those data that have no SD. 

Class

AT_3D

Usage

{double} ret  =  object.SD_XMYMZM()

Example:

->sd2 = BLK.sd_xmymzm()

->

See also (class function)

sd_gcp

| HOME | BACK |