Showing results for 
Search instead for 
Do you mean 

Where do I find a description of the photo file format? In particular, we would like to understand the meaning of the numbers in a photo measurement block.

by Technical Evangelist on ‎04-07-2016 10:56 AM - edited on ‎09-21-2017 06:35 AM by Technical Evangelist (726 Views)

Question

Where do I find a description of the photo file format? In particular, we would like to understand the meaning of the numbers in a photo measurement block.

Answer

 

The first two columns are the raw photo coordinates xy, the second two columns are the refined photo coordinates xy. the next column is the measurements status, 1=measured, 2=withheld. The last column is a code indicating the point type and is not always present, usually only after an ISAT run to indicate which are "normal" points and which are weak tie points and such. Specifically detailed below:

 

 

Photo File

The Photo file contains the results of photo-specific processing, such as point measurements and photo parameters.

# **************************************************************************

# PHOTO FILE

# **************************************************************************

# Description: This file follows the same general block format rules

# as the PROJECT file. In this case there are two

# block types as indicated below, each of which may

# be repeated any number of times in any order.

#

# A new block type, coincidentally named "block", has been

# added to the end of the PHOTO file to define which photos

# are contained within which block. A block can contain

# 0 photos; blocks can also contain photos which are

# also contained within other blocks.

 

begin photo_measurements STRING [stripid STRING] [version STRING]

# where the first string is the photo id and the second is the strip id.

# Note: photoid & stripid may not contain the tilde character (~).

 

# id x-raw-coords y-raw-coords [x-refined-coords y-refined-coords status]

# point status: 1=measured, 2 = withheld

STRING 9.9 9.9 [9.9 9.9 1]

.

.

STRING 9.9 9.9 [9.9 9.9 1]

 

# Note: If version is 2.0 or greater, then the format is as follows:

# id x-raw-coords y-raw-coords [x-refined-coords y-refined-coords status tag]

# point status: 1=measured, 2 = withheld

# tag: any integer.

STRING 9.9 9.9 [9.9 9.9 1 234]

 

end photo_measurements

 

begin photo_parameters STRING [stripid STRING]

# where the first string is the photo id and the second is the strip id.

# Note: photoid & stripid may not contain the tilde character (~).

 

# the version that wrote this file

version: STRING

 

# the camera_name must be in the project list of cameras. If not supplied,

# the most recently used camera is used as default. If the camera_name

# is not in the project list of cameras, this photo is not loaded.

camera_name: STRING

 

# camera_orientation has a default of 0, or the most recently assigned

# value. It can be entered by quadrant or degrees.

camera_orientation: ( ("1"|"0") | ("2"|"90") | ("3"|"180") | ("4"| "270") )

 

# The raster image file name and directory as d:\images\image.tif

# If a single file use image_id only, otherwise use the others as well.

image_id: STRING

green_id: STRING

blue_id: STRING

 

# The viewing geometry of this photo as oblique or nadir.

view_geometry: STRING ("oblique" | "nadir")

 

# io_to_full_image is a list of affine IO parameters for ??????????

 

io_to_full_image: 9.9 9.9 9.9 9.9 9.9 9.9

 

# io_to_full_image: a0 b0 a1 a2 b1 b2

 

# |col| |a1 a2| |x| |a0|

# | | = | | * | | + | |

# |row| |b1 b2| |y| |b0|

 

# or col = a1 * x + a2 * y + a0

# row = b1 * x + b2 * y + b0

 

# The default standard deviation of measurement for this photo. Optional.

std_dev: 9.9 (>0)

 

# type_of_IO is an ascii definition of the type of IO used.

type_of_IO: ("RIGID_BODY" | "CONFORMAL" | "AFFINE" | "PROJECTIVE")

 

# IO_parameters is a list of IO parameters dependent upon the type_of_IO.

# 6 parameters for CONFORMAL, AFFINE, RIGID_BODY

# 8 parameters for PROJECTIVE

IO_parameters: 9.9 9.9 9.9 9.9 9.9 9.9 [9.9 9.9]

 

# If not PROJECTIVE

 

# IO_parameters: a0 b0 a1 a2 b1 b2

 

# |col| |a1 a2| |x| |a0|

# | | = | | * | | + | |

# |row| |b1 b2| |y| |b0|

 

# or col = a1 * x + a2 * y + a0

# row = b1 * x + b2 * y + b0

 

# If PROJECTIVE

 

# IO_parameters: a0 a1 a2 b0 b1 b2 c0 c1

 

# den = 1.0 + c0 * x + c1 * y

# col = (a0 + a1 * x + a2 * y) / den

# row = (b0 + b1 * x + b2 * y) / den

 

IO_num_iters: 1

IO_num_DOF: 1

IO_apost_std_dev: 9.9

 

# fiducial_msmt: id x-pixel y-pixel x-residual y-residual x-stdz-residual

# y-stdz-residual status

# note: x = column, y = row

fiducial_msmt: STRING 9.9 9.9 [9.9 9.9 9.9 9.9] [1]

.

.

fiducial_msmt: STRING 9.9 9.9 [1]

 

# If using GIVEN, then the GIVEN_std_devs are assumed to be -1 (free)

# unless otherwise specified. If the GIVEN_std_devs are supplied, any

# negative value may be supplied to indicate that the parameter is not

# known.

 

# The order of the standard EO values is as such:

# XC YC ZC OMEGA PHI KAPPA, all in project units.

# Omega about X-ground, Phi (once rotated) about Y-ground, and

# Kappa (twice rotated) about Z-ground.

 

RO_parameters: 9.9 9.9 9.9 9.9 9.9 9.9

 

EO_parameters: 9.9 9.9 9.9 9.9 9.9 9.9

 

GIVEN_parameters: 9.9 9.9 9.9 9.9 9.9 9.9

GIVEN_std_devs: 9.9 9.9 9.9 9.9 9.9 9.9

 

# | c2*c3 -c2*s3 s2 |

# Note: R = | s1*s2*c3+s3*c1 -s1*s2*s3+c3*c1 -s1*c2 |

# |-c1*s2*c3+s3*s1 c1*s2*s3+c3*s1 c1*c2 |

#

# R is the 3x3 rotation matrix from photo to ground

#

# where s = sine and c = cosine and

# 1 = omega, 2 = phi, 3 = kappa

#

# So if we let M = R-transpose then

 

# | m11 m12 m13 |

# where M = | m21 m22 m23 |

# | m31 m32 m33 |

 

# m11 * dx + m12 * dy + m13 * dz

# x = -f ------------------------------

# m31 * dx + m32 * dy + m33 * dz

 

# m21 * dx + m22 * dy + m23 * dz

# y = -f ------------------------------

# m31 * dx + m32 * dy + m33 * dz

 

# where dx = X - XC, dy = Y - YC, and dz = Z - ZC

 

# FOOTPRINT: x,y; x,y; x,y; x,y

FOOTPRINT: { 9.9[,] 9.9[;] }

 

DRIVE_TYPE: ("COLLINEARITY"|"2D"|"RATIONAL_FUNCTION")

 

# DRIVE_PARAMETERS: (up to 90 doubles on multiple lines)

 

# if DRIVE_TYPE is COLLINEARITY

# the parameter order is the same as for GIVEN_PARAMETERS.

 

# if DRIVE_TYPE is RATIONAL_FUNCTION

# [0..19] = coefficients for the x-numerator

# [20..39] = coefficients for the x-denominator

# [40..41] = coefficients (scale and offset) for x

 

# [42..61] = coefficients for the y-numerator

# [62..81] = coefficients for the y-denominator

# [82..83] = coefficients (scale and offset) for y

 

# [84..89] = coefficients for X,Y,Z ground scales and offsets

 

DRIVE_PARAMETERS: 9.9 {9.9}<=MAX_89

 

# The computed EO standard deviations from a bundle adjustment.

# These are not to be confused with the GIVEN_STD_DEVS.

COMPUTED_std_devs:

 

# The location of the raw image-object grid file.

raw_grid: STRING

 

# The location of the rational function parameter file.

rf_bitmap: STRING

 

# The shift, in pixels, in the image-object grid file from 0,0 pixel center.

shift_in_grid: 9.9

 

# The image size (columns, rows)

image_size: 1 1

 

# The design file location

dgn_file: STRING

 

# A description of the photo

description: STRING

 

end photo_parameters

 

begin block STRING

# where the STRING is the block id.

STRING [strip_id STRING]

# where the first string is the photo id and the second string is the strip id.

end block

Contributors