Compute Fiducials (Data Management)

Summary

Computes the fiducial coordinates in image and film space for each image in a mosaic dataset.

Fiducials are marks, normally four or eight, in aerial photos used as reference. They are an important factor for determining the image transformation from image to film known as interior orientation. This tool is used to automatically find the image coordinates of the fiducials for each images in a mosaic dataset based on a user-provided fiducial template file. A fiducial template file is a table that has required fields for storing either fiducial pictures or paths to the pictures. For more information about fiducials, see Refine Interior Orientation Using Fiducials.

Usage

  • This tool uses an input fiducial template file to automatically find the image coordinates of every fiducial in every image in a mosaic dataset.

  • A fiducial template file is a table of fields for storing pictures of fiducials or paths to the pictures.

  • The film coordinate system, a factor in calculating fiducials, describes the orientation in which the image is scanned. The camera calibration report defines the coordinate system in which the film is exposed from the imaging platform. During scanning, the image might be rotated, so the film coordinate system is used to describe the scanned orientation for computing correct image interior orientation. For example, if the image is acquired in the orientation on the left, and you scanned the image rotated 90 degrees clockwise, the film coordinate system for example will be X_DOWN_Y_RIGHT.

    Flight direction verses scan direction

  • The positions of fiducials in scanned imagery adhere to the following diagram.

    Fiducial position diagram

  • The output table created by this tool can be used as an input to the Update Interior Orientation tool.

    FieldDescriptionType

    CameraID

    The camera ID that is linked to the camera definition including fiducial coordinates.

    String, required

    FiducialPosition

    The positions of fiducial marks with values of LL(1), UR(2), UL(3), LR(4), LM(5), RM(6), UM(7), and BM(8). Refer to the diagram above for the fiducial positions.

    String, required

    FiducialPhoto

    Stores the path to the fiducial photo. The fiducial photo can be a stand-alone photo in TIFF, PNG, or JPEG format or a portion within an image, which is defined by the size (width and height) and center location (CenterRow and CenterColumn) in the image. If the image is an item in a mosaic dataset, the path syntax is theMosaicDataPath\objectid=id, where id is the ObjectID value of that image, for example, c:\data\fgdb.gdb\md\objectid=1.

    String, required

    ScanPixelSize

    The pixel size used in the fiducial photo, which is typically the scan pixel size. The unit is microns.

    Numeric

    Width

    The width of the fiducial template in pixel units. This is needed only when the fiducial template is defined by a portion of the image. The value is in image space, and the origin is upper left corner.

    Numeric, optional

    Height

    The height of the fiducial template in pixel units. This is needed only when the fiducial template is defined by a portion of the image. The value is in image space, and the origin is upper left corner.

    Numeric, optional

    CenterRow

    The row of the center of the fiducial template in the entire image. This is needed only when the fiducial template is defined by a portion of the entire image.

    Numeric, optional

    CenterColumn

    The column of the center of the fiducial template in the entire image. This is needed only when the fiducial template is defined by a portion of the entire image.

    Numeric, optional

    IsSymmetry

    A Boolean that indicates whether a template is symmetric.

    Numeric, optional

    Output table

Syntax

arcpy.management.ComputeFiducials(in_mosaic_dataset, out_fiducial_table, {where_clause}, {fiducial_templates}, {film_coordinate_system})
ParameterExplanationData Type
in_mosaic_dataset

The mosaic dataset created from scanned aerial photos using scanned raster type or frame camera raster type.

Mosaic Layer
out_fiducial_table

The output table that stores all the fiducial coordinate information in image and film space.

Table
where_clause
(Optional)

A query definition string that defines a subset of rasters for computing fiducials.

SQL Expression
fiducial_templates
(Optional)

The fiducial template table that contains required fields for storing fiducial pictures and other properties.

Table View; File; String
film_coordinate_system
(Optional)

A keyword that defines the film coordinate system of the scanned aerial photograph. It is used in computing fiducial information and affine transformation construction.

  • NO_CHANGEMaintain the coordinate system of the mosaic dataset. Do not change the film coordinate system of the scanned aerial photograph. Maintain the coordinate system of the mosaic dataset.
  • X_RIGHT_Y_UPThe origin of the scanned photo's coordinate system is the center, and positive X points right and positive Y points up.
  • X_UP_Y_LEFTThe origin of the scanned photo's coordinate system is the center, and positive X points up and positive Y points left.
  • X_LEFT_Y_DOWNThe origin of the scanned photo's coordinate system is the center, and positive X points left and positive Y points down.
  • X_DOWN_Y_RIGHTThe origin of the scanned photo's coordinate system is the center, and positive X points down and positive Y points right.
String

Code sample

ComputeFiducials example 1 (Python window)

This is a Python sample for the ComputeFiducials tool.

arcpy.ComputeFiducials_management(r"c:\test\orthomapping.gdb\orthomosaicdataset",
                       r"c:\test\orthomapping.gdb\out_table", "objectID = 1",
                       r"c:\test\fiducilatemplate.csv", "X_RIGHT_Y_UP")
ComputeFiducials example 2 (stand-alone script)

This is a stand-alone script sample for the ComputeFiducials tool.

import arcpy

in_mosaic_dataset = "c:\\test\\ortho.gdb\\ortho_md"
out_fiducial_table = "c:\\test\\ortho.gdb\\fiducial_table"
where_clause = ""
fiducial_template = "c:\\test\\fiducilatemplate.csv"
film_coordinate_system = "NO_CHANGE"


arcpy.ComputeFiducials_management(in_mosaic_dataset, out_fiducial_table,
where_clause,fiducial_template, film_coordinate_system)

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics